:root{--bg:#f2f4f8;--panel:#ffffffc7;--panel-strong:#fffffff0;--panel-solid:#fff;--text:#171c27;--text-2:#3f4a5b;--muted:#7b8798;--muted-2:#9aa4b2;--line:#d8dee8d6;--line-strong:#d5dbe6;--accent:#5662df;--accent-2:#7885ff;--accent-3:#74c8ff;--accent-soft:#eef0ff;--danger:#d2525c;--danger-soft:#fff0f2;--warn:#bd7c22;--warn-soft:#fff6e7;--ok:#398660;--ok-soft:#edf8f2;--shadow-sm:0 8px 24px #1f2b420b;--shadow:0 18px 48px #1f2b4213;--shadow-hover:0 28px 70px #1f2b421f;--r:22px;--ease:cubic-bezier(.22,.8,.24,1)}*{box-sizing:border-box}html{background:#eef1f5}html,body{min-height:100%;color:var(--text);margin:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,PingFang SC,Microsoft YaHei,Inter,system-ui,sans-serif}body{background:radial-gradient(circle at 8% -10%,#6873ff33,#0000 30%),radial-gradient(circle at 91% 3%,#58c7ff26,#0000 27%),linear-gradient(#f9fafc 0%,#f3f5f8 47%,#eef1f5 100%);min-width:1080px;overflow-x:hidden}body:before,body:after{content:"";z-index:-1;pointer-events:none;filter:blur(1px);opacity:.75;border-radius:999px;animation:14s ease-in-out infinite alternate ambient;position:fixed}body:before{background:radial-gradient(circle,#616ef324,#616ef300 70%);width:390px;height:390px;top:170px;left:-150px}body:after{background:radial-gradient(circle,#45bbff1f,#45bbff00 72%);width:470px;height:470px;animation-delay:-5s;top:300px;right:-180px}button,input,select,textarea{font:inherit}button{cursor:pointer}::selection{background:#5662df2e}.auth-panel{background:radial-gradient(circle at 15% 10%,#6873ff2e,#0000 34%),radial-gradient(circle at 90% 0,#58c7ff24,#0000 30%),linear-gradient(#f9fafc,#eef1f5);place-items:center;min-height:100vh;padding:28px;display:grid}.auth-card{-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:#ffffffe0;border:1px solid #dce1ebe6;border-radius:25px;width:min(420px,100%);padding:30px;box-shadow:0 24px 70px #1f2b421c,inset 0 1px #fffffff2}.auth-card h1{margin-bottom:9px}.auth-hint{color:var(--muted);margin-bottom:22px;font-size:11px;line-height:1.65}.auth-card form{gap:8px;display:grid}.auth-card label{color:#687485;margin-top:5px;font-size:10px}.auth-card input{width:100%;min-height:43px;color:var(--text);background:#ffffffeb;border:1px solid #dce2ea;border-radius:11px;outline:0;padding:8px 10px;transition:border-color .18s,box-shadow .18s}.auth-card input:focus{border-color:#a4adff;box-shadow:0 0 0 4px #5662df17,0 8px 20px #1f2b420b}.auth-card button[type=submit]{width:100%;margin-top:10px}.auth-error{min-height:18px;color:var(--danger);margin:4px 0 0;font-size:10px;line-height:1.5}.demo-banner{color:#714b18;background:linear-gradient(100deg,#fff6e7fa,#fffcf4f5);border-bottom:1px solid #bd7c2238;justify-content:space-between;align-items:center;gap:20px;padding:12px 32px;display:flex;box-shadow:0 8px 26px #5b421e0f}.demo-banner h2{margin:0;font-size:14px;line-height:1.45}.demo-banner p{color:#8b6838;margin:2px 0 0;font-size:12px;line-height:1.5}.demo-banner button{color:#714b18;background:#ffffffbd;border-color:#bd7c2238;flex:none}@keyframes ambient{0%{transform:translate(0,0)scale(1)}to{transform:translate(26px,-28px)scale(1.08)}}@keyframes pageIn{0%{opacity:0;transform:translateY(11px)scale(.996)}to{opacity:1;transform:none}}@keyframes cardIn{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes barGrow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes glowPulse{0%,to{box-shadow:0 8px 22px #5662df29}50%{box-shadow:0 11px 30px #5662df42}}@keyframes shimmer{0%{transform:translate(-150%)rotate(14deg)}to{transform:translate(320%)rotate(14deg)}}@keyframes toastIn{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:none}}.topbar{z-index:50;-webkit-backdrop-filter:blur(28px)saturate(180%);backdrop-filter:blur(28px)saturate(180%);background:#f9fafcb3;border-bottom:1px solid #d3dae6b3;align-items:center;gap:30px;height:72px;padding:0 32px;display:flex;position:sticky;top:0;box-shadow:0 12px 42px #1f2b420e}.brand{align-items:center;gap:12px;min-width:268px;display:flex}.brand-icon{color:#fff;background:linear-gradient(145deg,#4f5bd5 0%,#6a77ef 55%,#8fb9ff 115%);border-radius:13px;place-items:center;width:38px;height:38px;font-weight:850;display:grid;position:relative;overflow:hidden;box-shadow:0 10px 26px #4f5bd545,inset 0 1px #ffffff61}.brand-icon:after{content:"";background:linear-gradient(90deg,#0000,#ffffff61,#0000);width:45%;animation:4.8s ease-in-out infinite shimmer;position:absolute;inset:-35% auto -35% -25%}.brand-line{letter-spacing:-.025em;font-size:14px;font-weight:850}.brand-line span{color:var(--accent);background:#eef0ffeb;border:1px solid #5662df14;border-radius:999px;margin-left:5px;padding:3px 6px;font-size:8px}.brand small{color:var(--muted);margin-top:2px;font-size:9px;display:block}nav{flex:1;gap:5px;display:flex}nav button{color:#6d7889;transition:transform .18s var(--ease),background .18s ease,color .18s ease,box-shadow .18s ease;background:0 0;border:0;border-radius:12px;padding:9px 14px;font-size:11px;position:relative}nav button:hover{color:var(--text);background:#ffffffb3;transform:translateY(-1px);box-shadow:0 8px 18px #1f2b420b}nav button.active{color:#4551cb;background:linear-gradient(#fffffff5,#eef0ffe0);font-weight:780;box-shadow:0 8px 22px #5662df1a,inset 0 0 0 1px #5662df14}nav button.active:after{content:"";background:linear-gradient(90deg,#5965dd,#76aaff);border-radius:99px;height:2px;position:absolute;bottom:4px;left:15px;right:15px;box-shadow:0 0 10px #5965dd66}.top-actions{align-items:center;gap:8px;display:flex}.save-status{color:#687485;white-space:nowrap;background:#ffffffb8;border:1px solid #dce2ebe6;border-radius:999px;padding:6px 9px;font-size:8px}.save-status[data-save-state=saving]{color:var(--accent)}.save-status[data-save-state=offline]{color:var(--warn)}.save-status[data-save-state=conflict]{color:var(--danger)}.primary,.ghost,.danger-ghost{min-height:40px;transition:transform .18s var(--ease),box-shadow .18s ease,border-color .18s ease,background .18s ease;border:0;border-radius:12px;padding:0 14px}.primary{color:#fff;background:linear-gradient(135deg,#4f5bd5 0%,#6572ef 58%,#7e91ff 100%);font-weight:780;position:relative;overflow:hidden;box-shadow:0 10px 24px #4f5bd538,inset 0 1px #ffffff47}.primary:after{content:"";background:linear-gradient(90deg,#0000,#ffffff59,#0000);width:35%;position:absolute;inset:-40% auto -40% -25%;transform:translate(-160%)rotate(14deg)}.primary:hover{transform:translateY(-2px);box-shadow:0 15px 30px #4f5bd547}.primary:hover:after{animation:.9s shimmer}.primary:active,.ghost:active,.danger-ghost:active{transform:scale(.985)}.ghost{color:#586576;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffc2;border:1px solid #d7dde7e6}.ghost:hover{background:#fff;transform:translateY(-1px);box-shadow:0 8px 18px #1f2b4212}.danger-ghost{color:var(--danger);background:#fff0f2e0;border:1px solid #f0d4d8}.danger-ghost:hover{transform:translateY(-1px);box-shadow:0 8px 18px #d2525c14}.round{width:40px;padding:0}.small{min-height:33px;padding:0 10px;font-size:9px}.workspace{max-width:1780px;margin:0 auto;padding:34px 38px 62px;position:relative}.page{display:none}.page.active{animation:pageIn .34s var(--ease);display:block}.kicker{letter-spacing:.16em;color:#8994a5;text-transform:uppercase;margin-bottom:8px;font-size:8px;font-weight:850}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.052em;background:linear-gradient(135deg,#171c27 0%,#28334c 58%,#5965dd 125%);color:#0000;-webkit-background-clip:text;background-clip:text;margin-bottom:9px;font-size:32px;font-weight:850;line-height:1.05}h2{margin-bottom:3px;font-size:14px}.hero-card{-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);background:radial-gradient(circle at 92% 18%,#778fff21,#0000 28%),linear-gradient(135deg,#ffffffe8,#f7f9ffd1);border:1px solid #dce1ebd6;border-radius:26px;justify-content:space-between;align-items:flex-end;margin-bottom:15px;padding:28px 29px;display:flex;position:relative;overflow:hidden;box-shadow:0 18px 52px #1f2b4213,inset 0 1px #ffffffe6}.hero-card:before{content:"";background:linear-gradient(90deg,#5965dd 0%,#7ba8ff 38%,#7ba8ff00 78%);height:3px;position:absolute;top:0;left:0;right:0}.hero-card:after{content:"";border:1px solid #5662df14;border-radius:50%;width:260px;height:260px;position:absolute;top:-130px;right:-80px;box-shadow:0 0 0 32px #5662df06,0 0 0 70px #5662df05}.hero-card p,.page-title p{color:var(--muted);margin:0;font-size:11px;line-height:1.65}.hero-date{text-align:right;letter-spacing:-.03em;color:#374151;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff94;border:1px solid #dce1ebbd;border-radius:15px;padding:12px 15px;font-size:19px;font-weight:850}.hero-date span{color:var(--muted);margin-top:4px;font-size:8px;font-weight:550;display:block}.stats{grid-template-columns:repeat(4,1fr);gap:11px;margin-bottom:15px;display:grid}.stat{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transition:transform .2s var(--ease),box-shadow .2s ease;background:linear-gradient(#ffffffe0,#f9fafdc7);border:1px solid #dee3ece0;border-radius:19px;padding:17px 19px;animation:.42s both cardIn;position:relative;overflow:hidden;box-shadow:0 10px 30px #1f2b420d,inset 0 1px #ffffffd9}.stat:nth-child(2){animation-delay:40ms}.stat:nth-child(3){animation-delay:80ms}.stat:nth-child(4){animation-delay:.12s}.stat:before{content:"";background:radial-gradient(circle,#5662df21,#0000 68%);border-radius:50%;width:120px;height:120px;position:absolute;top:-70px;right:-55px}.stat:hover{transform:translateY(-3px);box-shadow:0 17px 38px #1f2b4216}.stat .label{color:var(--muted);font-size:9px}.stat strong{letter-spacing:-.045em;margin:8px 0 3px;font-size:25px;display:block}.stat small{color:#98a2b0;font-size:8px}.dashboard-grid{grid-template-columns:minmax(0,1.45fr) minmax(420px,.8fr);gap:14px;display:grid}.panel{-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);background:#fffc;border:1px solid #dde2ebe6;border-radius:22px;overflow:hidden;box-shadow:0 16px 46px #1f2b420f,inset 0 1px #ffffffd9}.panel-head{border-bottom:1px solid #e4e8efe0;justify-content:space-between;align-items:center;padding:18px 20px;display:flex}.panel-head p{color:var(--muted);margin:0;font-size:8px}.soft-badge{background:var(--accent-soft);color:var(--accent);border:1px solid #5662df12;border-radius:999px;padding:5px 8px;font-size:8px;font-weight:750}.soft-badge.warm{background:var(--warn-soft);color:var(--warn);border-color:#bd7c2214}.attention-row,.due-row{cursor:pointer;border-bottom:1px solid #e8ebf1eb;padding:15px 20px;transition:background .16s,transform .16s}.attention-row:last-child,.due-row:last-child{border-bottom:0}.attention-row:hover,.due-row:hover{background:#f8fafde6;transform:translate(2px)}.attention-row{grid-template-columns:9px minmax(0,1fr) auto;gap:12px;display:grid}.risk-dot{background:var(--danger);border-radius:50%;width:9px;height:9px;margin-top:4px;box-shadow:0 0 0 4px #d2525c14}.risk-dot.medium{background:var(--warn);box-shadow:0 0 0 4px #bd7c2214}.risk-dot.normal{background:var(--ok);box-shadow:0 0 0 4px #39866014}.row-title{margin-bottom:4px;font-size:11px;font-weight:780}.row-desc{color:var(--muted);font-size:9px;line-height:1.58}.row-side{text-align:right;color:#8691a0;font-size:8px}.due-row{grid-template-columns:minmax(0,1fr) auto;gap:14px;display:grid}.due-main b{font-size:11px}.due-main span{color:var(--muted);margin-top:4px;font-size:8px;display:block}.due-days{background:var(--warn-soft);color:var(--warn);border-radius:999px;align-self:start;padding:6px 8px;font-size:8px;font-weight:760}.due-days.over{background:var(--danger-soft);color:var(--danger)}.page-title{justify-content:space-between;align-items:flex-end;margin-bottom:18px;display:flex}.filters{gap:10px;margin-bottom:14px;display:flex}.search-wrap{border:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffc;border-radius:13px;flex:1;align-items:center;gap:8px;padding:0 13px;transition:border-color .18s,box-shadow .18s,background .18s;display:flex}.search-wrap:focus-within{background:#fff;border-color:#a7afff;box-shadow:0 0 0 4px #5662df14,0 8px 20px #1f2b420d}.search-wrap input{background:0 0;border:0;outline:0;width:100%;min-height:43px}.filters select{border:1px solid var(--line);min-width:150px;color:var(--text);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffd1;border-radius:13px;outline:none;padding:0 11px}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;display:grid}.project-card{cursor:pointer;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);transition:transform .22s var(--ease),box-shadow .22s ease,border-color .22s ease;background:linear-gradient(#ffffffeb,#f7f9fcd6);border:1px solid #dce2ebe6;border-radius:23px;outline:none;padding:20px;animation:.42s both cardIn;position:relative;overflow:hidden;box-shadow:0 12px 34px #1f2b420e,inset 0 1px #ffffffeb}.project-card:nth-child(2){animation-delay:40ms}.project-card:nth-child(3){animation-delay:80ms}.project-card:nth-child(4){animation-delay:.12s}.project-card:nth-child(5){animation-delay:.16s}.project-card:before{content:"";opacity:.75;background:linear-gradient(90deg,#5965dd,#7da9ff,#0000 86%);height:3px;position:absolute;top:0;left:0;right:0}.project-card:after{content:"";background:radial-gradient(circle,#5662df24,#0000 69%);border-radius:50%;width:170px;height:170px;transition:transform .25s;position:absolute;top:-105px;right:-100px}.project-card:hover{border-color:#cfd6e6;transform:translateY(-5px)scale(1.006);box-shadow:0 24px 55px #1f2b421c,0 8px 20px #5662df0e}.project-card:hover:after{transform:scale(1.28)}.project-card:focus-visible{box-shadow:0 0 0 4px #5662df1f,0 24px 55px #1f2b421c}.project-top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.project-name{letter-spacing:-.025em;font-size:15px;font-weight:840;transition:color .18s}.project-card:hover .project-name{color:#4653cf}.client{color:var(--muted);margin-top:4px;font-size:8px}.pill{color:#657080;background:#f3f4f6;border:1px solid #d2d8e1a6;border-radius:999px;padding:5px 8px;font-size:8px}.pill.high{background:var(--danger-soft);color:var(--danger);border-color:#d2525c14}.pill.medium{background:var(--warn-soft);color:var(--warn);border-color:#bd7c2214}.pill.normal{background:var(--ok-soft);color:var(--ok);border-color:#39866014}.pill.lifecycle{color:#515dcc;white-space:nowrap;background:#eef0ff;border-color:#dfe3ff}.project-pills{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:5px;display:flex}.project-summary{color:#5a6676;background:#f7f9fceb;border:1px solid #ebeef3e6;border-radius:13px;min-height:55px;margin:13px 0 12px;padding:11px 12px;font-size:9px;line-height:1.65}.project-kpis{grid-template-columns:1fr 1fr 1fr;gap:7px;display:grid}.mini-kpi{background:#ffffffbd;border:1px solid #edf0f4;border-radius:12px;padding:9px;transition:transform .18s,background .18s}.project-card:hover .mini-kpi{background:#fff}.mini-kpi span{color:var(--muted);font-size:7px}.mini-kpi b{margin-top:4px;font-size:12px;display:block}.bar{background:#e9edf3;border-radius:99px;height:6px;margin:13px 0 6px;overflow:hidden;box-shadow:inset 0 1px 2px #1f2b420a}.bar i{transform-origin:0;height:100%;animation:barGrow .72s var(--ease);background:linear-gradient(90deg,#5965dd 0%,#6d7df1 50%,#7db7ff 100%);border-radius:99px;display:block;box-shadow:0 0 14px #5662df38}.bar.delivery i{background:linear-gradient(90deg,#2f9f77 0%,#43b98c 50%,#70d6b2 100%);box-shadow:0 0 14px #2f9f7733}.bar-label{color:#8b96a4;justify-content:space-between;font-size:8px;display:flex}.bar-label b{color:#5f6b7b;font-size:8px}.progress-pair{gap:3px;margin-top:12px;display:grid}.progress-pair .bar{margin:4px 0 6px}.project-progress-track{width:100%;display:block}.project-progress-track rect{fill:#6676e6}.project-progress-track.delivery rect{fill:#43b98c}.project-date-fields{grid-template-columns:1fr 1fr;gap:10px;display:grid}.project-date-fields.hidden{display:none}.card-actions{border-top:1px solid #edf0f4;gap:10px;margin-top:13px;padding-top:12px;display:flex}.text-btn{color:#677486;background:0 0;border:0;padding:4px 0;font-size:8px;transition:color .16s,transform .16s}.text-btn:hover{color:#303b4c;transform:translateY(-1px)}.text-btn.main{color:var(--accent);margin-right:auto;font-weight:780}.text-btn.danger{color:var(--danger)}.detail-nav{justify-content:space-between;align-items:center;margin-bottom:15px;display:flex}.detail-actions{gap:7px;display:flex}.detail-hero{border:1px solid var(--line);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:radial-gradient(circle at 92% 10%,#738dff1f,#0000 31%),linear-gradient(135deg,#fffffff0,#f7f9ffdb);border-radius:23px;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:13px;padding:23px 24px;display:flex;position:relative;overflow:hidden}.detail-hero:before{content:"";background:linear-gradient(90deg,#5965dd,#80b6ff,#0000 80%);height:3px;position:absolute;inset:0 0 auto}.detail-hero h1{font-size:29px}.detail-hero p{color:var(--muted);max-width:860px;margin:0;font-size:9px;line-height:1.65}.detail-tags{flex-wrap:wrap;gap:7px;margin-top:10px;display:flex}.detail-progress{background:#ffffffb8;border:1px solid #dae0e9e6;border-radius:16px;gap:10px;margin:14px 2px 0;padding:14px 16px;display:grid}.detail-progress-row{gap:7px;display:grid}.detail-progress-row .bar-label{color:var(--muted);font-size:12px}.detail-progress-row .bar-label b{color:var(--text);font-size:12px}.detail-progress-track{background:#e9edf3;border-radius:99px;width:100%;height:7px;display:block;overflow:hidden}.detail-progress-track rect{fill:#6676e6}.detail-progress-track.delivery rect{fill:#43b98c}.tag{color:#687484;background:#f3f5f8e0;border:1px solid #dde2eabd;border-radius:999px;padding:5px 7px;font-size:8px}.detail-layout{grid-template-columns:minmax(0,1.45fr) minmax(430px,.85fr);align-items:start;gap:14px;display:grid}.detail-layout.doc-hidden{grid-template-columns:1fr}.detail-layout.doc-hidden .doc-pane{display:none}.detail-main{gap:12px;display:grid}.block{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffc;border:1px solid #dce2ebe6;border-radius:21px;padding:19px 20px;transition:box-shadow .18s,transform .18s;box-shadow:0 12px 34px #1f2b420e,inset 0 1px #ffffffdb}.block:hover{box-shadow:0 18px 43px #1f2b4213}.block-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.block-head h2{font-size:13px}.block-head p{color:var(--muted);margin:0;font-size:8px}.metrics{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.metric{background:linear-gradient(#fafbfe,#f5f7fb);border:1px solid #eaf0f5;border-radius:14px;padding:12px;position:relative;overflow:hidden}.metric:after{content:"";background:radial-gradient(circle,#5662df17,#0000 70%);border-radius:50%;width:80px;height:80px;position:absolute;top:-45px;right:-40px}.metric span{color:var(--muted);font-size:7px}.metric b{letter-spacing:-.035em;margin-top:5px;font-size:17px;display:block}.type-list{gap:9px;margin-top:14px;display:grid}.type-row{grid-template-columns:100px minmax(0,1fr) 170px auto;align-items:center;gap:9px;display:grid}.type-row.dual{grid-template-columns:100px minmax(180px,1fr) 210px auto}.type-progress{min-width:0}.type-row .name{font-size:9px;font-weight:760}.type-row .nums{color:#7d8998;text-align:right;font-size:8px}.vendor-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.vendor-card{transition:transform .18s var(--ease),box-shadow .18s ease,border-color .18s ease;background:linear-gradient(145deg,#fcfdfff5,#f6f8fceb);border:1px solid #e5eaf1;border-radius:18px;padding:15px;box-shadow:0 8px 22px #1f2b420a}.vendor-card:hover{border-color:#d7deea;transform:translateY(-2px);box-shadow:0 14px 32px #1f2b4213}.vendor-card-top{justify-content:space-between;gap:10px;display:flex}.vendor-card h3{margin:0;font-size:11px}.vendor-card .due{color:var(--muted);margin-top:3px;font-size:8px}.vendor-card .vendor-kpis{grid-template-columns:repeat(3,1fr);gap:6px;margin:11px 0;display:grid}.vk{background:#ffffffd1;border:1px solid #edf0f4;border-radius:10px;padding:8px}.vk span{color:var(--muted);font-size:7px}.vk b{margin-top:3px;font-size:10px;display:block}.vendor-card .plan-line{color:#7c8796;margin-top:8px;font-size:8px}.vendor-card .actions{border-top:1px solid #eceff3;gap:10px;margin-top:10px;padding-top:9px;display:flex}.delivery-card .vendor-card-top{align-items:flex-start}.milestone-list{border-top:1px solid #e8ecf1;gap:7px;margin-top:12px;padding-top:11px;display:grid}.milestone-row{background:#ffffffd6;border:1px solid #e7ebf1;border-radius:12px;grid-template-columns:29px minmax(0,1fr) auto;align-items:center;gap:9px;padding:10px 11px;transition:transform .16s,box-shadow .16s,border-color .16s;display:grid}.milestone-row:hover{border-color:#d9e0eb;transform:translate(2px);box-shadow:0 7px 18px #1f2b420b}.milestone-index{width:27px;height:27px;color:var(--accent);background:linear-gradient(145deg,#eef0ff,#e7f2ff);border:1px solid #5662df14;border-radius:9px;place-items:center;font-size:7px;font-weight:850;display:grid}.milestone-main b{font-size:9px}.milestone-main span{color:var(--muted);margin-top:3px;font-size:7px;line-height:1.5;display:block}.milestone-actions{gap:8px;display:flex}.milestone-empty{padding:14px}.batch-toolbar{gap:8px;display:flex}.batch-selection-toolbar{color:#515dcc;background:linear-gradient(135deg,#f5f6ff,#f8fbff);border:1px solid #dfe3ff;border-radius:14px;align-items:center;gap:8px;margin:-3px 0 12px;padding:10px 12px;font-size:8px;display:flex}.batch-selection-toolbar b{margin-right:auto}.batch-selection-toolbar select,.inline-select{border:1px solid var(--line);color:var(--text);background:#fff;border-radius:9px;outline:none;padding:6px 8px;font-size:8px}.inline-select{min-width:118px;max-width:160px}.inline-state{color:#7d8794;white-space:nowrap;background:#f4f5f7;border:1px solid #e1e5eb;border-radius:999px;padding:5px 8px;font-size:8px;transition:all .16s}.inline-state.on{color:#378360;background:#eaf8f1;border-color:#cbeadb}.inline-state:disabled,.inline-select:disabled{opacity:.55;cursor:wait}.batch-table input[type=checkbox]{accent-color:#5965dd;width:15px;height:15px}.table-wrap{background:#ffffff8c;border:1px solid #e8ecf2;border-radius:14px;max-height:360px;overflow:auto}.data-table{border-collapse:collapse;width:100%;font-size:8px}.data-table th,.data-table td{text-align:left;white-space:nowrap;border-bottom:1px solid #edf0f4;padding:10px 8px}.data-table tbody tr{transition:background .15s}.data-table tbody tr:hover{background:#fafbfe}.data-table th{color:#7e8997;z-index:2;background:#f9fafcf5;font-weight:720;position:sticky;top:0}.status-chip,.yn{color:#697485;background:#f0f2f5;border-radius:999px;padding:4px 6px;font-size:7px}.yn.yes{background:var(--ok-soft);color:var(--ok)}.yn.no{color:#818b97;background:#f3f4f6}.log-list{gap:8px;display:grid}.log-row{background:#f9fafcb8;border:1px solid #edf0f4;border-radius:12px;grid-template-columns:105px minmax(0,1fr) auto;align-items:start;gap:10px;padding:10px 11px;font-size:8px;transition:transform .16s,background .16s;display:grid}.log-row:hover{background:#fff;transform:translate(2px)}.log-row time{color:#8b96a4}.doc-pane{border:1px solid var(--line);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);background:#ffffffd6;border-radius:21px;flex-direction:column;max-height:calc(100vh - 112px);display:flex;position:sticky;top:88px;overflow:hidden;box-shadow:0 20px 56px #1f2b4217,inset 0 1px #ffffffe0}.doc-head{justify-content:space-between;align-items:center;gap:10px;padding:16px 17px 11px;display:flex}.doc-head h2{margin:0;font-size:13px}.doc-head select{border:1px solid var(--line);background:#fff;border-radius:10px;outline:none;max-width:210px;padding:7px 8px;font-size:8px}.doc-toolbar{border-bottom:1px solid #edf0f4;gap:6px;padding:0 17px 11px;display:flex}.doc-viewer{color:#465362;background:linear-gradient(#ffffffb8,#fafbfdad);min-height:520px;padding:19px 20px;font-size:9px;line-height:1.84;overflow:auto}.doc-viewer pre{white-space:pre-wrap;margin:0;font-family:inherit}.doc-viewer iframe{border:0;border-radius:10px;width:100%;height:calc(100vh - 210px)}.reminder-panel{overflow:hidden}.reminder-row{border-bottom:1px solid #edf0f4;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:14px;padding:15px 18px;transition:background .15s;display:grid}.reminder-row:hover{background:#fafbfe}.reminder-row:last-child{border-bottom:0}.reminder-row b{font-size:10px}.reminder-row span{color:var(--muted);margin-top:3px;font-size:8px;display:block}.switch{background:#d9dee5;border:0;border-radius:99px;width:39px;height:23px;transition:background .18s;position:relative}.switch:after{content:"";width:17px;height:17px;transition:left .18s var(--ease);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 2px 6px #1f2b4229}.switch.on{background:linear-gradient(135deg,#5662df,#7381f5)}.switch.on:after{left:19px}.status-create-grid{grid-template-columns:minmax(140px,1.4fr) 80px repeat(3,minmax(105px,1fr)) auto;align-items:end;gap:8px;margin-bottom:12px;display:grid}.check-label{color:#657080;align-items:center;gap:7px;min-height:36px;font-size:8px;display:flex!important}.check-label input{accent-color:#5965dd;width:15px;height:15px}.status-list{gap:7px;display:grid}.status-setting-row{background:#ffffffb8;border:1px solid #edf0f4;border-radius:13px;grid-template-columns:minmax(130px,1fr) minmax(250px,1.4fr) auto;align-items:center;gap:10px;padding:10px 11px;display:grid}.status-setting-row.inactive{opacity:.68;background:#f7f8fa}.status-setting-row b{font-size:9px;display:block}.status-setting-row span{color:var(--muted);font-size:7px}.status-flags{flex-wrap:wrap;gap:5px;display:flex}.soft-badge.muted{color:#8c96a2;background:#f2f3f5}.text-btn:disabled{opacity:.42;cursor:not-allowed;transform:none}.reminder-management{margin-top:12px}.settings-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.settings-shell{grid-template-columns:190px minmax(0,1fr);align-items:start;gap:14px;display:grid}.settings-nav{border:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffc2;border-radius:18px;flex-direction:column;gap:6px;padding:9px;display:flex;position:sticky;top:92px}.settings-nav button{color:#687486;text-align:left;min-height:40px;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:11px;padding:9px 12px;font-weight:720}.settings-nav button:hover,.settings-nav button.active{color:#4654c9;background:#eef0ff}.settings-nav button:focus-visible{outline-offset:2px;outline:3px solid #5662df40}.settings-panels{min-width:0}.settings-panels>[hidden]{display:none!important}.settings-panel-stack{gap:12px;display:grid}.setting-head.actions{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.general-settings-form{grid-template-columns:minmax(0,1fr) auto}.sync-summary{color:#657181;background:#f8f9fc;border:1px solid #e8ecf3;border-radius:15px;grid-template-columns:auto 1fr;gap:5px 12px;margin-top:14px;padding:14px;font-size:9px;display:grid}.sync-summary b{color:#394555}.sync-summary p{grid-column:1/-1;margin:0;line-height:1.65}.inline-note{flex:1;margin:0}.setting-panel{border:1px solid var(--line);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffc;border-radius:21px;padding:19px;box-shadow:0 12px 34px #1f2b420e,inset 0 1px #ffffffd9}.setting-head h2{font-size:13px}.setting-head p{color:var(--muted);font-size:8px;line-height:1.55}.settings-form{grid-template-columns:minmax(0,1fr) minmax(150px,.6fr) auto;align-items:end;gap:8px;margin:13px 0;display:grid}.settings-form.vendor{grid-template-columns:minmax(0,1fr) auto}.settings-form label,.modal label{color:#798596;font-size:8px}.settings-form input,.settings-form select,.modal input,.modal select,.modal textarea{width:100%;min-height:39px;color:var(--text);background:#ffffffe6;border:1px solid #dce2ea;border-radius:11px;outline:0;margin-top:5px;padding:8px 10px;transition:border-color .18s,box-shadow .18s,background .18s}.settings-form input:focus,.settings-form select:focus,.modal input:focus,.modal select:focus,.modal textarea:focus{background:#fff;border-color:#a4adff;box-shadow:0 0 0 4px #5662df17,0 8px 20px #1f2b420b}.setting-table{border-collapse:collapse;width:100%;font-size:8px}.setting-table th,.setting-table td{text-align:left;border-bottom:1px solid #edf0f4;padding:9px 7px}.setting-table tbody tr:hover{background:#fafbfe}.setting-table th{color:#7f8996}.setting-note{color:#687485;background:#f8f9fcd1;border:1px solid #e9edf3;border-radius:14px;margin-top:12px;padding:12px;font-size:8px;line-height:1.65}.reminder-setting{background:linear-gradient(145deg,#f8f9ff,#fafbfc);border:1px solid #e8ecf5;border-radius:15px;align-items:end;gap:9px;margin-top:12px;padding:14px;display:flex}.reminder-setting label{color:#778393;font-size:8px}.reminder-setting input{border:1px solid #dde2e9;border-radius:10px;width:100px;min-height:37px;margin-top:5px;padding:7px 8px}.recovery-panel{gap:12px;display:grid}.recovery-controls{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;display:grid}.recovery-controls label{color:#778393;font-size:8px}.recovery-controls select,.recovery-controls input{width:100%;min-height:39px;color:var(--text);background:#ffffffe6;border:1px solid #dce2ea;border-radius:11px;margin-top:5px;padding:8px 10px}.recovery-password{grid-column:span 1}.recovery-actions{gap:8px;display:flex}.recovery-status{color:var(--muted);margin:0;font-size:8px}.recovery-preview,.recovery-result{border-radius:14px;font-size:8px;line-height:1.65}.recovery-preview{background:#f8f9fc;border:1px solid #e9edf3;padding:12px}.recovery-preview p{margin:0 0 6px}.recovery-preview ul{margin:5px 0 9px;padding-left:18px}.recovery-result{color:var(--ok);align-items:center;gap:10px;font-weight:750;display:flex}.recovery-result:empty,.recovery-preview:empty{display:none}.modal-mask{-webkit-backdrop-filter:blur(11px)saturate(120%);backdrop-filter:blur(11px)saturate(120%);z-index:100;background:#19202d57;justify-content:center;align-items:center;padding:24px;display:none;position:fixed;inset:0}.modal-mask.open{animation:.2s pageIn;display:flex}.modal{-webkit-backdrop-filter:blur(26px);backdrop-filter:blur(26px);width:min(650px,100%);max-height:84vh;animation:cardIn .28s var(--ease);background:#fffffff0;border:1px solid #dce2ebeb;border-radius:23px;padding:22px 24px;overflow:auto;box-shadow:0 34px 100px #19202d3d,inset 0 1px #ffffffe6}.modal h2{letter-spacing:-.03em;margin-bottom:4px;font-size:18px}.modal .hint{color:var(--muted);margin-bottom:13px;font-size:8px;line-height:1.55}.modal textarea{resize:vertical;min-height:90px}.modal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.modal-grid .wide{grid-column:1/-1}.modal-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.detail-section-nav{background:#ffffffad;border:1px solid #dae0e9e6;border-radius:14px;gap:7px;margin-top:18px;padding:6px;display:flex;overflow-x:auto}.detail-section-nav button{color:var(--muted);white-space:nowrap;cursor:pointer;font:inherit;background:0 0;border:0;border-radius:10px;padding:9px 14px}.detail-section-nav button.active{color:var(--ink);background:#fff;font-weight:700;box-shadow:0 5px 18px #252f4814}.pricing-summary{grid-template-columns:repeat(4,minmax(0,1fr));margin:16px 0}.allocation-chart{background:linear-gradient(145deg,#fafbff,#fff);border:1px solid #e5e9f1;border-radius:17px;margin-bottom:16px;padding:16px}.allocation-chart h3{margin:0 0 11px;font-size:14px}.allocation-track{background:#f1f3f7;border:1px solid #dfe4ec;border-radius:12px;width:100%;height:40px;display:block;overflow:hidden}.allocation-track-empty{background:repeating-linear-gradient(135deg,#f3f5f8 0 10px,#eceff4 10px 20px)}.allocation-segment{stroke:#ffffff70;stroke-width:.15px}.allocation-segment[data-allocation-color="0"]{fill:#5662df}.allocation-legend-item i[data-allocation-color="0"]{background:#5662df}.allocation-segment[data-allocation-color="1"]{fill:#38a2c7}.allocation-legend-item i[data-allocation-color="1"]{background:#38a2c7}.allocation-segment[data-allocation-color="2"]{fill:#6a8f5d}.allocation-legend-item i[data-allocation-color="2"]{background:#6a8f5d}.allocation-segment[data-allocation-kind=unallocated]{fill:#b7bfca}.allocation-legend-item i[data-allocation-kind=unallocated]{background:#b7bfca}.allocation-legend{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:11px;display:grid}.allocation-legend-item{min-width:0;color:var(--text-2);background:#f5f7fa;border-radius:11px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:4px 7px;padding:8px 9px;display:grid}.allocation-legend-item i{border-radius:50%;grid-row:1/3;width:10px;height:10px}.allocation-legend-item span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.allocation-legend-item b{font-size:13px}.allocation-legend-item small{color:var(--muted);grid-column:2/4}.allocation-empty{color:var(--muted);text-align:center;margin:10px 0 0}.supplier-insight-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:20px;display:grid}.supplier-insight-card{min-width:0;box-shadow:var(--shadow-sm);background:#ffffffdb;border:1px solid #e2e7ef;border-radius:17px;overflow:hidden}.supplier-insight-card.inactive{color:#687485;background:#f7f8fa}.supplier-insight-head{border-bottom:1px solid #e9edf3;justify-content:space-between;align-items:flex-start;gap:14px;padding:15px 16px;display:flex}.supplier-insight-head>div:first-child{align-items:center;gap:7px;min-width:0;display:flex}.supplier-insight-head h3{overflow-wrap:anywhere;margin:0;font-size:15px}.supplier-insight-totals{color:var(--muted);flex-wrap:wrap;justify-content:flex-end;gap:11px;font-size:12px;display:flex}.supplier-insight-totals b{color:var(--text)}.supplier-type-list{display:grid}.supplier-type-row{border-bottom:1px solid #edf0f4;grid-template-columns:minmax(135px,1fr) minmax(220px,1.25fr) auto;align-items:center;gap:12px;min-width:0;padding:12px 16px;display:grid}.supplier-type-row:last-child{border-bottom:0}.supplier-type-name{min-width:0}.supplier-type-name b{overflow-wrap:anywhere;display:block}.supplier-type-name span{color:var(--muted);overflow-wrap:anywhere;margin-top:4px;font-size:12px;display:block}.supplier-type-values{color:var(--muted);grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;font-size:12px;display:grid}.supplier-type-values span{min-width:0}.supplier-type-values b{color:var(--text);margin-top:2px;font-size:14px;display:block}.supplier-type-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.supplier-type-empty{padding:18px}.supplier-insight-empty{text-align:center;color:var(--muted);background:#f8f9fc;border:1px dashed #d7dde7;border-radius:17px;grid-column:1/-1;padding:24px}.supplier-insight-empty b{color:var(--text)}.supplier-insight-empty p{margin:6px 0 0}.customer-pricing{padding-top:2px}.customer-pricing-head{margin-bottom:10px}.customer-pricing-head h3{margin:0 0 4px;font-size:15px}.customer-pricing-head p{color:var(--muted);margin:0;font-size:12px}.customer-pricing .table-wrap{max-height:none}.business-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}[data-detail-panel][hidden],#docPane[hidden],#toggleDocBtn[hidden]{display:none!important}.detail-layout:not(.business-documents){grid-template-columns:minmax(0,1fr)}.detail-layout.business-documents .detail-main{min-width:0}@media (width<=980px){.business-kpis,.pricing-summary,.allocation-legend{grid-template-columns:repeat(2,minmax(0,1fr))}.supplier-insight-grid{grid-template-columns:minmax(0,1fr)}.detail-section-nav{margin-inline:-2px}}@media (width<=620px){.pricing-summary,.allocation-legend{grid-template-columns:minmax(0,1fr)}.supplier-insight-head,.supplier-type-row{grid-template-columns:minmax(0,1fr);display:grid}.supplier-insight-totals,.supplier-type-actions{justify-content:flex-start}.supplier-type-values{grid-template-columns:minmax(0,1fr)}.allocation-segment span{font-size:10px}}.toast{color:#fff;opacity:0;pointer-events:none;z-index:120;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#19202df0;border-radius:13px;padding:11px 14px;font-size:8px;transition:all .18s;position:fixed;bottom:24px;right:24px;transform:translateY(8px)scale(.98);box-shadow:0 16px 46px #00000038}.toast.show{opacity:1;animation:.22s toastIn;transform:none}.empty{text-align:center;color:#8b96a4;padding:30px;font-size:8px}.delivery-plan-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:7px;display:flex}.delivery-import-shell{z-index:110;pointer-events:none;background:linear-gradient(90deg,#0000 0 55%,#1f2b4214 100%);position:fixed;inset:0}.delivery-import-drawer{pointer-events:auto;width:min(680px,100%);height:100%;animation:drawerIn .24s var(--ease);background:#fffffffa;border-left:1px solid #dae0e9f5;flex-direction:column;display:flex;position:absolute;top:0;right:0;box-shadow:-24px 0 72px #1f2b4229}@keyframes drawerIn{0%{opacity:.65;transform:translate(22px)}to{opacity:1;transform:none}}.drawer-head{background:linear-gradient(150deg,#fafbff,#fff);border-bottom:1px solid #e9edf3;justify-content:space-between;align-items:flex-start;gap:16px;padding:22px 24px 17px;display:flex}.drawer-head h2{letter-spacing:-.025em;margin:3px 0 4px;font-size:18px}.drawer-head p{color:var(--muted);margin:0;font-size:9px}.drawer-body{gap:16px;padding:18px 24px 28px;display:grid;overflow:auto}.import-file-panel{background:#fafbfe;border:1px solid #e5eaf2;border-radius:16px;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:9px;padding:14px;display:grid}.import-file-panel label{color:#526071;grid-column:1/-1;font-size:9px;font-weight:760}.import-file-panel input,.import-file-panel select{background:#fff;border:1px solid #dce2ea;border-radius:10px;width:100%;min-height:39px;padding:7px 9px;font-size:9px}.import-file-panel select{grid-column:1/-1}.import-file-panel .file-summary,.import-supplier-hint{color:var(--muted);grid-column:1/-1;font-size:8px}.import-selected-vendor{background:#f5f8fd;border:1px solid #dfe8f5;border-radius:13px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding:12px 14px;display:flex}.import-selected-vendor span{color:var(--muted);font-size:8px}.import-selected-vendor b{font-size:11px}[data-delivery-import-preview]{gap:16px;display:grid}.import-summary{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.import-summary span{color:#657181;background:#f5f7fa;border-radius:12px;padding:11px 12px;font-size:8px}.import-summary b{color:var(--text);margin-top:3px;font-size:15px;display:block}.import-summary .accept{color:#36805d;background:#edf8f2}.import-summary .error{color:#b34b4b;background:#fff0f0}.import-summary .skip{color:#6f7885;background:#f2f3f6}.import-section{gap:8px;display:grid}.import-section h3{margin:0;font-size:10px}.import-errors{background:snow;border:1px solid #f1d2d2;border-radius:14px;padding:13px}.import-table-wrap{border:1px solid #e8ecf2;border-radius:12px;overflow:auto}.import-table{min-width:640px}.duplicate-row{color:#818b98;background:#f8f9fb}.import-result{border-radius:999px;padding:4px 7px;font-size:7px;font-weight:780;display:inline-flex}.import-result.accept{color:#347a59;background:#e9f7ef}.import-result.skip{color:#717b88;background:#eceff3}.import-empty-state,.import-message{color:#697484;background:#f6f7fa;border-radius:13px;padding:14px;font-size:9px;line-height:1.65}.import-empty-state p{margin:0}.import-message{color:#966220;background:#fff5e8;margin:0}.import-empty{padding:18px}.drawer-actions{background:linear-gradient(#fff0,#fff 30%);justify-content:flex-end;padding:14px 0 0;display:flex;position:sticky;bottom:-28px}@media (width<=1320px){.project-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr 420px}.detail-layout{grid-template-columns:minmax(0,1.2fr) 390px}.vendor-cards{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,1fr)}}@media (width<=980px){.settings-shell{grid-template-columns:1fr}.settings-nav{overscroll-behavior-x:contain;flex-direction:row;padding:7px;position:static;overflow-x:auto}.settings-nav button{text-align:center;white-space:nowrap;flex:none}.status-create-grid{grid-template-columns:1fr 90px 1fr 1fr}.status-create-grid .primary{grid-column:span 2}.status-setting-row{grid-template-columns:1fr;align-items:start}.reminder-row{grid-template-columns:1fr auto;gap:8px}.delivery-import-shell{background:#1f2b421f}.delivery-import-drawer{width:min(620px,100%)}}@media (width<=620px){.general-settings-form{grid-template-columns:1fr}.reminder-setting{flex-direction:column;align-items:stretch}.reminder-setting input{width:100%}.setting-head.actions{flex-direction:column;align-items:stretch}.setting-head.actions button{align-self:flex-start}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.doc-viewer img{max-width:100%;max-height:640px;margin:auto;display:block}.doc-viewer iframe{border:0;width:100%;min-height:620px}.doc-viewer pre{white-space:pre-wrap;overflow:auto}.file-summary{color:#667085;font-size:13px}body{min-width:0;font-size:14px}.primary,.ghost,.danger-ghost,.small,nav button,.settings-nav button,input:not([type=checkbox]):not([type=radio]),select,textarea{min-height:40px;font-size:14px}.text-btn{min-height:40px;padding:0 4px;font-size:12px}.kicker,.brand small,.save-status,.tag,.pill,.soft-badge,.row-side,.block-head p,.metric span,.type-row .nums,.vendor-card .due,.vk span,.milestone-main span,.batch-selection-toolbar,.inline-select,.data-table,.status-chip,.yn,.log-row,.setting-head p,.settings-form label,.modal label,.modal .hint,.setting-table,.setting-note,.reminder-setting label,.recovery-status,.recovery-preview,.recovery-result,.toast,.empty,.import-file-panel .file-summary,.import-summary span,.import-result,.auth-hint,.auth-card label,.auth-error,.brand-line span,.hero-card p,.page-title p,.hero-date span,.stat .label,.stat small,.panel-head p,.row-desc,.due-main b,.due-main span,.due-days,.client,.project-summary,.mini-kpi span,.bar-label,.bar-label b,.detail-hero p,.vk b,.vendor-card .plan-line,.milestone-index,.inline-state,.doc-head select,.doc-viewer,.reminder-row span,.check-label,.status-setting-row span,.sync-summary,.recovery-controls label,.drawer-head p,.import-file-panel label,.import-file-panel input,.import-section h3,.import-empty-state,.import-message{font-size:12px}.row-title,.type-row .name,.vendor-card h3,.milestone-main b,.reminder-row b,.status-setting-row b{font-size:14px}.block-head h2,.setting-head h2,.doc-head h2{font-size:17px}.data-table th,.data-table td,.setting-table th,.setting-table td{height:44px;padding:11px 10px}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline-offset:2px;outline:3px solid #5662df57}.documents-workspace{grid-template-columns:minmax(240px,.6fr) minmax(0,1.4fr) minmax(280px,.7fr);align-items:start;gap:14px;min-width:0;display:grid}.detail-layout.business-documents{grid-template-columns:minmax(0,1fr)}.documents-workspace.records-collapsed{grid-template-columns:minmax(240px,.6fr) minmax(0,1.4fr)}.documents-workspace.records-collapsed .project-records-pane{display:none}.document-list-pane,.document-preview-pane,.project-records-pane{border:1px solid var(--line);background:#ffffffd1;border-radius:21px;min-width:0;overflow:hidden}.document-preview-pane{box-shadow:var(--shadow);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);position:sticky;top:88px}.documents-pane-head{border-bottom:1px solid #edf0f4;justify-content:space-between;align-items:flex-start;gap:10px;padding:16px;display:flex}.documents-pane-head h2{margin:0 0 4px;font-size:18px}.documents-pane-head p{color:var(--muted);margin:0;font-size:12px;line-height:1.5}.document-filters{border-bottom:1px solid #edf0f4;gap:6px;padding:12px;display:flex;overflow-x:auto}.document-filters .active{background:var(--accent-soft);color:#4654c9;border-color:#aeb6ff}.document-list{max-height:calc(100vh - 290px);display:grid;overflow:auto}.document-list-item{min-height:58px;color:var(--text);text-align:left;background:0 0;border:0;border-bottom:1px solid #edf0f4;padding:12px 14px}.document-list-item:hover,.document-list-item.active{background:#f2f4ff}.document-list-item b{font-size:14px;display:block}.document-list-item span{color:var(--muted);margin-top:4px;font-size:12px;line-height:1.45;display:block}.document-preview-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.document-preview{background:linear-gradient(#ffffffb8,#fafbfdad);min-height:560px;max-height:calc(100vh - 190px);padding:18px;line-height:1.7;overflow:auto}.document-preview pre{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.document-preview img{max-width:100%;max-height:680px;margin:auto;display:block}.document-preview iframe{border:0;width:100%;min-height:620px}.document-preview:fullscreen{background:#fff;max-height:none}.project-records-pane .log-list{padding:10px}.project-records-pane .log-row{grid-template-columns:1fr;min-height:44px}.project-records-pane .log-row:hover{transform:none}.xlsx-sheet-tabs{gap:7px;margin-bottom:12px;display:flex;overflow-x:auto}.xlsx-sheet-tabs [aria-selected=true]{background:var(--accent-soft);color:#4654c9;border-color:#aeb6ff}.xlsx-table-wrap{border:1px solid #e3e8ef;border-radius:12px;overflow:auto}.xlsx-preview-table{border-collapse:collapse;min-width:100%;font-size:12px}.xlsx-preview-table th,.xlsx-preview-table td{text-align:left;white-space:pre-wrap;vertical-align:top;border:1px solid #e8ecf2;height:44px;padding:9px 10px}.xlsx-preview-table th{background:#f7f8fb;position:sticky;top:0}.xlsx-truncation,.document-metadata{color:var(--muted);font-size:12px;line-height:1.65}.skeleton{background:#edf0f5;border-radius:18px;position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(90deg,#0000,#ffffffb8,#0000);animation:1.15s infinite skeletonSweep;position:absolute;inset:0;transform:translate(-100%)}.detail-skeleton{min-height:180px;margin-bottom:14px}.preview-skeleton{min-height:520px}@keyframes skeletonSweep{to{transform:translate(100%)}}.projects-skeleton{grid-column:1/-1;min-height:320px}.settings-skeleton{width:100%;min-height:420px}@media (width<=980px){.workspace,.topbar{padding-inline:16px}.brand{min-width:0}.brand small,.top-actions .save-status{display:none}.demo-banner{padding-inline:16px}.documents-workspace,.documents-workspace.records-collapsed{grid-template-columns:minmax(0,1fr)}.document-list-pane{order:1}.document-preview-pane{order:2;position:static}.project-records-pane{order:3}.documents-workspace.records-collapsed .project-records-pane{display:block}.document-list{max-height:360px}.document-preview{min-height:420px;max-height:none}}@media (width<=620px){.demo-banner{flex-direction:column;align-items:stretch;gap:10px}.demo-banner button{align-self:flex-start}}
