:root{--scale:1;--bg:#0a0d0e;--panel:#111617;--panel2:#171d1f;--text:#f4f1eb;--muted:#9da5a5;--bronze:#b9824b;--bronze2:#d2a064;--line:#3d3228;--green:#4fc389;--blue:#73aeea;--red:#ef665f;--shadow:0 18px 50px #0008;--radius:18px;font-size:calc(16px * var(--scale));color-scheme:dark}
html[data-font="2"]{--scale:1.08}html[data-font="3"]{--scale:1.16}html[data-font="4"]{--scale:1.25}
html[data-theme="light"]{--bg:#f3f0ea;--panel:#fffdf9;--panel2:#f7f3ed;--text:#171716;--muted:#6c716e;--line:#cfb79c;--shadow:0 15px 40px #563d211a;color-scheme:light}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;min-height:100vh}button,input,textarea{font:inherit}.hidden{display:none!important}
body:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 78% 15%,#9d653416,transparent 34%),linear-gradient(125deg,transparent 60%,#a66b2d08);z-index:-1}
.login-shell{min-height:100vh;display:grid;grid-template-columns:1.25fr .75fr;align-items:center;gap:8vw;padding:7vw;background:linear-gradient(90deg,#090c0d 0 54%,transparent),radial-gradient(circle at 20% 25%,#b77e3922,transparent 35%)}
.login-brand{max-width:680px}.login-brand img{width:min(620px,100%);height:230px;object-fit:contain;object-position:center}.login-brand p{color:#c9b39c;letter-spacing:.22em;text-transform:uppercase;font-size:.8rem;margin:0 7%}
.login-card{width:min(440px,100%);padding:2.5rem;border:1px solid var(--line);border-radius:24px;background:linear-gradient(145deg,var(--panel2),var(--panel));box-shadow:var(--shadow)}.eyebrow{color:var(--bronze2);text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;font-weight:700}.login-card h1{font-size:2rem;margin:.5rem 0 2rem}.login-card label{display:grid;gap:.55rem;margin:1rem 0;color:var(--muted);font-size:.84rem}.login-card input{width:100%;border:1px solid #464b4a;border-radius:12px;background:var(--bg);color:var(--text);padding:.9rem 1rem;outline:none}.login-card input:focus{border-color:var(--bronze);box-shadow:0 0 0 3px #b9824b22}.primary{border:0;border-radius:12px;background:linear-gradient(135deg,#d4a268,#9d6938);color:#15120e;padding:.95rem 1.2rem;font-weight:800;cursor:pointer;box-shadow:0 8px 24px #a66b2d35}.login-card .primary{width:100%;margin-top:.75rem}.form-error{min-height:1.25rem;color:var(--red);font-size:.82rem}.demo-help{color:var(--muted);font-size:.76rem}.demo-help summary{cursor:pointer}.demo-help p{line-height:1.7}
.app-shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.sidebar{position:sticky;top:0;height:100vh;padding:1.1rem .9rem;border-right:1px solid var(--line);background:linear-gradient(180deg,#101516,#0a0e0f);display:flex;flex-direction:column;z-index:20}.side-logo{height:105px;width:100%;object-fit:contain;margin-bottom:1rem}.sidebar nav{display:grid;gap:.35rem}.sidebar nav button,.quiet{border:1px solid transparent;background:transparent;color:#aeb5b4;border-radius:12px;padding:.8rem .9rem;text-align:left;cursor:pointer;display:flex;align-items:center;gap:.85rem}.sidebar nav button span{width:1.5rem;text-align:center;color:#cf9b63;font-size:1.3rem}.sidebar nav button:hover,.sidebar nav button.active{color:#fff;background:linear-gradient(110deg,#332719,#171b1c);border-color:#60472f;box-shadow:inset 0 1px #d5a16828}.side-foot{margin-top:auto;display:grid;gap:.3rem}.quiet:hover{color:var(--bronze2);background:#ffffff08}
main{min-width:0}.topbar{height:92px;display:flex;align-items:center;gap:1rem;padding:0 clamp(1rem,3vw,3rem);border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 84%,transparent);backdrop-filter:blur(18px);position:sticky;top:0;z-index:15}.topbar h1{font-size:1.45rem;margin:.2rem 0 0}.top-actions{margin-left:auto;display:flex;align-items:center;gap:.8rem}.icon-btn{width:44px;height:44px;border-radius:12px;border:1px solid var(--line);background:linear-gradient(145deg,var(--panel2),var(--panel));color:var(--bronze2);cursor:pointer;position:relative}.notification b{position:absolute;right:-3px;top:-5px;width:19px;height:19px;border-radius:50%;display:grid;place-items:center;background:var(--red);color:#fff;font-size:.65rem}.profile-chip{border:0;background:transparent;color:var(--text);display:flex;align-items:center;gap:.65rem;text-align:left;cursor:pointer}.profile-chip>span:first-child,.member-avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#d0a26f,#76502e);color:#17120e;font-weight:800}.profile-chip strong,.profile-chip small{display:block}.profile-chip strong{font-size:.85rem}.profile-chip small{color:var(--muted);font-size:.72rem;margin-top:.15rem}.menu-toggle{display:none}
.content{padding:clamp(1rem,3vw,3rem);max-width:1500px;margin:0 auto}.welcome{display:flex;justify-content:space-between;align-items:end;margin-bottom:1.8rem}.welcome h2{font-size:clamp(1.7rem,3vw,2.65rem);margin:.35rem 0}.welcome p{color:var(--muted);margin:0}.date-chip{color:var(--bronze2);border:1px solid var(--line);border-radius:999px;padding:.55rem .9rem;background:var(--panel)}
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2rem}.metric{position:relative;overflow:hidden;padding:1.25rem;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg,var(--panel2),var(--panel));box-shadow:0 12px 28px #0003}.metric:after{content:"";position:absolute;width:100px;height:100px;border-radius:50%;right:-40px;top:-50px;background:#b77a3b14}.metric strong{font-size:2rem;color:var(--bronze2)}.metric span{display:block;margin-top:.3rem;color:var(--muted)}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:2rem 0 1rem}.section-head h2{font-size:1.2rem;margin:0}.text-btn{border:0;background:none;color:var(--bronze2);cursor:pointer}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.project-card{padding:1rem;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg,var(--panel2),var(--panel));cursor:pointer;transition:.2s transform,.2s border-color,.2s box-shadow;min-height:190px;display:flex;flex-direction:column}.project-card:hover{transform:translateY(-3px);border-color:var(--bronze);box-shadow:0 14px 32px #0005}.project-cover{height:64px;border-radius:12px;margin-bottom:.9rem;background:linear-gradient(125deg,#6f4d2a,#171c1d 48%,#263033);position:relative;overflow:hidden}.project-cover:after{content:"";position:absolute;inset:14px 18px 0;background:linear-gradient(110deg,transparent 22%,#d3a26750 23% 25%,transparent 26% 45%,#d3a26740 46% 49%,transparent 50%),linear-gradient(#ffffff12,#0000);clip-path:polygon(0 100%,0 46%,25% 28%,25% 100%,40% 100%,40% 8%,67% 35%,67% 100%,80% 100%,80% 48%,100% 34%,100% 100%)}.project-title{display:flex;justify-content:space-between;gap:.75rem;align-items:start}.project-title h3{margin:0;font-size:1rem}.status{border-radius:999px;padding:.28rem .55rem;font-size:.66rem;white-space:nowrap}.status.active,.status.signed{color:#78dda5;background:#164b34}.status.approval,.status.review{color:#abd5ff;background:#1c4368}.status.new,.status.signing{color:#f1bc7c;background:#5b3716}.status.completed{color:#aeb7b6;background:#303637}.project-card address{font-style:normal;color:var(--muted);font-size:.78rem;line-height:1.45;margin:.5rem 0 1rem}.progress{height:6px;background:#252c2d;border-radius:99px;overflow:hidden;margin-top:auto}.progress i{display:block;height:100%;background:linear-gradient(90deg,#a56d38,#e2b57c);border-radius:inherit}.project-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:.72rem;margin-top:.65rem}.project-meta b{color:var(--text)}
.toolbar{display:flex;gap:.65rem;flex-wrap:wrap;margin-bottom:1rem}.search{flex:1;min-width:220px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text);padding:.75rem 1rem}.filter-btn{border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--muted);padding:.7rem .9rem;cursor:pointer}.filter-btn.active{color:#18130e;background:var(--bronze2);border-color:var(--bronze2)}
.panel{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg,var(--panel2),var(--panel));overflow:hidden}.list-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:.9rem;align-items:center;padding:1rem 1.1rem;border-bottom:1px solid var(--line)}.list-row:last-child{border-bottom:0}.list-icon{width:42px;height:42px;border:1px solid #5a4632;border-radius:12px;display:grid;place-items:center;color:var(--bronze2);background:#b9824b12}.list-row h3{font-size:.92rem;margin:0 0 .25rem}.list-row p{margin:0;color:var(--muted);font-size:.75rem}.list-meta{text-align:right;color:var(--muted);font-size:.72rem}.empty{padding:3rem;text-align:center;color:var(--muted)}
.detail-head{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:start;padding:1.4rem;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg,#2b2118,var(--panel) 65%);margin-bottom:1rem}.detail-head h2{font-size:1.5rem;margin:0}.detail-head address{font-style:normal;color:var(--muted);margin:.4rem 0}.detail-progress{text-align:right}.detail-progress strong{display:block;color:var(--bronze2);font-size:2rem}.tabs{display:flex;gap:.45rem;overflow:auto;margin-bottom:1rem}.tabs button{border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:11px;padding:.65rem .85rem;white-space:nowrap;cursor:pointer}.tabs button.active{background:linear-gradient(145deg,#d3a56f,#986536);color:#18130e}.message-list{display:grid;gap:.8rem;padding:1rem}.message{display:grid;grid-template-columns:42px 1fr;gap:.8rem}.message-body{padding:.8rem 1rem;background:var(--bg);border-radius:5px 14px 14px 14px}.message-body strong{font-size:.78rem}.message-body p{margin:.35rem 0;line-height:1.5}.message-body time{color:var(--muted);font-size:.68rem}.composer{display:flex;gap:.6rem;padding:1rem;border-top:1px solid var(--line)}.composer textarea{flex:1;min-height:46px;max-height:130px;resize:vertical;border:1px solid var(--line);border-radius:12px;padding:.75rem;background:var(--bg);color:var(--text)}.composer button{align-self:end}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.setting{padding:1.1rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}.setting h3{margin:.1rem 0 .4rem}.setting p{color:var(--muted);font-size:.8rem}.font-options{display:flex;gap:.5rem}.font-options button{width:42px;height:42px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);color:var(--text);cursor:pointer}.font-options button.active{border-color:var(--bronze);color:var(--bronze2)}.loading{min-height:280px;display:grid;place-items:center;align-content:center;gap:.8rem;color:var(--muted)}.loading i{width:32px;height:32px;border:3px solid #ffffff20;border-top-color:var(--bronze2);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.permission-panel{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg,var(--panel2),var(--panel));overflow:hidden}.permission-head{display:flex;justify-content:space-between;gap:1.5rem;align-items:end;padding:1.2rem}.permission-head h3{margin:.2rem 0}.permission-head p{margin:.3rem 0 0;color:var(--muted);font-size:.8rem}.permission-head label{display:grid;gap:.4rem;color:var(--muted);font-size:.75rem}.permission-head select{min-width:310px;border:1px solid var(--line);border-radius:11px;background:var(--bg);color:var(--text);padding:.75rem}.permission-wrap{overflow:auto;border-block:1px solid var(--line)}.permission-table{width:100%;min-width:940px;border-collapse:collapse}.permission-table th,.permission-table td{padding:.8rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center}.permission-table th{position:sticky;top:0;z-index:2;background:var(--panel2);color:var(--muted);font-size:.72rem}.permission-table th:first-child,.permission-table td:first-child{position:sticky;left:0;z-index:1;text-align:left;background:var(--panel);min-width:235px}.permission-table th:first-child{z-index:3;background:var(--panel2)}.permission-table tr:last-child td{border-bottom:0}.permission-table input{width:19px;height:19px;accent-color:var(--bronze);cursor:pointer}.save-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.2rem}.save-row span{color:var(--muted);font-size:.78rem}.primary{border:1px solid var(--bronze);border-radius:11px;padding:.7rem 1rem;background:linear-gradient(145deg,var(--bronze2),var(--bronze));color:#17120e;font-weight:750;cursor:pointer}.primary:disabled{opacity:.55;cursor:wait}
.upload-form{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:1rem;align-items:end;padding:1.2rem;margin-bottom:1rem;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg,#2b2118,var(--panel) 65%)}.upload-form h3{margin:.2rem 0}.upload-form label{display:grid;gap:.4rem;color:var(--muted);font-size:.75rem}.upload-form input,.upload-form select{width:100%;border:1px solid var(--line);border-radius:11px;background:var(--bg);color:var(--text);padding:.72rem}.file-picker{grid-column:1/3}.file-picker span{font-size:.68rem}.upload-submit{display:flex;justify-content:flex-end;align-items:center;gap:.8rem}.upload-submit span{color:var(--muted);font-size:.72rem}.document-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:.9rem;align-items:center;padding:1rem 1.1rem;border-bottom:1px solid var(--line)}.document-row:last-child{border-bottom:0}.document-main h3{margin:0 0 .25rem;font-size:.92rem}.document-main p,.document-main small{display:block;margin:0;color:var(--muted);font-size:.74rem}.document-main small{margin-top:.3rem}.document-actions{display:flex;justify-content:flex-end;gap:.4rem;flex-wrap:wrap}.document-actions button{border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--bronze2);padding:.48rem .65rem;cursor:pointer;font-size:.7rem}.document-actions button.danger{color:var(--red)}
@media(max-width:1050px){.project-grid{grid-template-columns:repeat(2,1fr)}.metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:780px){.login-shell{grid-template-columns:1fr;padding:1.2rem}.login-brand{display:none}.login-card{margin:auto}.app-shell{display:block}.sidebar{position:fixed;left:-280px;width:260px;transition:left .2s}.sidebar.open{left:0;box-shadow:30px 0 70px #000b}.menu-toggle{display:block}.topbar{height:78px}.profile-chip>span:last-child{display:none}.content{padding:1rem}.project-grid{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,1fr);gap:.7rem}.metric{padding:1rem}.welcome{display:block}.date-chip{display:inline-block;margin-top:1rem}.settings-grid{grid-template-columns:1fr}.list-row{grid-template-columns:40px minmax(0,1fr)}.list-meta{grid-column:2;text-align:left}.detail-head{grid-template-columns:1fr}.detail-progress{text-align:left}.side-logo{height:90px}.permission-head,.save-row{align-items:stretch;flex-direction:column}.permission-head select{min-width:0;width:100%}.upload-form{grid-template-columns:1fr}.file-picker{grid-column:auto}.upload-submit{align-items:stretch;flex-direction:column}.document-row{grid-template-columns:40px minmax(0,1fr)}.document-actions{grid-column:2;justify-content:flex-start}}
@media(max-width:420px){.metrics{grid-template-columns:1fr 1fr}.metric strong{font-size:1.55rem}.top-actions{gap:.35rem}.notification{display:none}.topbar h1{font-size:1.2rem}}
