:root{--bg:#f4f0ea;--surface:#fffdf9;--surface2:#f7f3ee;--ink:#242420;--muted:#777169;--line:#e0d8cf;--sidebar:#1e2822;--sidebar2:#293229;--sage:#829080;--sage2:#a4aca0;--tan:#b88a5d;--tan2:#d2b18d;--red:#b84940;--blue:#718797;--olive:#8a9b39;--shadow:0 12px 35px rgba(55,45,37,.07);--radius:16px}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body.dark{--bg:#171c18;--surface:#222a24;--surface2:#29312a;--ink:#f6f1e9;--muted:#b7b0a7;--line:#3b463d;--sidebar:#121813;--sidebar2:#202820;--shadow:0 14px 40px rgba(0,0,0,.22)}button,input,select,textarea{font:inherit}button{cursor:pointer}.app{min-height:100vh;display:grid;grid-template-columns:258px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(155deg,var(--sidebar),#162019 76%);color:#f6f1e8;padding:22px 18px;display:flex;flex-direction:column;border-right:1px solid rgba(255,255,255,.07);z-index:20}.brand{display:flex;align-items:center;gap:12px;padding:0 4px 18px}.logo{width:54px;height:54px;border-radius:14px;border:1px solid rgba(224,205,181,.55);background:linear-gradient(145deg,#394039,#202821);display:grid;place-items:center;font-size:27px}.brand h1{font:25px/1 Georgia,serif;margin:0}.brand small{font-size:10px;letter-spacing:.28em;color:#cfbea9}.nav{display:grid;gap:5px;overflow:auto;padding-right:2px}.nav button{border:0;background:transparent;color:#eee8de;text-align:left;padding:11px 10px;border-radius:10px;display:flex;gap:10px;align-items:center;font-weight:600}.nav button:hover,.nav button.active{background:#ffffff17}.nav .icon{width:22px;text-align:center}.side-progress,.welcome-side{border:1px solid rgba(255,255,255,.15);border-radius:14px;background:#ffffff0a;padding:15px;margin-top:16px}.side-progress{margin-top:auto}.side-progress b{font:34px Georgia,serif}.side-progress small,.welcome-side small{color:#d4cec5}.main{min-width:0}.dashboard-wrap{padding:0 30px 30px}.hero{height:258px;position:relative;margin:0 -30px;background-image:linear-gradient(90deg,#23261fb8,#23261f26 43%,#23261f0d),url(/renovation-hero.jpg);background-size:cover;background-position:center;overflow:hidden}.hero-top{padding:16px 30px 0;display:flex;justify-content:space-between;gap:12px;position:relative;z-index:2}.project-chip{background:#ffffffeb;border:1px solid rgba(255,255,255,.6);padding:12px 16px;border-radius:10px;min-width:280px;display:flex;align-items:center;justify-content:space-between;color:#20231f}.hero-tools{display:flex;gap:9px}.hero-tools button,.hero-tools select{height:42px;border:1px solid rgba(255,255,255,.55);border-radius:10px;background:#ffffffed;padding:0 13px;color:#1f211e}.hero-copy{position:absolute;left:30px;top:92px;color:#fff;z-index:2}.hero-copy h2{font:40px Georgia,serif;margin:0 0 8px;text-shadow:0 2px 12px rgba(0,0,0,.18)}.hero-copy p{margin:0;font-size:16px}.metrics{position:relative;z-index:3;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-top:-54px}.metric{background:var(--surface);border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow);padding:16px 15px;min-height:130px}.metric-head{display:flex;gap:11px;align-items:flex-start}.metric-icon{width:40px;height:40px;border-radius:11px;background:var(--surface2);display:grid;place-items:center;font-size:21px}.metric small{font-size:10px;letter-spacing:.1em;font-weight:800;color:var(--muted);line-height:1.25}.metric strong{display:block;font-size:clamp(17px,1.35vw,23px);line-height:1.08;margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.025em}.metric-link{font-size:12px;color:#8b7b69;margin-top:24px;display:flex;justify-content:space-between}.grid3{display:grid;grid-template-columns:1.15fr .9fr .9fr;gap:14px;margin-top:16px}.grid3.equal{grid-template-columns:1fr 1.1fr 1fr}.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:18px;min-width:0}.card h3{font-size:16px;margin:0 0 12px}.card .sub{font-size:12px;color:var(--muted);margin-top:-4px;margin-bottom:12px}.chart-empty{height:220px;display:grid;place-items:center;color:var(--muted);font-size:12px}.linechart{height:220px;width:100%;display:block}.legend{display:flex;gap:18px;font-size:11px;justify-content:center;margin-bottom:2px}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:5px}.donut-wrap{display:flex;align-items:center;gap:20px;min-height:220px}.donut{width:150px;height:150px;border-radius:50%;background:conic-gradient(var(--sage) 0 var(--pct),#d9d7d2 var(--pct) 100%);position:relative;display:grid;place-items:center;flex:none}.donut:before{content:"";position:absolute;width:92px;height:92px;border-radius:50%;background:var(--surface)}.donut-label{position:relative;text-align:center;z-index:1}.donut-label b{font-size:21px}.donut-label small{display:block;color:var(--muted);font-size:10px}.legend-list{display:grid;gap:10px;font-size:11px;flex:1}.legend-row{display:flex;justify-content:space-between;gap:10px}.timeline{min-height:210px;display:grid;place-items:center;text-align:center;color:var(--muted)}.timeline .btn{margin-top:10px}.task-overview{display:flex;gap:30px;align-items:center;justify-content:center;min-height:210px}.task-ring{width:125px;height:125px;border-radius:50%;background:var(--surface2);display:grid;place-items:center;text-align:center}.task-ring b{font-size:25px}.task-ring small{display:block;color:var(--muted)}.alert-list{display:grid;gap:9px;font-size:12px}.alert-row{display:flex;gap:9px;align-items:flex-start}.check{color:#c9c5bd}.alert-row.warn{color:var(--red)}.section-head{display:flex;justify-content:space-between;align-items:center}.section-head a,.linkbtn{font-size:12px;color:var(--ink);text-decoration:none;background:none;border:0}.recent-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}.recent-card{min-height:120px}.fab{position:fixed;right:28px;bottom:28px;width:58px;height:58px;border-radius:50%;border:0;background:var(--tan);color:#fff;font-size:30px;box-shadow:0 15px 30px #70523447;z-index:30}.progress{height:8px;border-radius:999px;background:var(--surface2);overflow:hidden}.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--sage),var(--tan))}.page{padding:26px 30px}.page-head{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:18px}.eyebrow{font-size:10px;letter-spacing:.22em;font-weight:800;color:var(--tan);text-transform:uppercase}.page-head h2{font:34px Georgia,serif;margin:2px 0}.toolbar{display:flex;gap:8px}.toolbar select,.toolbar button{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:10px;padding:10px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:15px}.stack{display:grid;gap:10px}.row{display:flex;gap:10px}.row>*{flex:1}input,select,textarea{width:100%;border:1px solid var(--line);background:#fffdfa;color:#282823;border-radius:10px;padding:11px 12px;outline:none}.dark input,.dark select,.dark textarea{background:#1d241f;color:#f5f0e8}textarea{min-height:105px;resize:vertical}.btn{border:0;border-radius:10px;padding:11px 14px;background:var(--tan);color:#fff;font-weight:700}.btn.sage{background:var(--sage)}.btn.secondary{background:var(--surface2);color:var(--ink);border:1px solid var(--line)}.btn.danger{background:var(--red)}.tablewrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:10px 8px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;font-size:12px}.table th{font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.tiny{border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:7px;padding:5px 8px}.rooms-grid,.photos-grid,.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.room-card,.photo-card,.tile{background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}.room-cover{height:128px;background:linear-gradient(135deg,#cfc4b8,#a8a191);position:relative}.room-cover:after{content:"";position:absolute;inset:14px;background:linear-gradient(135deg,rgba(255,255,255,.4),transparent);border:1px solid rgba(255,255,255,.35);border-radius:6px}.pad{padding:14px}.room-card h4,.tile h4{font:19px Georgia,serif;margin:0 0 6px}.meta{font-size:11px;color:var(--muted)}.photo-card img{display:block;width:100%;height:190px;object-fit:cover}.badge{display:inline-flex;padding:4px 8px;border-radius:999px;background:var(--surface2);font-size:9px;letter-spacing:.09em;font-weight:800;text-transform:uppercase}.empty{padding:28px;text-align:center;border:1px dashed var(--line);border-radius:13px;color:var(--muted);background:#ffffff38}.beforeafter{display:grid;grid-template-columns:1fr 1fr;gap:14px}.slot{min-height:260px;border-radius:14px;border:1px dashed var(--line);background:var(--surface2);overflow:hidden;display:grid;place-items:center}.slot img{width:100%;height:100%;object-fit:cover}.mood{columns:3 270px;column-gap:12px}.mood .photo-card{break-inside:avoid;margin-bottom:12px}.modal{position:fixed;inset:0;background:#131714ad;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);z-index:100;display:grid;place-items:center;padding:20px}.modal-card{width:min(720px,96vw);background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:0 30px 100px #00000047;padding:28px}.modal-card h2{font:34px Georgia,serif;margin:4px 0 10px}.modal-card p{color:var(--muted);line-height:1.5}.onboard-hero{height:115px;border-radius:14px;background:url(/renovation-hero.jpg) center/cover;margin-bottom:18px;position:relative}.onboard-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(23,27,23,.5),transparent);border-radius:14px}.edit-form{margin-top:12px}.room-detail-hero{height:220px;border-radius:18px;background:linear-gradient(90deg,#23261f8c,#23261f14),url(/renovation-hero.jpg) center/cover;color:#fff;padding:28px;display:flex;align-items:flex-end}.room-detail-hero h2{font:38px Georgia,serif;margin:0}.lang-note{font-size:11px;color:var(--muted)}@media(max-width:1180px){.app{grid-template-columns:82px 1fr}.brand>div:last-child,.nav button span:last-child,.side-progress,.welcome-side{display:none}.brand,.nav button{justify-content:center}.metrics{grid-template-columns:repeat(3,1fr)}.grid3,.grid3.equal,.rooms-grid,.photos-grid,.tiles{grid-template-columns:1fr 1fr}}@media(max-width:760px){.app{display:block}.sidebar{position:fixed;inset:auto 0 0;width:auto;height:auto;padding:7px;z-index:80}.brand,.side-progress,.welcome-side{display:none}.nav{display:flex;overflow:auto}.nav button{min-width:60px;padding:10px}.main{padding-bottom:75px}.dashboard-wrap{padding:0 14px 20px}.hero{margin:0 -14px;height:300px}.hero-top{padding:12px 14px}.project-chip{min-width:0;flex:1}.hero-copy{left:16px;top:110px}.hero-copy h2{font-size:34px}.metrics{grid-template-columns:1fr 1fr;margin-top:-42px}.grid3,.grid3.equal,.recent-grid,.grid2,.rooms-grid,.photos-grid,.tiles,.beforeafter{grid-template-columns:1fr}.page{padding:18px 14px}.page-head h2{font-size:28px}.row{flex-direction:column}.hero-tools select{display:none}.mood{columns:1}.fab{bottom:88px}}.metric,.metric-head,.metric-head>div:last-child{min-width:0}.metric strong{max-width:100%}@media(max-width:1450px){.metric{padding:14px 12px}.metric-icon{width:36px;height:36px}.metric strong{font-size:18px}.metric small{font-size:9px}}@media(max-width:1250px){.metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.metric strong{font-size:20px}}
