
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@500;600;700;800&display=swap');:root{--navy:#101b35;--gold:#c8a45d;--ink:#172139;--muted:#718096;--line:#e6eaf0;--paper:#f5f7fa}*{box-sizing:border-box}body{margin:0;font:14px/1.55 'DM Sans',sans-serif;color:var(--ink);background:var(--paper)}button,input{font:inherit}button{cursor:pointer}.demo-banner{padding:10px 20px;background:#eee4ce;color:#5d4920;font-size:11px;font-weight:800;letter-spacing:.04em;display:flex;justify-content:space-between;gap:12px}.demo-banner a{text-decoration:none;color:#5d4920}.login-wrap{min-height:calc(100vh - 42px);display:grid;place-items:center;padding:25px}.login-card{background:white;border:1px solid var(--line);border-radius:22px;padding:34px;width:min(100%,430px);box-shadow:0 22px 70px #101b3512}.brand{font:800 25px 'Manrope',sans-serif;color:var(--navy)}.brand span{color:var(--gold)}.brand small{display:block;font:800 9px 'DM Sans';letter-spacing:.25em;color:var(--muted);margin-top:4px}.login-card h1{font:800 32px 'Manrope';margin:30px 0 5px}.login-card p{color:var(--muted);font-size:13px}.login-card label{display:block;font-size:12px;font-weight:800;margin:17px 0 6px}.login-card input,.profile-form input,.profile-form select{width:100%;padding:12px;border:1px solid #d9dee8;border-radius:9px;background:#fff;color:var(--ink)}.password-row{display:flex;gap:8px}.password-row button{border:1px solid var(--line);background:white;border-radius:8px;padding:0 12px}.credentials{background:#f7f5ef;border-radius:9px;padding:12px}.primary,.ghost{border-radius:10px;padding:12px 15px;font-weight:800;border:1px solid transparent}.primary{background:var(--navy);color:white}.ghost{background:white;border-color:var(--line);color:var(--navy)}.full{width:100%;margin-top:10px}.error{color:#b42318!important;min-height:0}.login-card>small{display:block;text-align:center;color:var(--muted);margin-top:14px}.app{min-height:calc(100vh - 42px);display:grid;grid-template-columns:240px minmax(0,1fr)}.sidebar{background:var(--navy);color:white;padding:25px 16px;display:flex;flex-direction:column;min-height:calc(100vh - 42px)}.sidebar .brand{color:white;padding:0 10px 28px}.user{display:flex;align-items:center;gap:10px;border-top:1px solid #ffffff1e;border-bottom:1px solid #ffffff1e;padding:17px 7px}.user small{display:block;color:#b9c4d5;font-size:11px}.avatar{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:#e8d6ad;color:var(--navy);font-weight:800;flex-shrink:0}.sidebar nav{display:grid;gap:5px;margin-top:20px}.sidebar nav button,.logout{display:flex;gap:12px;align-items:center;text-align:left;border:0;background:transparent;color:#c8d0de;border-radius:9px;padding:12px;font-weight:700}.sidebar nav button.active,.sidebar nav button:hover{background:#ffffff17;color:white}.logout{margin-top:auto;border-top:1px solid #ffffff1e;border-radius:0;padding-top:20px}.main{min-width:0}.topbar{height:86px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:15px;padding:0 30px}.topbar>div{flex:1}.topbar small{font-size:9px;font-weight:800;letter-spacing:.13em;color:var(--muted)}.topbar h1{font:700 22px 'Manrope';margin:2px 0}.topbar #mobile-menu{display:none;border:1px solid var(--line);background:white;border-radius:8px;padding:7px}.content{padding:28px;max-width:1450px;margin:auto}.welcome{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:24px}.welcome h2{font:700 25px 'Manrope';margin:4px 0}.welcome p{margin:0;color:var(--muted)}.kicker{font-size:9px!important;font-weight:800;letter-spacing:.1em;color:#9a7a39!important}.status{background:#e9f6ed;color:#287244;border-radius:999px;padding:8px 12px;font-size:10px;font-weight:800;white-space:nowrap}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:18px}.panel,.stat{background:white;border:1px solid var(--line);border-radius:14px;padding:19px;min-width:0}.stat small{color:var(--muted);font-size:11px}.stat strong{display:block;font:800 27px 'Manrope';margin:7px 0}.stat .hint{font-size:10px;color:#718096}.columns{display:grid;grid-template-columns:1.4fr 1fr;gap:16px}.panel h3{font:700 16px 'Manrope';margin:0 0 15px}.bar-row{display:grid;grid-template-columns:110px 1fr 35px;gap:10px;align-items:center;margin:15px 0;font-size:11px}.bar{height:7px;border-radius:99px;background:#edf0f5;overflow:hidden}.bar i{display:block;height:100%;background:var(--gold);border-radius:99px}.activity{display:grid;gap:15px}.activity div{display:flex;gap:10px;font-size:12px}.activity i{height:9px;width:9px;border-radius:50%;background:var(--gold);margin-top:6px;flex-shrink:0}.activity small{display:block;color:var(--muted)}.section-title{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:24px 0 12px}.section-title h3{margin:0;font:700 18px 'Manrope'}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:white}table{width:100%;border-collapse:collapse;min-width:570px}th,td{text-align:left;padding:13px 15px;border-bottom:1px solid var(--line);font-size:12px}th{background:#f8f9fb;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.07em}tr:last-child td{border-bottom:0}.badge{display:inline-block;border-radius:99px;padding:5px 8px;font-size:10px;font-weight:800;background:#edf2fa;color:#40516c}.badge.paid,.badge.complete{background:#e9f6ed;color:#287244}.badge.progress{background:#fff3d9;color:#89601c}.row-actions{display:flex;gap:8px;flex-wrap:wrap}.small-btn{border:1px solid var(--line);background:white;border-radius:8px;padding:7px 10px;font-size:11px;font-weight:800;color:var(--navy)}.docs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.doc{border:1px solid var(--line);border-radius:12px;padding:18px;background:white}.doc .file-icon{font-size:23px;color:#a17f3b}.doc b{display:block;margin:8px 0 4px}.doc small{display:block;color:var(--muted);margin-bottom:12px}.profile-form{display:grid;grid-template-columns:1fr 1fr;gap:15px;max-width:720px}.profile-form label{display:grid;gap:6px;font-size:11px;font-weight:800}.profile-form .wide{grid-column:1/-1}.saved{font-size:12px;color:#287244;min-height:18px}.empty{padding:30px;text-align:center;color:var(--muted)}@media(max-width:1000px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.columns{grid-template-columns:1fr}.docs{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.app{grid-template-columns:1fr}.sidebar{position:fixed;z-index:20;top:42px;bottom:0;left:0;width:250px;min-height:0;transform:translateX(-105%);transition:transform .2s;box-shadow:15px 0 35px #101b3530}.sidebar.open{transform:translateX(0)}.topbar{height:75px;padding:0 15px}.topbar #mobile-menu{display:block}.content{padding:17px}.welcome{display:block}.status{display:inline-block;margin-top:13px}.stats{gap:9px}.stat{padding:14px}.stat strong{font-size:22px}.docs{grid-template-columns:1fr}.profile-form{grid-template-columns:1fr}.profile-form .wide{grid-column:auto}.login-card{padding:25px}.demo-banner{font-size:9px;padding:9px 12px}.bar-row{grid-template-columns:85px 1fr 30px}}@media(max-width:360px){.stats{grid-template-columns:1fr 1fr}.content{padding:12px}.welcome h2{font-size:22px}}

/* Visibility fix: class-based display rules must never override the HTML hidden state. */
[hidden]{display:none!important}

/* Portal refresh: quieter editorial surfaces, stronger hierarchy, reliable hidden-state handling. */
:root{--navy:#101b35;--gold:#c8a45d;--ink:#1b2335;--muted:#777b87;--line:#e6e0d5;--paper:#f6f2e9}
[hidden]{display:none!important}
body{background:var(--paper);color:var(--ink);font-size:14px}
.demo-banner{background:#101b35;color:#f7f2e8;padding:11px 22px;letter-spacing:.09em;font-size:10px}.demo-banner a{color:#d9bd7c;text-decoration:underline;text-underline-offset:3px}
.login-wrap{min-height:calc(100vh - 42px);background:radial-gradient(ellipse at 80% 15%,#c8a45d24,transparent 32%),var(--paper);padding:28px}
.login-card{border:1px solid #e6dfd2;border-radius:5px;padding:clamp(26px,4vw,42px);box-shadow:0 28px 80px #101b3510;max-width:460px}
.brand{letter-spacing:-.05em}.brand span{color:var(--gold)}.login-card h1{font-size:36px;letter-spacing:-.055em}.login-card input,.profile-form input,.profile-form select{border-radius:4px;border-color:#ddd6c9;padding:13px}.primary{background:var(--navy);border-radius:4px}.ghost{border-radius:4px}.credentials{background:#f4efe3;border:1px solid #ebe1cd;border-radius:4px}
.app{min-height:calc(100vh - 42px);grid-template-columns:248px minmax(0,1fr);background:var(--paper)}.sidebar{background:#101b35;padding:27px 17px}.sidebar .brand{font-size:27px}.sidebar nav button,.logout{border-radius:4px}.sidebar nav button.active{background:#ffffff18;box-shadow:inset 2px 0 var(--gold)}.avatar{border-radius:4px;background:#e9d9b4}.topbar{height:88px;background:#fffdf8;padding:0 clamp(18px,3vw,38px)}.topbar h1{font-size:25px;letter-spacing:-.04em}.content{padding:clamp(18px,3vw,36px);max-width:1500px}.welcome{padding:25px 0 28px;border-bottom:1px solid #e5dfd3;margin-bottom:25px}.welcome h2{font-size:clamp(24px,3vw,33px);letter-spacing:-.055em}.status{background:#e9eee4;color:#405b3b;border-radius:4px}.stat,.panel,.doc{border-radius:5px;border-color:#e4ded2;background:#fffefa;box-shadow:none}.stat{padding:20px}.stat strong{font-size:31px;letter-spacing:-.05em}.bar i{background:var(--gold)}.section-title h3,.panel h3{letter-spacing:-.03em}.table-wrap{border-radius:5px;border-color:#e4ded2}th{background:#f1ede4}.small-btn{border-radius:4px;border-color:#ded7ca}.docs{grid-template-columns:repeat(2,minmax(0,1fr))}.doc{padding:21px}.doc .file-icon{background:#f2ead8;display:inline-grid;width:40px;height:40px;place-items:center;border-radius:4px}.profile-form input,.profile-form select{max-width:100%}
@media(max-width:720px){.app{grid-template-columns:1fr}.sidebar{top:40px;width:min(280px,86vw);box-shadow:18px 0 50px #101b3540}.topbar{padding:0 14px}.content{padding:16px}.welcome{padding-top:8px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat{padding:13px}.stat strong{font-size:24px}.docs{grid-template-columns:1fr}.demo-banner{font-size:9px;letter-spacing:.02em}.demo-banner a{white-space:nowrap}}
