:root{--ink:#0a0a0a;--paper:#fff;--surface:#f1f0ee;--line:#dfdedb;--muted:#777;--accent:#b15f2c;--accent1:#cf8047;--accent2:#97501f;--ok:#287a50;--danger:#a13b32;--radius:1.5rem}
*{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased}body{min-height:100vh;font-family:Onest,sans-serif;background:#e9e8e5;color:#111}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.hidden{display:none!important}.ambient{position:fixed;border-radius:50%;filter:blur(1px);pointer-events:none}.ambient-a{right:-8rem;top:-9rem;width:28rem;height:28rem;background:radial-gradient(circle at 35% 35%,rgba(255,255,255,.9),rgba(207,128,71,.18) 43%,transparent 70%)}.ambient-b{left:24%;bottom:-15rem;width:30rem;height:30rem;background:radial-gradient(circle,rgba(177,95,44,.12),transparent 68%)}
.brand{display:inline-flex;align-items:center;gap:.65rem;font-weight:700;letter-spacing:-.03em}.brand-mark{display:grid;place-items:center;width:1.7rem;height:1.7rem;border-radius:.5rem;background:linear-gradient(135deg,var(--accent1),var(--accent2));color:#fff;font-size:.8rem}.eyebrow{display:inline-flex;align-items:center;gap:.5rem;color:var(--muted);font-size:.75rem;font-weight:650;text-transform:uppercase;letter-spacing:.08em}.eyebrow:before{content:"";width:.38rem;height:.38rem;border-radius:50%;background:var(--accent1)}.muted{color:var(--muted)}
.login-shell{position:relative;z-index:1;display:grid;min-height:100vh}.login-copy{display:flex;flex-direction:column;padding:2rem;background:var(--ink);color:#fff}.login-copy .brand{font-size:1.1rem}.login-message{margin:auto 0;max-width:42rem}.login-message h1{margin-top:1.2rem;font-size:clamp(3rem,7vw,6.5rem);line-height:.88;letter-spacing:-.065em}.login-message h1 em{color:var(--accent1);font-style:normal}.login-message p{max-width:34rem;margin-top:1.5rem;color:rgba(255,255,255,.56);line-height:1.7}.login-proof{display:flex;flex-wrap:wrap;gap:1.5rem;color:rgba(255,255,255,.42);font-size:.72rem}.login-proof span:before{content:"✓";margin-right:.45rem;color:var(--accent1)}.login-card-wrap{display:grid;place-items:center;padding:1.25rem}.login-card{width:min(30rem,100%);border:1px solid rgba(255,255,255,.7);border-radius:2rem;background:rgba(255,255,255,.82);padding:clamp(1.5rem,5vw,3rem);box-shadow:0 2rem 6rem rgba(10,10,10,.14);backdrop-filter:blur(18px)}.login-card h2{margin-top:1rem;font-size:2.2rem;letter-spacing:-.05em}.login-card>p{margin-top:.65rem;font-size:.86rem;line-height:1.55}.login-card label,.form-grid label{display:grid;gap:.45rem;margin-top:1rem;color:#555;font-size:.75rem;font-weight:600}.login-card input,.form-grid input,.form-grid select,.form-grid textarea{width:100%;border:1px solid var(--line);border-radius:.85rem;background:#fff;padding:.85rem .95rem;outline:none}.login-card input:focus,.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(177,95,44,.1)}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;padding:.8rem 1.15rem;font-weight:650;transition:.25s}.btn:hover{transform:translateY(-2px)}.btn.primary{background:var(--ink);color:#fff}.login-card .btn{width:100%;margin-top:1.25rem}.btn.ghost{border:1px solid var(--line);background:#fff}.btn.accent{background:linear-gradient(135deg,var(--accent1),var(--accent2));color:#fff}.text-btn{display:block;margin:1rem auto 0;border:0;background:none;color:var(--accent);font-size:.75rem}.status{min-height:1.2rem;text-align:center}.status.error{color:var(--danger)}.status.success{color:var(--ok)}
.app{position:relative;z-index:1;display:grid;grid-template-columns:17rem 1fr;min-height:100vh}.sidebar{position:sticky;top:0;display:flex;flex-direction:column;height:100vh;padding:1.5rem;background:var(--ink);color:#fff}.sidebar nav{display:grid;gap:.35rem;margin-top:3rem}.nav-btn{display:flex;align-items:center;gap:.75rem;width:100%;border:0;border-radius:.8rem;background:transparent;padding:.8rem;color:rgba(255,255,255,.5);text-align:left}.nav-btn span{display:grid;place-items:center;width:1.2rem;color:var(--accent1)}.nav-btn:hover,.nav-btn.active{background:rgba(255,255,255,.08);color:#fff}.sidebar-footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.1);padding-top:1rem}.user-mini{display:flex;align-items:center;gap:.7rem}.user-mini>span{display:grid;place-items:center;width:2.2rem;height:2.2rem;border-radius:50%;background:var(--accent);font-weight:700}.user-mini b,.user-mini small{display:block}.user-mini b{font-size:.78rem}.user-mini small{margin-top:.12rem;color:rgba(255,255,255,.45);font-size:.65rem}.logout{margin-top:.9rem;border:0;background:none;color:rgba(255,255,255,.45);font-size:.7rem}.mobile-head{display:none}.content{padding:2rem 3rem 4rem}.content-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.content-head h1{margin-top:.45rem;font-size:clamp(2rem,4vw,3.6rem);letter-spacing:-.055em}.notice{margin-top:1rem;border-radius:.8rem;padding:.85rem 1rem;background:#fff3df;color:#744711;font-size:.8rem}.notice.error{background:#fee9e7;color:#7b2922}.dashboard-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:2rem}.metric{min-height:9rem;border-radius:var(--radius);background:#fff;padding:1.25rem;box-shadow:0 .8rem 2.2rem rgba(10,10,10,.05)}.metric:nth-child(2){background:linear-gradient(135deg,var(--accent1),var(--accent2));color:#fff}.metric:nth-child(3){background:var(--ink);color:#fff}.metric small{color:inherit;opacity:.55}.metric strong{display:block;margin-top:1.6rem;font-size:2rem;letter-spacing:-.05em}.metric span{display:block;margin-top:.25rem;font-size:.72rem;opacity:.55}.section-card{margin-top:1rem;border-radius:var(--radius);background:rgba(255,255,255,.86);padding:1.3rem;box-shadow:0 .8rem 2.2rem rgba(10,10,10,.05)}.section-card-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.section-card h2{font-size:1.1rem}.project-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.project-card{border:1px solid var(--line);border-radius:1.2rem;background:#fff;padding:1.2rem}.project-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.project-card h3{font-size:1.2rem}.badge{display:inline-flex;border-radius:999px;background:var(--surface);padding:.35rem .6rem;color:#555;font-size:.65rem;font-weight:650}.progress{height:.45rem;margin-top:1rem;overflow:hidden;border-radius:1rem;background:var(--surface)}.progress i{display:block;height:100%;border-radius:1rem;background:linear-gradient(90deg,var(--accent1),var(--accent2))}.project-meta{display:flex;flex-wrap:wrap;gap:1rem;margin-top:.8rem;color:var(--muted);font-size:.7rem}.card-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.card-actions .btn{padding:.55rem .8rem;font-size:.68rem}.empty{padding:2rem;text-align:center;color:var(--muted);font-size:.82rem}.list{display:grid}.list-row{display:grid;grid-template-columns:1.2fr .8fr .7fr auto;align-items:center;gap:1rem;border-top:1px solid var(--line);padding:.9rem 0;font-size:.78rem}.list-row:first-child{border-top:0}.list-row small{color:var(--muted)}.money{font-weight:700}.file-link{color:var(--accent);font-weight:600}.message{max-width:75%;margin-top:.75rem;border-radius:1rem 1rem 1rem .2rem;background:var(--surface);padding:.85rem 1rem}.message.mine{margin-left:auto;border-radius:1rem 1rem .2rem 1rem;background:var(--ink);color:#fff}.message small{display:block;margin-top:.35rem;color:inherit;opacity:.5}.message-form{display:flex;gap:.6rem;margin-top:1rem}.message-form input{flex:1;border:1px solid var(--line);border-radius:999px;padding:.8rem 1rem}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 1rem}.form-grid .full{grid-column:1/-1}.form-grid textarea{min-height:6rem;resize:vertical}.form-grid .btn{grid-column:1/-1;margin-top:1rem}.helper{margin-top:.7rem;color:var(--muted);font-size:.7rem;line-height:1.5}
dialog{width:min(42rem,calc(100% - 2rem));max-height:90vh;margin:auto;border:0;border-radius:1.5rem;background:#fff;box-shadow:0 2rem 8rem rgba(0,0,0,.3)}dialog::backdrop{background:rgba(0,0,0,.55);backdrop-filter:blur(5px)}.modal-card{position:relative;padding:1.5rem}.modal-card h2{padding-right:2rem;font-size:1.5rem}.modal-close{position:absolute;right:1rem;top:1rem;border:0;background:none;font-size:1.5rem}.modal-card>.btn{margin-top:1rem}
@media(max-width:1050px){.dashboard-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.app{display:block}.sidebar{position:fixed;z-index:20;left:0;top:0;width:17rem;transform:translateX(-105%);transition:.3s}.sidebar.open{transform:none}.mobile-head{position:sticky;z-index:15;top:0;display:flex;align-items:center;justify-content:space-between;padding:1rem;background:rgba(255,255,255,.88);backdrop-filter:blur(14px)}.menu-btn{border:1px solid var(--line);border-radius:.7rem;background:#fff;padding:.55rem .75rem}.content{padding:1.3rem 1rem 3rem}.content-head{align-items:flex-end}.content-head .btn{display:none}.project-grid{grid-template-columns:1fr}.list-row{grid-template-columns:1fr auto}.list-row>*:nth-child(2),.list-row>*:nth-child(3){display:none}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.login-shell{grid-template-columns:1fr}.login-copy{min-height:42vh;padding:1.4rem}.login-message{margin:4rem 0 2rem}.login-message h1{font-size:3.1rem}.login-proof{display:none}.login-card-wrap{margin-top:-2rem}.dashboard-grid{grid-template-columns:1fr 1fr}.metric{min-height:7.5rem}.metric strong{margin-top:1rem}}
@media(min-width:900px){.login-shell{grid-template-columns:1.08fr .92fr}}
