:root{--bg:#0f1115;--surface:#171a20;--surface2:#1d2128;--line:#2a2f38;--text:#f5f7fa;--muted:#9aa1ad;--coral:#f35f6d;--coral2:#ff7c86;--ok:#45c78c;--shadow:0 18px 50px rgba(0,0,0,.28)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}body{background:radial-gradient(circle at 76% -10%,rgba(243,95,109,.12),transparent 28%),var(--bg)}button,input{font:inherit}.hidden{display:none!important}.app-shell{min-height:100vh;display:grid;grid-template-columns:210px 1fr}.sidebar{border-right:1px solid var(--line);padding:22px 16px;display:flex;flex-direction:column;gap:28px;background:rgba(15,17,21,.92);position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:44px;height:44px;border-radius:12px;background:linear-gradient(145deg,var(--coral2),var(--coral));display:grid;place-items:center;font-size:20px;font-weight:800;box-shadow:0 10px 30px rgba(243,95,109,.22)}.brand div:last-child{display:flex;flex-direction:column;letter-spacing:.12em;font-size:12px}.brand span{color:var(--coral);font-size:9px;margin-top:2px}.sidebar nav{display:flex;flex-direction:column;gap:8px}.nav-item{border:0;color:var(--muted);background:transparent;border-radius:12px;padding:12px 14px;text-align:left;cursor:pointer;display:flex;gap:11px;align-items:center}.nav-item.active,.nav-item:hover{color:var(--text);background:linear-gradient(90deg,rgba(243,95,109,.18),rgba(243,95,109,.05))}.nav-item.active{color:var(--coral2)}.sidebar-note{margin-top:auto;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);display:flex;flex-direction:column;gap:5px;font-size:12px}.sidebar-note span{color:var(--muted)}.main{padding:26px 30px 110px;max-width:1500px;width:100%;margin:0 auto}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.topbar h1{margin:5px 0 0;font-size:28px}.eyebrow{font-size:11px;letter-spacing:.15em;color:var(--muted);font-weight:800}.eyebrow.coral{color:var(--coral)}.client-pill{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);padding:8px 12px;border-radius:999px}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:rgba(243,95,109,.18);color:var(--coral2);font-weight:800}.client-pill div{display:flex;flex-direction:column}.client-pill small{color:var(--muted)}.state-card{padding:18px;border:1px solid var(--line);background:var(--surface);border-radius:16px;color:var(--muted)}.state-card.error{border-color:rgba(243,95,109,.45);color:#ffd0d5}.pin-row{display:flex;gap:10px;margin-top:14px}.pin-row input{background:#0d0f13;border:1px solid var(--line);color:var(--text);border-radius:12px;padding:12px 14px;min-width:170px}.primary{border:0;background:linear-gradient(135deg,var(--coral2),var(--coral));color:white;border-radius:12px;padding:12px 18px;font-weight:800;cursor:pointer}.hero-grid{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(420px,1.5fr);gap:18px}.content-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:18px;margin-top:18px}.panel{background:linear-gradient(180deg,rgba(29,33,40,.95),rgba(23,26,32,.98));border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.progress-panel,.timeline-panel,.gallery-panel,.detail-panel{padding:20px}.panel-title{display:flex;justify-content:space-between;gap:12px;align-items:center;font-weight:800}.status-chip{font-size:11px;color:var(--coral2);background:rgba(243,95,109,.12);border:1px solid rgba(243,95,109,.25);padding:6px 9px;border-radius:999px}.progress-number{display:flex;align-items:flex-end;gap:8px;margin:24px 0 12px}.progress-number strong{font-size:46px;line-height:1;color:var(--coral2)}.progress-number span{color:var(--muted);font-size:12px}.progress-track{height:8px;border-radius:999px;background:#2a2f37;overflow:hidden}.progress-track i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--coral2),var(--coral));border-radius:inherit;transition:width .35s ease}.meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.meta-grid div{display:flex;flex-direction:column;gap:6px}.meta-grid small{color:var(--muted)}.project-panel{min-height:310px;display:grid;grid-template-columns:1.25fr .9fr;overflow:hidden}.project-copy{padding:24px;display:flex;flex-direction:column;justify-content:center}.project-copy h2{font-size:34px;margin:8px 0}.project-copy p{margin:4px 0}.muted{color:var(--muted)}.cover-wrap{min-height:310px;background:#111;position:relative}.cover-wrap:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--surface),transparent 35%)}.cover-wrap img{width:100%;height:100%;object-fit:cover}.updates-list{display:flex;flex-direction:column;gap:10px;margin-top:16px}.update-item{display:grid;grid-template-columns:72px 1fr 92px;gap:14px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:14px;background:#15181e}.update-date{color:var(--muted);font-size:11px}.update-copy strong{display:block;margin-bottom:3px}.update-copy span{color:var(--muted);font-size:12px}.update-thumb{height:68px;border-radius:10px;overflow:hidden;background:#0d0f13}.update-thumb img{width:100%;height:100%;object-fit:cover}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}.gallery-large{grid-template-columns:repeat(4,minmax(0,1fr))}.gallery-card{aspect-ratio:1/1;border-radius:13px;overflow:hidden;border:1px solid var(--line);background:#111;position:relative}.gallery-card img{width:100%;height:100%;object-fit:cover}.gallery-card:after{content:"PROTEGIDA";position:absolute;right:7px;bottom:7px;font-size:9px;font-weight:800;letter-spacing:.12em;background:rgba(15,17,21,.72);padding:5px 7px;border-radius:999px}.security-note{color:var(--muted);font-size:11px;margin:13px 0 0}.link-button{border:0;background:none;color:var(--coral2);cursor:pointer}.portal-view{animation:viewIn .18s ease}.view-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.view-heading h2{margin:4px 0 0;font-size:28px}.count-pill{min-width:34px;height:34px;border-radius:999px;display:grid;place-items:center;background:rgba(243,95,109,.12);color:var(--coral2);border:1px solid rgba(243,95,109,.25);font-weight:800}.resource-list,.message-list{display:flex;flex-direction:column;gap:10px}.resource-row{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:14px;background:#15181e}.resource-icon{width:38px;height:38px;border-radius:10px;background:rgba(243,95,109,.12);color:var(--coral2);display:grid;place-items:center}.resource-copy{display:flex;flex-direction:column;gap:4px}.resource-copy span,.resource-muted{color:var(--muted);font-size:12px}.resource-action{color:var(--coral2);text-decoration:none;font-weight:800;font-size:12px}.empty-panel{padding:28px;border:1px dashed #353b46;border-radius:16px;background:#15181e;display:flex;flex-direction:column;gap:7px}.empty-panel span{color:var(--muted);font-size:13px}.message-bubble{max-width:78%;padding:13px 15px;border-radius:16px;border:1px solid var(--line);background:#15181e}.message-bubble.artist{align-self:flex-start}.message-bubble.client{align-self:flex-end;background:rgba(243,95,109,.10);border-color:rgba(243,95,109,.22)}.message-bubble p{margin:6px 0}.message-bubble small{color:var(--muted)}.capability-note{margin-top:16px;padding:14px;border-radius:14px;background:#13161b;border:1px solid var(--line);display:flex;flex-direction:column;gap:5px}.capability-note span{color:var(--muted);font-size:12px}.more-sheet{display:none}@keyframes viewIn{from{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:none}}.mobile-nav{display:none}@media(max-width:900px){.app-shell{display:block}.sidebar{display:none}.main{padding:18px 16px 96px}.topbar{align-items:flex-start}.client-pill{padding:6px 8px}.client-pill div{display:none}.hero-grid,.content-grid{grid-template-columns:1fr}.project-panel{grid-template-columns:1fr;min-height:0}.project-copy{order:2;padding:20px}.project-copy h2{font-size:28px}.cover-wrap{min-height:220px;order:1}.cover-wrap:after{background:linear-gradient(0deg,var(--surface),transparent 35%)}.gallery-grid,.gallery-large{grid-template-columns:repeat(2,minmax(0,1fr))}.update-item{grid-template-columns:62px 1fr}.update-thumb{display:none}.mobile-nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;bottom:0;left:0;right:0;padding:9px 8px calc(9px + env(safe-area-inset-bottom));background:rgba(17,19,24,.97);backdrop-filter:blur(14px);border-top:1px solid var(--line);z-index:30}.mobile-nav button{border:0;background:transparent;color:var(--muted);display:flex;flex-direction:column;gap:4px;align-items:center;font-size:18px}.mobile-nav span{font-size:10px}.mobile-nav button.active{color:var(--coral2)}.more-sheet{display:flex;position:fixed;left:14px;right:14px;bottom:76px;z-index:40;padding:10px;border-radius:16px;border:1px solid var(--line);background:#171a20;box-shadow:var(--shadow);flex-direction:column;gap:7px}.more-sheet button{border:0;border-radius:12px;background:#1d2128;color:var(--text);padding:13px 14px;text-align:left}.more-sheet button:last-child{color:var(--muted);text-align:center;background:transparent}.resource-row{grid-template-columns:38px 1fr auto}.message-bubble{max-width:92%}}@media(max-width:520px){.topbar h1{font-size:24px}.progress-number strong{font-size:40px}.meta-grid{grid-template-columns:1fr}.gallery-grid,.gallery-large{grid-template-columns:repeat(2,1fr)}.view-heading h2{font-size:24px}}

.message-compose{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;margin-top:12px}
.message-compose textarea{width:100%;resize:vertical;min-height:78px;background:#0d0f13;border:1px solid var(--line);color:var(--text);border-radius:12px;padding:12px 14px}
.approval-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.approval-actions .resource-action{border:1px solid rgba(243,95,109,.3);background:rgba(243,95,109,.08);padding:7px 9px;border-radius:9px;cursor:pointer}
@media(max-width:620px){.message-compose{grid-template-columns:1fr}.message-compose .primary{width:100%}.resource-row{grid-template-columns:38px 1fr}.approval-actions{grid-column:2;justify-content:flex-start}}
