:root{
  font-family:Inter,"Segoe UI",Tahoma,sans-serif;
  --nav:#062b46;--nav2:#031d31;--bg:#f3f9fc;--card:#fff;--text:#163248;--muted:#6d8392;--line:#dceaf1;
  --blue:#0088d8;--cyan:#61d6d3;--lime:#b7e85a;--violet:#38bfc5;--green:#25a978;--amber:#c9892d;--red:#d05262;--shadow:0 14px 38px rgba(0,104,164,.12);
  --instant:120ms;--fast:180ms;--normal:280ms;--panel:360ms;--data:760ms;
}
*{box-sizing:border-box}html,body{min-height:100%}body{margin:0;color:var(--text);background:radial-gradient(circle at 90% 2%,#dcf8f6 0,transparent 24%),radial-gradient(circle at 72% 12%,#f0fad9 0,transparent 18%),var(--bg);min-width:1024px}
button,input,select,textarea{font:inherit}button{cursor:pointer}.hide{display:none!important}
.side{position:fixed;inset:0 auto 0 0;width:238px;background:linear-gradient(180deg,var(--nav),var(--nav2));color:white;padding:18px 13px;z-index:15;box-shadow:12px 0 34px rgba(10,17,34,.09)}
.brand{display:flex;align-items:center;gap:10px;padding:1px 8px 20px}.logo{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#0088d8,#59d4d2);display:grid;place-items:center;font-weight:850;box-shadow:0 9px 22px rgba(0,136,216,.30)}
.brand b,.brand small{display:block}.brand b{font-size:14px}.brand small{font-size:9px;color:#8f9bb5;margin-top:2px;letter-spacing:.25px}
.nav{display:flex;flex-direction:column;gap:2px}.nav button{height:42px;border:0;border-radius:10px;background:transparent;color:#98a5be;text-align:left;padding:0 11px;display:flex;align-items:center;gap:10px;transition:background var(--fast),color var(--fast),transform var(--fast)}
.nav button:hover{color:#fff;background:#0a3b5d;transform:translateX(2px)}.nav button.on{color:#fff;background:linear-gradient(90deg,#0088d83b,#61d6d311);box-shadow:inset 3px 0 #61d6d3}.nav .ico{width:20px;text-align:center}.nav em{margin-left:auto;font-style:normal;background:#243251;color:#bac4d8;border-radius:20px;font-size:8px;padding:3px 7px}
.auditlock{position:absolute;bottom:17px;left:14px;right:14px;border-top:1px solid #25314a;padding:14px 8px;color:#8f9db7;font-size:9px;line-height:1.5}.auditlock b{color:#c5cede}
.main{margin-left:238px}.top{height:68px;position:sticky;top:0;z-index:10;background:#ffffffdc;backdrop-filter:blur(13px);border-bottom:1px solid var(--line);padding:0 27px;display:flex;align-items:center;gap:18px}
.search{width:min(500px,45vw);height:39px;border:1px solid #e0e6ef;background:#f7f9fc;border-radius:10px;display:flex;align-items:center;padding:0 11px;gap:8px;color:#8792a7;transition:border var(--fast),box-shadow var(--fast)}.search:focus-within{border-color:#4abfd1;box-shadow:0 0 0 3px #e3f8f7}.search input{flex:1;border:0;outline:0;background:transparent;color:#34415a}.search kbd{font-size:8px;border:1px solid #dce2eb;background:#fff;border-radius:5px;padding:2px 5px;color:#939daf}
.topright{margin-left:auto;display:flex;align-items:center;gap:9px}.langbox{height:37px;border:1px solid #e0e5ee;background:#fff;border-radius:9px;display:flex;align-items:center;padding:3px;gap:2px}.langbox button{height:29px;min-width:34px;border:0;background:transparent;border-radius:7px;color:#7c8799;font-size:9px;font-weight:750;cursor:pointer;transition:background var(--fast),color var(--fast)}.langbox button.on{background:linear-gradient(135deg,#0088d8,#27b9d0);color:#fff;box-shadow:0 4px 10px #0088d833}.avatar{width:37px;height:37px;border-radius:11px;background:#1e2948;color:#fff;display:grid;place-items:center;font-weight:750;font-size:12px}
.content{max-width:1470px;margin:auto;padding:28px}.head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:21px;gap:20px}.head h1{font-size:25px;letter-spacing:-.5px;margin:0}.head p{font-size:10px;color:var(--muted);margin:5px 0 0;line-height:1.5}.head-actions{display:flex;gap:8px}
.primary,.secondary,.danger,.ghost{min-height:37px;border-radius:9px;padding:0 13px;font-size:10px;font-weight:700;border:1px solid transparent;transition:transform var(--fast),box-shadow var(--fast),background var(--fast),border var(--fast)}.primary{background:linear-gradient(135deg,#0088d8,#27b9d0);color:#fff;box-shadow:0 8px 18px #0088d833}.primary:hover{transform:translateY(-1px);box-shadow:0 11px 24px #0088d84a}.secondary{background:#fff;color:#526078;border-color:#dce3ed}.secondary:hover{border-color:#cbd4e1;background:#fbfcfe}.danger{background:#fff1f3;color:#c64d61;border-color:#ffe1e6}.danger:hover{background:#ffe8ec}.ghost{background:transparent;color:#647189}.ghost:hover{background:#f0f3f8}.tiny{min-height:29px;padding:0 9px;font-size:9px}.iconbtn{width:34px;height:34px;border:1px solid #e0e6ef;background:#fff;border-radius:9px;color:#6f7c92;display:grid;place-items:center}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stat{background:#fff;border:1px solid var(--line);border-radius:15px;padding:17px;display:flex;align-items:center;gap:12px;box-shadow:0 6px 18px #29385708;transition:transform var(--normal),box-shadow var(--normal)}.stat:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.si{width:43px;height:43px;border-radius:12px;background:#e8f6fd;color:#0088d8;display:grid;place-items:center;font-size:18px}.stat:nth-child(2) .si{background:#e7fbfa;color:#24b5b3}.stat:nth-child(3) .si{background:#fff4e8;color:#be7f31}.stat:nth-child(4) .si{background:#fff0f2;color:#cb5265}.stat span,.stat small,.stat b{display:block}.stat span,.stat small{font-size:9px;color:var(--muted)}.stat b{font-size:24px;margin:1px 0;animation:rise .5s ease both}@keyframes rise{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
.grid{display:grid;grid-template-columns:2fr 1fr;gap:14px;margin-top:14px}.panel{background:#fff;border:1px solid var(--line);border-radius:15px;padding:17px;box-shadow:0 6px 18px #29385708}.pt{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:13px}.pt h3{font-size:12px;margin:0}.pt p{font-size:9px;color:var(--muted);margin:4px 0 0}.health{display:grid;grid-template-columns:1.45fr 1fr .65fr .45fr;gap:13px;align-items:center;padding:11px 0;border-bottom:1px solid #edf0f5}.health:last-child{border-bottom:0}.health b,.health small{display:block}.health b{font-size:10px}.health small{font-size:8px;color:var(--muted);margin-top:2px}
.progress{display:flex;align-items:center;gap:7px}.track{height:6px;background:#edf1f6;border-radius:20px;overflow:hidden;flex:1}.fill{height:100%;display:block;background:linear-gradient(90deg,#0088d8,#61d6d3 72%,#b7e85a);border-radius:20px;width:0;transition:width var(--data) cubic-bezier(.2,.8,.2,1)}.progress em{font-size:8px;color:#6e7a90;font-style:normal;min-width:27px;text-align:right}.workload-count{display:inline-block;min-width:18px;text-align:right;will-change:contents}
.status{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:20px;font-size:8px;font-weight:750;white-space:nowrap}.s-green{background:#e9f8f1;color:#27835f}.s-amber{background:#fff4e6;color:#a86e25}.s-red{background:#fff0f2;color:#c64f61}.s-blue{background:#edf1ff;color:#586bd9}.s-gray{background:#f0f2f5;color:#697487}
.donutbox{display:flex;align-items:center;gap:20px;padding:12px 2px}.donut{width:125px;height:125px;border-radius:50%;background:#edf1f6;position:relative;display:grid;place-items:center;animation:donutin var(--data) ease both;will-change:background}.donut:after{content:"";position:absolute;inset:19px;border-radius:50%;background:#fff}.donut div{position:relative;z-index:1;text-align:center}.donut b,.donut small{display:block}.donut b{font-size:23px}.donut small{font-size:8px;color:var(--muted)}@keyframes donutin{from{opacity:0;transform:rotate(-25deg) scale(.93)}to{opacity:1;transform:none}}.legend{flex:1}.legend div{display:flex;align-items:center;gap:7px;font-size:8px;color:#6d788c;padding:4px 0}.legend i{width:7px;height:7px;border-radius:50%}.legend b{margin-left:auto;color:#364258}
.activity .arow{display:grid;grid-template-columns:9px 1fr;gap:8px;padding:7px 0}.activity .dot{width:7px;height:7px;border-radius:50%;background:#0088d8;margin-top:4px;box-shadow:0 0 0 4px #e5f6fd}.activity b,.activity span{display:block}.activity b{font-size:9px}.activity span{font-size:8px;color:#7f8a9c;margin-top:2px}.attention{margin-top:14px;border:1px solid #cfeef2;background:linear-gradient(90deg,#eaf8fd,#f3fbec);border-radius:13px;padding:13px 15px;display:flex;align-items:center;gap:11px;color:#087eac}.attention b,.attention span{display:block}.attention b{font-size:10px;color:#12688c}.attention span{font-size:8px;margin-top:2px}.attention button{margin-left:auto}
.toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.seg{background:#e9edf4;padding:4px;border-radius:10px;display:flex;gap:2px}.seg button{border:0;background:transparent;border-radius:7px;padding:7px 11px;color:#788397;font-size:9px}.seg button.on{background:#fff;color:#39465d;box-shadow:0 2px 8px #27365310}.filterline{display:flex;gap:8px}.filterline input,.filterline select{border:1px solid #dfe5ee;background:#fff;border-radius:9px;padding:8px 10px;color:#536078;outline:0;font-size:9px}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:17px;transition:transform var(--normal),box-shadow var(--normal),border var(--normal);position:relative}.card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:#d8dfeb}.card .id{font-size:8px;color:#007fcb;background:#e9f6fd;border-radius:6px;padding:5px 7px;display:inline-block;font-weight:750}.card h3{font-size:13px;margin:12px 0 6px}.card p{font-size:9px;line-height:1.55;color:var(--muted);min-height:29px}.meta{display:flex;gap:12px;font-size:8px;color:#758197;margin:12px 0}.foot{display:flex;align-items:center;gap:7px;margin-top:12px;padding-top:11px;border-top:1px solid #edf0f5}.foot small{font-size:8px;color:var(--muted)}.foot .spacer{margin-left:auto}.clickarea{cursor:pointer}.quick{position:absolute;top:13px;right:13px;border:0;background:#f3f5f9;color:#768298;border-radius:8px;width:29px;height:29px}
.tablewrap{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:auto;box-shadow:0 6px 18px #29385708}table{width:100%;border-collapse:collapse;min-width:800px}th{background:#f8fafc;color:#8490a4;text-align:left;text-transform:uppercase;letter-spacing:.35px;font-size:8px;padding:11px 13px}td{border-top:1px solid #edf0f5;padding:12px 13px;font-size:9px;color:#5f6b80}td b,td small{display:block}td b{color:#2f3a51;font-size:9px}td small{color:#8994a7;margin-top:2px}.priority{padding:4px 7px;border-radius:7px;background:#f0f2f6;display:inline-block}.p-high,.p-critical{background:#fff0f2;color:#c95264}.p-medium{background:#fff5e8;color:#a97530}.statussel{border:1px solid #dfe5ed;background:#fff;border-radius:8px;padding:6px 7px;font-size:8px;color:#526079;outline:0}.review-actions{display:flex;gap:5px}
.empty{background:#fff;border:1px dashed #d5dce8;border-radius:15px;padding:52px;text-align:center;color:#8994a7}.empty b{display:block;color:#526078;margin-bottom:5px}.retention{border:1px solid #dbe5ff;background:#eef4ff;border-radius:12px;padding:12px 14px;color:#5569d0;font-size:9px;margin-bottom:14px}.deleted{background:#fff;border:1px solid var(--line);border-radius:13px;padding:13px;display:flex;align-items:center;gap:12px;margin-bottom:9px}.ring{width:53px;height:53px;border-radius:50%;background:conic-gradient(#687cf0 var(--pct),#e8ecf3 0);position:relative;display:grid;place-items:center}.ring:after{content:"";position:absolute;inset:5px;border-radius:50%;background:#fff}.ring div{position:relative;z-index:1;text-align:center}.ring b,.ring small{display:block}.ring b{font-size:14px}.ring small{font-size:7px;color:#8893a5}.dm{flex:1}.dm b,.dm span{display:block}.dm b{font-size:10px}.dm span{font-size:8px;color:var(--muted);margin-top:3px}
.auditbar{display:flex;gap:8px;margin-bottom:12px}.auditbar input,.auditbar select{border:1px solid #dfe5ed;background:#fff;border-radius:9px;padding:8px 10px;font-size:9px;color:#556178;outline:0}.auditbar input{flex:1}.auditrow{display:grid;grid-template-columns:120px 1fr 130px;gap:12px;padding:12px 14px;background:#fff;border-bottom:1px solid #edf0f5;font-size:9px}.auditrow:first-child{border-radius:13px 13px 0 0}.auditrow:last-child{border-radius:0 0 13px 13px;border-bottom:0}.auditrow small{color:#8590a4}.pill{background:#eef2ff;color:#5668d5;border-radius:20px;padding:4px 8px;font-size:8px;display:inline-block}.auditwarn{background:#fff5e9;color:#a9742c}.auditcritical{background:#fff0f2;color:#c55063}
.reporthero{border-radius:16px;padding:22px;background:linear-gradient(135deg,#052d49,#087fb7 58%,#38c4c5 82%,#a9dd59);color:white;display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;box-shadow:0 14px 34px rgba(24,35,67,.18)}.reporthero span{font-size:8px;letter-spacing:1px;color:#b9c5e8}.reporthero h2{font-size:20px;margin:4px 0}.reporthero p{font-size:9px;color:#c7d0e4;margin:0}.reporthero .big{font-size:43px;opacity:.27}
.drawerbg,.modalbg{position:fixed;inset:0;background:rgba(10,17,33,.50);backdrop-filter:blur(4px);z-index:40;animation:fade var(--normal) ease both}.drawer{position:absolute;top:0;right:0;height:100%;width:min(720px,72vw);background:#f6f8fb;box-shadow:-25px 0 70px rgba(10,17,33,.22);animation:slide var(--panel) cubic-bezier(.2,.8,.2,1) both;overflow:auto}.drawerhead{background:#fff;border-bottom:1px solid var(--line);padding:22px 24px;position:sticky;top:0;z-index:2}.drawerhead .topline{display:flex;align-items:flex-start;gap:11px}.drawerhead .topline>div{flex:1}.drawerhead h2{font-size:20px;margin:5px 0 4px}.drawerhead p{font-size:9px;color:var(--muted);margin:0}.close{width:42px;height:42px;border:1px solid #efbdc6;background:#fff3f5;border-radius:11px;color:#c84f61;font-size:18px;font-weight:900;display:grid;place-items:center;box-shadow:0 5px 14px rgba(208,82,98,.12);transition:background var(--fast),border var(--fast),transform var(--fast),box-shadow var(--fast)}.close:hover{background:#ffe7eb;border-color:#e79eaa;transform:translateY(-1px);box-shadow:0 8px 20px rgba(208,82,98,.18)}.tabs{display:flex;gap:5px;margin-top:16px}.tabs button{border:0;background:transparent;border-radius:8px;padding:7px 10px;font-size:9px;color:#758096}.tabs button.on{background:#e6f7fb;color:#007cad;font-weight:700}.drawerbody{padding:18px 22px}.detailgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.mini{background:#fff;border:1px solid var(--line);border-radius:12px;padding:13px}.mini span,.mini b{display:block}.mini span{font-size:8px;color:var(--muted)}.mini b{font-size:12px;margin-top:3px}.descbox{background:#fff;border:1px solid var(--line);border-radius:12px;padding:15px;margin-top:11px}.descbox h4{font-size:10px;margin:0 0 6px}.descbox p{font-size:9px;line-height:1.6;color:#657188;margin:0}.version{background:#fff;border:1px solid var(--line);border-radius:11px;padding:12px;margin-bottom:8px;display:flex;gap:12px;align-items:center}.version .vnum{width:40px;height:40px;border-radius:11px;background:#e8f6fd;color:#0088d8;display:grid;place-items:center;font-weight:800}.version .vm{flex:1}.version b,.version span{display:block}.version b{font-size:9px}.version span{font-size:8px;color:var(--muted);margin-top:3px}
.modalbg{display:grid;place-items:center}.modal{width:min(480px,80vw);max-height:86vh;overflow:auto;background:#fff;border-radius:18px;padding:22px;box-shadow:0 30px 80px rgba(10,17,33,.28);animation:pop var(--panel) cubic-bezier(.2,.8,.2,1) both}.modal h2{font-size:18px;margin:0}.modal>p{font-size:9px;color:var(--muted);line-height:1.5;margin:5px 0 16px}.form{display:flex;flex-direction:column;gap:10px}.formrow{display:grid;grid-template-columns:1fr 1fr;gap:10px}.form label{font-size:8px;color:#667187;font-weight:650}.form input,.form select,.form textarea{width:100%;border:1px solid #dce3ec;border-radius:9px;padding:9px 10px;margin-top:4px;outline:0;color:#36435a;background:#fff;font-size:9px;resize:vertical}.form input:focus,.form select:focus,.form textarea:focus{border-color:#7f8eea;box-shadow:0 0 0 3px #eef0ff}.modalactions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.warningbox{background:#fff5e9;border:1px solid #ffe5c2;color:#966525;border-radius:10px;padding:10px;font-size:9px;line-height:1.5}
.toast{position:fixed;right:23px;bottom:23px;background:#07324f;color:#fff;border:1px solid #155578;border-radius:11px;padding:11px 14px;z-index:80;font-size:9px;box-shadow:0 16px 36px rgba(15,24,46,.30);animation:toastin var(--panel) cubic-bezier(.2,.8,.2,1) both}.toast b{margin-right:6px;color:#83e5df}.toast.error{background:#7f2634;border-color:#a74555}.toast.error b{color:#ffd2d9}.toast.warning{background:#78521b;border-color:#9f7330}.toast.warning b{color:#ffe4a7}
@keyframes fade{from{opacity:0}to{opacity:1}}@keyframes slide{from{transform:translateX(25px);opacity:0}to{transform:none;opacity:1}}@keyframes pop{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}@keyframes toastin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

.template-actions{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto}.template-task-list{display:grid;gap:6px;margin:10px 0}.template-task-item{display:flex;align-items:center;gap:7px;padding:7px 9px;background:#f7f9fc;border:1px solid #e8edf4;border-radius:8px;font-size:8px;color:#66748a}.template-task-item b{width:18px;height:18px;border-radius:6px;background:#e7f6fd;color:#0088d8;display:grid;place-items:center;font-size:7px}.template-picker{display:grid;gap:9px}.template-pick{border:1px solid #e1e7ef;border-radius:11px;padding:12px;background:#fff;display:flex;align-items:flex-start;gap:10px;cursor:pointer;transition:transform var(--fast),border var(--fast),box-shadow var(--fast)}.template-pick:hover{transform:translateY(-1px);border-color:#acdce9;box-shadow:0 8px 20px #24435c10}.template-pick>div{flex:1}.template-pick b,.template-pick small{display:block}.template-pick b{font-size:10px}.template-pick small{font-size:8px;color:var(--muted);margin-top:3px}.template-note{background:#eef9fb;border:1px solid #ccecf0;color:#226a7b;border-radius:10px;padding:10px 11px;font-size:8px;line-height:1.55;margin-bottom:11px}.template-source{font-size:8px;color:#7e8a9c;margin-top:3px}.modal.wide{width:min(620px,86vw)}
@media(max-width:1220px){.cards{grid-template-columns:repeat(2,1fr)}.stats{grid-template-columns:repeat(2,1fr)}.content{padding:22px}.grid{grid-template-columns:1fr}.side{width:215px}.main{margin-left:215px}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Motion system */
#app{position:relative}.page-enter{animation:pageIn var(--normal) cubic-bezier(.2,.8,.2,1) both}
.page-enter .stat,.page-enter .panel,.page-enter .card,.page-enter .tablewrap,.page-enter .reporthero,.page-enter .attention{animation:staggerIn 420ms cubic-bezier(.2,.8,.2,1) both}
.page-enter .stat:nth-child(1),.page-enter .card:nth-child(1){animation-delay:40ms}.page-enter .stat:nth-child(2),.page-enter .card:nth-child(2){animation-delay:85ms}.page-enter .stat:nth-child(3),.page-enter .card:nth-child(3){animation-delay:130ms}.page-enter .stat:nth-child(4),.page-enter .card:nth-child(4){animation-delay:175ms}
.page-enter .grid>.panel:nth-child(1){animation-delay:110ms}.page-enter .grid>.panel:nth-child(2){animation-delay:155ms}.page-enter .grid>.panel:nth-child(3){animation-delay:200ms}.page-enter .grid>.panel:nth-child(4){animation-delay:245ms}
.attention>span:first-child{animation:attentionPulse 720ms 260ms cubic-bezier(.2,.8,.2,1) both}
.nav button:active,.primary:active,.secondary:active,.ghost:active,.danger:active{transform:scale(.975)}
@keyframes pageIn{from{opacity:.55;transform:translateY(5px)}to{opacity:1;transform:none}}
@keyframes staggerIn{from{opacity:0;transform:translateY(10px) scale(.992)}to{opacity:1;transform:none}}
@keyframes attentionPulse{0%{transform:scale(.82);opacity:.55}60%{transform:scale(1.18);opacity:1}100%{transform:scale(1)}}
@keyframes brandGlow{0%{box-shadow:0 8px 18px rgba(0,136,216,.16)}50%{box-shadow:0 10px 27px rgba(97,214,211,.34)}100%{box-shadow:0 9px 22px rgba(0,136,216,.30)}}
.logo{animation:brandGlow 900ms cubic-bezier(.2,.8,.2,1) both}
.motion-hint{display:inline-flex;align-items:center;gap:6px;color:#0d759e;background:#e8f8fa;border:1px solid #cbeef0;border-radius:20px;padding:5px 9px;font-size:8px;font-weight:750}.motion-hint i{width:6px;height:6px;border-radius:50%;background:#64d7d2;box-shadow:0 0 0 0 rgba(100,215,210,.5);animation:hintPulse 1.8s ease-out infinite}@keyframes hintPulse{0%{box-shadow:0 0 0 0 rgba(100,215,210,.45)}70%{box-shadow:0 0 0 7px rgba(100,215,210,0)}100%{box-shadow:0 0 0 0 rgba(100,215,210,0)}}
/* Work updates, notifications, and filters */
.notifwrap{position:relative}.notifbtn{width:37px;height:37px;border:1px solid #dfe8ed;border-radius:10px;background:#fff;display:grid;place-items:center;position:relative;transition:transform var(--fast),background var(--fast),border var(--fast)}.notifbtn:hover{background:#edf9fd;border-color:#bfe6f4;transform:translateY(-1px)}.notifbtn i{position:absolute;right:-5px;top:-6px;min-width:18px;height:18px;padding:0 4px;border-radius:20px;background:#d05262;color:#fff;border:2px solid #fff;font-size:8px;font-style:normal;display:none;place-items:center}.notifpop{position:absolute;right:0;top:45px;width:350px;background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 24px 60px rgba(6,43,70,.22);z-index:120;overflow:hidden;animation:pop var(--panel) cubic-bezier(.2,.8,.2,1) both}.notifhead{padding:12px 13px;border-bottom:1px solid #edf2f5;display:flex;align-items:center;gap:8px}.notifhead>div{flex:1}.notifhead b,.notifhead small{display:block}.notifhead b{font-size:10px}.notifhead small{font-size:8px;color:var(--muted);margin-top:2px}.notiflist{max-height:400px;overflow:auto}.notifitem{display:grid;grid-template-columns:9px 1fr;gap:8px;padding:11px 13px;border-bottom:1px solid #edf2f5;cursor:pointer;transition:background var(--fast),transform var(--fast)}.notifitem:hover{background:#f2f9fc;transform:translateX(1px)}.notifitem.unread{background:linear-gradient(90deg,#eef9fd,#fff)}.notifdot{width:7px;height:7px;border-radius:50%;background:#cbd8df;margin-top:4px}.notifitem.unread .notifdot{background:#0088d8;box-shadow:0 0 0 4px #e3f5fc}.notifitem b,.notifitem small{display:block}.notifitem b{font-size:9px}.notifitem p{margin:3px 0;font-size:8px;color:#607987;line-height:1.45}.notifitem small{font-size:7px;color:#91a3ad}.savedchips{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.filterchip{height:30px;border:1px solid #cde8f1;background:#f3fbfd;color:#1d7898;border-radius:20px;padding:0 9px;font-size:8px;font-weight:700;transition:transform var(--fast),background var(--fast)}.filterchip:hover{transform:translateY(-1px);background:#e8f8fb}.updatefeed{display:flex;flex-direction:column;gap:9px}.updatecard{border:1px solid #dfecef;border-radius:12px;background:#fff;padding:11px;transition:transform var(--normal),box-shadow var(--normal);animation:staggerIn 420ms cubic-bezier(.2,.8,.2,1) both}.updatecard:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,104,164,.09)}.updatecard.support{border-left:4px solid #d05262;background:linear-gradient(90deg,#fff3f5,#fff 24%)}.updatecard b,.updatecard small{display:block}.updatecard b{font-size:9px}.updatecard small{font-size:7px;color:#8296a3;margin-top:2px}.updatecard p{font-size:8px;line-height:1.5;color:#587180;margin:5px 0 0}.updatecard em{display:inline-block;margin-top:6px;padding:4px 7px;border-radius:20px;background:#fff0f2;color:#b94a5c;font-style:normal;font-size:7px;font-weight:800}.updatetitle{display:flex;align-items:center;justify-content:space-between;gap:8px}.reportactions{display:flex;gap:7px;margin-top:12px}.reporthero .reportactions .secondary{background:#ffffff17;color:white;border-color:#ffffff35}.checkline{display:flex;gap:12px;flex-wrap:wrap;border:1px solid #dfebef;background:#f8fcfd;border-radius:10px;padding:9px}.checkline label{display:flex!important;align-items:center;gap:6px;margin:0!important}.checkline input{width:auto!important;margin:0!important;accent-color:#0088d8}.taskaction{white-space:nowrap}.toolbar{gap:9px;flex-wrap:wrap}.reporthero{background:linear-gradient(135deg,#062b46,#0088d8 58%,#61d6d3)}

#print-report{display:none}
@media print{
  @page{size:A4;margin:12mm}
  body{background:#fff!important;min-width:0!important;color:#183447}.side,.top,#overlay,#toast,.main{display:none!important}#print-report{display:block!important;font-family:"Segoe UI",Tahoma,sans-serif;color:#183447}
  .print-head{border-bottom:4px solid #0088d8;padding-bottom:10px;margin-bottom:16px;display:flex;justify-content:space-between;align-items:flex-end}.print-head h1{font-size:22px;margin:0}.print-head p{font-size:10px;color:#6b8391;margin:4px 0 0}.print-brand{font-weight:800;color:#0088d8}.print-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:12px 0 16px}.print-kpi{border:1px solid #d8e8ef;border-radius:8px;padding:9px}.print-kpi span{display:block;font-size:8px;color:#748996}.print-kpi b{display:block;font-size:16px;margin-top:3px}.print-table{width:100%;border-collapse:collapse;font-size:8px}.print-table th,.print-table td{border-bottom:1px solid #e1ebef;padding:7px 5px;text-align:left;vertical-align:top}.print-table th{background:#edf8fb;color:#12688c}.print-section{font-size:12px;margin:18px 0 7px}.print-note{font-size:8px;color:#718793;margin-top:15px}.print-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:10px;margin:12px 0}.print-chart{border:1px solid #d8e8ef;border-radius:9px;padding:9px}.print-chart h3{font-size:10px;margin:0 0 8px;color:#12688c}.print-bars{display:grid;gap:7px}.print-bar{display:grid;grid-template-columns:115px 1fr 35px;gap:7px;align-items:center}.print-bar span{font-size:7px;color:#627784}.print-line{height:9px;background:#e9f1f5;border-radius:999px;overflow:hidden}.print-line i{display:block;height:100%;background:linear-gradient(90deg,#0088d8,#61d6d3 70%,#b7e85a);border-radius:999px}.print-bar b{font-size:8px;text-align:right}.print-stack{display:flex;height:13px;border-radius:999px;overflow:hidden;background:#e9f1f5}.print-stack i{display:block;height:100%}.print-legend{display:grid;gap:5px;margin-top:8px}.print-legend div{display:flex;gap:7px;align-items:center;font-size:7px;color:#627784}.print-legend em{width:7px;height:7px;border-radius:50%;display:inline-block}.print-legend b{margin-left:auto;color:#23485d}
  *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  @page{size:A4 portrait;margin:10mm}
  .print-exec{display:grid;grid-template-columns:1.1fr .9fr;gap:10px;margin:12px 0}
  .print-hero-card{border:1px solid #d8e8ef;border-radius:12px;padding:12px;background:linear-gradient(135deg,#f7fcff,#f5fbf7)}
  .print-hero-title{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px}.print-hero-title h3{font-size:11px;margin:0;color:#12688c}.print-hero-title p{font-size:7px;color:#6d8290;margin:3px 0 0}
  .print-gauge-wrap{display:flex;align-items:center;gap:14px}.print-gauge{--v:0;width:112px;height:112px;border-radius:50%;background:conic-gradient(#0088d8 0 calc(var(--v)*1%),#e8f0f4 0 100%);position:relative;display:grid;place-items:center;flex:none}.print-gauge:after{content:"";position:absolute;inset:14px;border-radius:50%;background:#fff}.print-gauge>div{position:relative;z-index:1;text-align:center}.print-gauge b{display:block;font-size:25px;color:#0b6f9f}.print-gauge span{display:block;font-size:7px;color:#718592;margin-top:1px}
  .print-health-summary{flex:1;display:grid;gap:7px}.print-health-row{display:flex;justify-content:space-between;gap:8px;padding-bottom:6px;border-bottom:1px solid #e6eef2}.print-health-row:last-child{border-bottom:0;padding-bottom:0}.print-health-row span{font-size:7px;color:#718592}.print-health-row b{font-size:9px;color:#24485b;text-align:right}
  .print-donut-wrap{display:flex;align-items:center;gap:12px}.print-donut{width:95px;height:95px;border-radius:50%;position:relative;display:grid;place-items:center;flex:none}.print-donut:after{content:"";position:absolute;inset:14px;border-radius:50%;background:#fff}.print-donut>div{position:relative;z-index:1;text-align:center}.print-donut b{font-size:20px;display:block}.print-donut span{font-size:7px;color:#718592;display:block}.print-status-list{flex:1;display:grid;gap:5px}.print-status-list div{display:flex;align-items:center;gap:6px;font-size:7px;color:#617380}.print-status-list em{width:7px;height:7px;border-radius:50%;display:inline-block}.print-status-list b{margin-left:auto;color:#24485b}
  .print-task-viz{display:grid;gap:7px}.print-task-viz-row{display:grid;grid-template-columns:135px 1fr 35px;gap:7px;align-items:center;padding:4px 0;border-bottom:1px solid #edf2f4}.print-task-viz-row:last-child{border-bottom:0}.print-task-viz-row .name b{display:block;font-size:7.5px;color:#24485b}.print-task-viz-row .name span{display:block;font-size:6.5px;color:#7b8c98;margin-top:1px}.print-task-viz-row .bar{height:9px;border-radius:999px;background:#e9f1f5;overflow:hidden}.print-task-viz-row .bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#0088d8,#61d6d3 70%,#b7e85a)}.print-task-viz-row> b{font-size:8px;text-align:right;color:#24485b}
  .print-alerts{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:10px 0}.print-alert{border:1px solid #dbe8ee;border-radius:9px;padding:8px;background:#fff}.print-alert span{display:block;font-size:7px;color:#718592}.print-alert b{display:block;font-size:13px;margin-top:2px}.print-alert.red{border-color:#f1cad1;background:#fff7f8}.print-alert.red b{color:#bd4c5e}.print-alert.amber{border-color:#f5dfb3;background:#fffaf1}.print-alert.amber b{color:#a56d22}.print-alert.green{border-color:#cbe9dc;background:#f7fcf9}.print-alert.green b{color:#27835f}
  .print-section-card{border:1px solid #d8e8ef;border-radius:10px;padding:10px;margin-top:10px}.print-section-card h3{font-size:10px;margin:0 0 8px;color:#12688c}.print-activity{display:grid;gap:5px}.print-activity div{display:grid;grid-template-columns:1fr 95px;gap:8px;border-bottom:1px solid #edf2f4;padding:4px 0;font-size:7px}.print-activity div:last-child{border-bottom:0}.print-activity span{color:#6f8290;text-align:right}
  .print-tiny-table{width:100%;border-collapse:collapse;font-size:7px}.print-tiny-table th,.print-tiny-table td{border-bottom:1px solid #e3ecef;padding:5px 4px;text-align:left}.print-tiny-table th{background:#f4fafc;color:#12688c}

}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}.motion-hint i{animation:none!important}}


.filelist{display:flex;flex-direction:column;gap:10px}.filecard{display:grid;grid-template-columns:40px minmax(0,1fr);gap:11px;align-items:start;background:white;border:1px solid var(--line);border-radius:13px;padding:13px;overflow:hidden}.fileicon{width:40px;height:40px;border-radius:11px;background:#e9f6fd;color:#0088d8;display:grid;place-items:center;font-size:17px}.filemain{grid-column:2;min-width:0;max-width:100%}.filetitle{display:flex;gap:7px;align-items:center;flex-wrap:wrap;min-width:0}.filetitle>b{font-size:10px;max-width:min(320px,100%);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.filemain>small{display:block;font-size:8px;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fileversions{margin-top:9px;border-top:1px solid #edf2f5;min-width:0}.fileversions>div{display:grid;grid-template-columns:32px minmax(80px,1fr) minmax(105px,.9fr) minmax(110px,1.05fr) minmax(105px,.95fr);gap:7px;align-items:center;padding:8px 0;border-bottom:1px solid #f0f4f6;min-width:0}.fileversions>div>*{min-width:0}.fileversions b{font-size:9px;color:#087eac}.fileversions span,.fileversions small,.fileversions code{font-size:8px;color:#6d8392;min-width:0}.fileversions .revision-note,.fileversions .revision-by,.fileversions .revision-hash{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fileversions code{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#f5f9fb;padding:4px 6px;border-radius:6px}.fileversions .revision-actions{grid-column:2/-1;justify-content:flex-start;margin-top:-1px}.doc-actions{grid-column:2;display:flex;gap:5px;flex-wrap:wrap;align-items:center;justify-content:flex-end;margin-top:1px}.drawer{overflow-x:hidden}@media(max-width:760px){.drawer{width:100vw}.drawerbody{padding:14px}.fileversions>div{grid-template-columns:30px minmax(0,1fr) minmax(95px,.8fr)}.fileversions code,.fileversions .revision-hash,.fileversions .revision-actions{grid-column:2/-1}.filetitle>b{max-width:220px}.doc-actions{justify-content:flex-start}}

/* Login/session gate */
body.auth-locked{min-height:100vh;background:#f3f7fb;overflow:hidden}
body.auth-locked>.side,body.auth-locked>.main{display:none!important}
body.authenticated>#login-screen{display:none!important}
#app-shell{display:none}
body.authenticated>#app-shell{display:block}
#login-screen{position:fixed;inset:0;z-index:200;background:
 radial-gradient(circle at 12% 18%,rgba(97,214,211,.18),transparent 30%),
 radial-gradient(circle at 88% 10%,rgba(183,232,90,.13),transparent 26%),
 linear-gradient(145deg,#eef6fb 0%,#f8fbfd 48%,#eef8f6 100%);display:grid;grid-template-columns:minmax(420px,1.08fr) minmax(390px,.92fr);min-height:100vh;color:#20334b}
.login-visual{position:relative;overflow:hidden;background:linear-gradient(145deg,#082e49,#075c82 55%,#1396ad);padding:54px 60px;color:#fff;display:flex;flex-direction:column;justify-content:space-between}
.login-visual:before{content:"";position:absolute;width:500px;height:500px;border:1px solid rgba(255,255,255,.13);border-radius:50%;right:-210px;top:-150px;box-shadow:0 0 0 70px rgba(255,255,255,.035),0 0 0 140px rgba(255,255,255,.025)}
.login-visual:after{content:"";position:absolute;width:270px;height:270px;border-radius:52% 48% 60% 40%;background:linear-gradient(145deg,rgba(97,214,211,.25),rgba(183,232,90,.18));left:-90px;bottom:-100px;transform:rotate(28deg)}
.login-brand,.login-visual-copy,.login-security{position:relative;z-index:2}.login-brand{display:flex;align-items:center;gap:12px}.login-brand-mark{width:46px;height:46px;border-radius:14px;background:linear-gradient(135deg,#fff,#d9f7f6);color:#0787b7;display:grid;place-items:center;font-size:22px;font-weight:900;box-shadow:0 12px 30px rgba(0,0,0,.16)}.login-brand b{display:block;font-size:18px;letter-spacing:.2px}.login-brand span{display:block;font-size:9px;color:#b9dbe9;margin-top:3px;text-transform:uppercase;letter-spacing:1.2px}
.login-visual-copy{max-width:560px}.login-eyebrow{display:inline-flex;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);border-radius:999px;padding:7px 10px;font-size:9px;letter-spacing:.7px;text-transform:uppercase}.login-visual-copy h1{font-size:40px;line-height:1.06;letter-spacing:-1.4px;margin:18px 0 13px;max-width:550px}.login-visual-copy p{font-size:12px;line-height:1.75;color:#d0e4ed;max-width:500px}.login-feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:24px}.login-feature{border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.07);backdrop-filter:blur(8px);border-radius:13px;padding:12px}.login-feature b{display:block;font-size:10px}.login-feature span{display:block;font-size:8px;color:#b9d7e2;margin-top:4px;line-height:1.45}
.login-security{display:flex;align-items:center;gap:8px;font-size:8px;color:#b8d6e1}.login-security i{width:7px;height:7px;border-radius:50%;background:#b7e85a;box-shadow:0 0 0 5px rgba(183,232,90,.11)}
.login-panel{display:grid;place-items:center;padding:36px 50px;overflow:auto}.login-card{width:min(430px,100%);background:#fff;border:1px solid #dfe8ef;border-radius:22px;padding:28px;box-shadow:0 24px 70px rgba(31,66,91,.13)}.login-topline{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.login-title h2{font-size:24px;letter-spacing:-.6px;margin:0}.login-title p{font-size:10px;color:#75869a;line-height:1.55;margin:6px 0 0}.login-lang{display:flex;padding:3px;background:#eef3f7;border-radius:9px}.login-lang button{height:29px;min-width:35px;border:0;border-radius:7px;background:transparent;color:#748598;font-size:9px;font-weight:800;cursor:pointer}.login-lang button.on{background:#fff;color:#0782bd;box-shadow:0 3px 10px rgba(34,74,102,.10)}
.login-form{display:grid;gap:12px;margin-top:23px}.login-field label{display:block;font-size:9px;font-weight:750;color:#52657a;margin-bottom:6px}.login-input{height:45px;border:1px solid #dce5ec;background:#fbfcfd;border-radius:11px;display:flex;align-items:center;gap:9px;padding:0 12px;transition:border .18s ease,box-shadow .18s ease,background .18s ease}.login-input:focus-within{background:#fff;border-color:#58bfd4;box-shadow:0 0 0 3px rgba(88,191,212,.13)}.login-input span{color:#8a9aaa;font-size:13px}.login-input input{flex:1;border:0;outline:0;background:transparent;color:#25394f;font-size:11px}.login-password-toggle{border:0;background:transparent;color:#688098;font-size:9px;cursor:pointer;padding:5px}
.login-error{display:none;border:1px solid #ffd7de;background:#fff1f3;color:#b8495b;border-radius:10px;padding:9px 11px;font-size:9px;line-height:1.45}.login-error.show{display:block;animation:loginShake .3s ease}.login-submit{height:44px;border:0;border-radius:11px;background:linear-gradient(135deg,#0088d8,#28bcd0);color:#fff;font-size:10px;font-weight:800;cursor:pointer;box-shadow:0 10px 24px rgba(0,136,216,.25);transition:transform .18s ease,box-shadow .18s ease}.login-submit:hover{transform:translateY(-1px);box-shadow:0 13px 28px rgba(0,136,216,.32)}.login-submit:active{transform:translateY(0)}
.demo-login{margin-top:20px;padding-top:17px;border-top:1px solid #edf1f5}.demo-login-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px}.demo-login-head b{font-size:9px}.demo-login-head span{font-size:8px;color:#8998a8}.demo-accounts{display:grid;gap:7px}.demo-account{display:grid;grid-template-columns:30px 1fr auto;gap:9px;align-items:center;border:1px solid #e4eaf0;background:#fbfcfd;border-radius:10px;padding:8px 9px;cursor:pointer;text-align:left;transition:border .18s ease,background .18s ease,transform .18s ease}.demo-account:hover{background:#f3fafe;border-color:#cbe7f1;transform:translateX(2px)}.demo-account i{width:30px;height:30px;border-radius:9px;background:#e8f6fd;color:#087db4;display:grid;place-items:center;font-style:normal;font-size:10px;font-weight:900}.demo-account b,.demo-account span{display:block}.demo-account b{font-size:9px;color:#344a60}.demo-account span{font-size:8px;color:#8a99a9;margin-top:2px}.demo-account em{font-style:normal;font-size:8px;color:#6d7e90}
.login-note{margin-top:14px;border-radius:10px;background:#f4f8fb;padding:10px 11px;font-size:8px;line-height:1.55;color:#748697}.login-note b{color:#4d657a}
.userbox{height:37px;border:1px solid #e0e5ee;background:#fff;border-radius:9px;display:flex;align-items:center;gap:8px;padding:0 9px}.userbox .user-meta{line-height:1.05}.userbox b,.userbox span{display:block}.userbox b{font-size:9px;color:#41536a}.userbox span{font-size:7px;color:#8390a2;margin-top:3px}.logoutbtn{height:37px;border:1px solid #e0e5ee;background:#fff;border-radius:9px;padding:0 10px;color:#68778b;font-size:8px;font-weight:750;cursor:pointer;transition:background .18s ease,border .18s ease}.logoutbtn:hover{background:#fff1f3;border-color:#f5d6dc;color:#b8495b}
@keyframes loginShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
@media(max-width:900px){#login-screen{grid-template-columns:1fr}.login-visual{display:none}.login-panel{padding:24px}.login-card{max-width:480px}}


/* Assignment, ticket, and weekly-report workflow */
.user-picker{border:1px solid #dce4ed;border-radius:11px;background:#fbfcfe;overflow:hidden;margin-top:5px}.user-picker-search{display:flex;align-items:center;gap:7px;padding:8px 9px;border-bottom:1px solid #e5ebf1;background:#fff}.user-picker-search input{margin:0!important;border:0!important;box-shadow:none!important;padding:4px!important;background:transparent!important}.user-picker-list{max-height:185px;overflow:auto;padding:5px}.user-pick-row{display:flex!important;align-items:center!important;gap:9px!important;padding:8px!important;border-radius:8px!important;cursor:pointer;font-weight:500!important;color:#536178!important}.user-pick-row:hover{background:#eef8fc}.user-pick-row.owner-first{background:#f1faf6}.user-pick-row input{width:auto!important;margin:0!important}.user-pick-main{display:flex;flex-direction:column;gap:1px;min-width:0}.user-pick-main b{font-size:9px;color:#34455c}.user-pick-main small{font-size:7.5px;color:#8190a2}.user-pick-row .owner-mark{margin-left:auto;font-size:7px;font-weight:750;color:#2b8a68;background:#e8f8f0;padding:3px 6px;border-radius:999px}.assign-badges{display:flex;gap:4px;flex-wrap:wrap}.assign-badge{display:inline-flex;align-items:center;gap:4px;border:1px solid #dce5ed;background:#f7fafc;color:#526579;border-radius:999px;padding:4px 7px;font-size:7.5px;white-space:nowrap}.assign-badge b{font-size:7.5px!important;color:#294257!important}.assign-badge em{font-style:normal;color:#8391a2}.picker-note{font-size:7.5px;color:#7a899d;margin-top:5px}.confirm-summary{border:1px solid #d8e7ee;background:linear-gradient(135deg,#f7fcff,#f7fbf7);border-radius:12px;padding:12px;margin:10px 0}.confirm-summary b,.confirm-summary span{display:block}.confirm-summary b{font-size:10px}.confirm-summary span{font-size:8px;color:#708195;margin-top:3px}.ticket-targets{display:flex;gap:4px;flex-wrap:wrap}.ticket-target{background:#edf7fd;color:#1976a8;border-radius:999px;padding:4px 7px;font-size:7.5px;font-weight:700}.ticket-process-note{font-size:7.5px;color:#7b899a;margin-top:6px}.weekly-cover,.weekly-project-page{break-after:page;page-break-after:always}.weekly-project-page:last-child{break-after:auto;page-break-after:auto}.weekly-update-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.weekly-update-card{border:1px solid #dbe7ed;border-radius:9px;padding:8px;background:#fff}.weekly-update-card h4{font-size:8px;margin:0 0 4px;color:#24485b}.weekly-update-card p{font-size:7px;margin:3px 0;color:#657b88;line-height:1.4}.weekly-update-card .meta{font-size:6.5px;color:#84939e;margin:0 0 5px}.weekly-risk{border-left:3px solid #df6475!important;background:#fff8f9}.weekly-ok{border-left:3px solid #25a978!important;background:#f9fdfb}

/* v2.5 document management hardening */
.doc-mode-tabs{display:flex;gap:6px;padding:4px;background:#eef3f7;border-radius:11px;margin:10px 0 13px}.doc-mode-tabs button{flex:1;height:36px;border:0;border-radius:8px;background:transparent;color:#6d7d91;font-size:9px;font-weight:800}.doc-mode-tabs button.on{background:#fff;color:#087fb2;box-shadow:0 4px 12px rgba(31,80,107,.10)}
.dropzone{border:1.5px dashed #a9cbd9;border-radius:13px;background:linear-gradient(135deg,#f7fcff,#f9fdf9);padding:22px;text-align:center;cursor:pointer;transition:border var(--fast),background var(--fast),transform var(--fast)}.dropzone:hover,.dropzone.drag{border-color:#28b8c7;background:#eefafd;transform:translateY(-1px)}.dropzone b,.dropzone span{display:block}.dropzone b{font-size:11px;color:#21536a}.dropzone span{font-size:8px;color:#7b91a0;margin-top:4px;line-height:1.45}.dropzone input{display:none}.file-preview{display:grid;grid-template-columns:40px 1fr auto;gap:10px;align-items:center;border:1px solid #dce9ef;border-radius:11px;background:#fff;padding:10px;margin-top:9px}.file-preview .fpico{width:40px;height:40px;border-radius:10px;background:#e9f7fd;color:#087fb2;display:grid;place-items:center;font-size:17px}.file-preview b,.file-preview small{display:block}.file-preview b{font-size:9px}.file-preview small{font-size:7.5px;color:#82939f;margin-top:2px}.doc-source{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:4px 7px;font-size:7px;font-weight:800;background:#edf9f5;color:#287b61}.doc-source.link{background:#eef5fb;color:#336c91}.doc-recycle-head{font-size:11px;margin:18px 0 8px;color:#214c63}.doc-recycle{border:1px solid var(--line);background:#fff;border-radius:13px;padding:12px;display:flex;gap:11px;align-items:center;margin-bottom:8px}.doc-recycle .dm{min-width:0}.doc-recycle .dm span{word-break:break-word}.storage-note{border:1px solid #d8e9ef;background:#f5fbfd;border-radius:10px;padding:9px 10px;font-size:8px;color:#617b89;line-height:1.5}.storage-note b{color:#176d8b}.revision-source{font-size:7px;color:#83929e;margin-top:2px}

/* v2.9 Project Detail layout only: center the existing project drawer without changing workflow. */
.drawerbg{
  display:grid;
  place-items:center;
  padding:24px;
}
.drawer{
  position:relative;
  top:auto;
  right:auto;
  width:min(1080px,calc(100vw - 48px));
  height:auto;
  max-height:92vh;
  border-radius:18px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  box-shadow:0 28px 90px rgba(10,17,33,.28);
  animation:modalProjectIn var(--panel) cubic-bezier(.2,.8,.2,1) both;
}
.drawerhead{
  position:relative;
  top:auto;
  flex:none;
  border-radius:18px 18px 0 0;
}
.drawerbody{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  overflow-x:hidden;
}
@keyframes modalProjectIn{
  from{opacity:0;transform:translateY(12px) scale(.985)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
.project-detail-actions{display:flex;gap:8px;justify-content:flex-end;margin-bottom:11px;flex-wrap:wrap}
.project-tab-content{min-width:0;will-change:opacity,transform}
.tabs button{transition:background var(--fast),color var(--fast),box-shadow var(--fast)}
@media(max-width:760px){
  .drawerbg{padding:10px}
  .drawer{width:calc(100vw - 20px);max-height:95vh;border-radius:15px}
  .drawerhead{border-radius:15px 15px 0 0;padding:17px 16px}
  .drawerbody{padding:14px}
  .tabs{overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}
}



.sysgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0}.syscard{background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px;box-shadow:0 6px 18px rgba(0,90,140,.05);animation:cardIn var(--panel) cubic-bezier(.2,.8,.2,1) both}.syscard:nth-child(2){animation-delay:45ms}.syscard:nth-child(3){animation-delay:90ms}.syscard:nth-child(4){animation-delay:135ms}.syscard small,.syscard b,.syscard span{display:block}.syscard small{font-size:8px;color:var(--muted);letter-spacing:.05em}.syscard b{font-size:15px;color:#173f56;margin:5px 0 7px}.syscard span{font-size:8px;color:#728a97;line-height:1.45}.okdot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#e5a84d;margin-right:6px}.okdot.ok{background:#36ae82;box-shadow:0 0 0 4px #e5f6ef}.sysdetails{grid-template-columns:2fr 1fr}.protectlist{display:grid;grid-template-columns:1fr 1fr;gap:8px}.protectlist>div{border:1px solid #e5edf1;border-radius:10px;padding:10px;color:#2b9a76;font-size:10px}.protectlist b,.protectlist span{display:block;margin-left:18px}.protectlist b{font-size:9px;color:#2b5367;margin-top:-13px}.protectlist span{font-size:8px;color:#8295a0;margin-top:3px}.opslist>div{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid #edf2f4;font-size:8px}.opslist span{color:#8296a2}.opslist b{color:#2d5265}
.rolehint{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:20px;background:#eef8fc;color:#17759a;font-size:8px;font-weight:800}.formula{border:1px solid #cfeaf2;background:linear-gradient(90deg,#eef9fd,#f7fcec);border-radius:11px;padding:10px 12px;font-size:8px;color:#3c6e7d;line-height:1.5}.formula b{color:#176b87}.searchgroups{display:grid;gap:12px}.searchgroup{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px}.searchgroup h3{font-size:11px;margin:0 0 9px}.searchitem{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid #edf2f5}.searchitem:first-of-type{border-top:0}.searchitem>div{flex:1}.searchitem b,.searchitem small{display:block}.searchitem b{font-size:9px}.searchitem small{font-size:8px;color:var(--muted);margin-top:3px}.ticketstats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px}.ticketstat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px}.ticketstat small,.ticketstat b{display:block}.ticketstat small{font-size:8px;color:var(--muted)}.ticketstat b{font-size:18px;margin-top:3px}.ticketactions{display:flex;gap:5px;flex-wrap:wrap}.ticketfilters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.ticketfilters button{height:30px;border:1px solid #dce6ed;background:#fff;border-radius:20px;padding:0 10px;font-size:8px;color:#5b7080}.ticketfilters button.on{background:#eaf8fd;border-color:#bfe4f2;color:#0877a6}.autopct{font-size:8px;color:#1d7898;font-weight:800}.project-empty{font-size:8px;color:#899aa4;margin-top:5px}.role-diff{border-left:3px solid #61d6d3;padding-left:9px}.project-task-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
@media(max-width:1100px){.sysgrid{grid-template-columns:repeat(2,1fr)}.sysdetails{grid-template-columns:1fr}.ticketstats{grid-template-columns:repeat(2,1fr)}}




/* v2.5 project filters / explicit-close overlays / manual version */
.project-filter-panel{display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(5,minmax(120px,.7fr)) auto;gap:8px;align-items:end;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px;margin-bottom:12px;box-shadow:0 6px 18px #29385708}.project-filter-panel label{font-size:8px;color:#6b7c90;font-weight:700}.project-filter-panel input,.project-filter-panel select{width:100%;height:35px;border:1px solid #dce5ed;background:#fff;border-radius:9px;margin-top:4px;padding:0 9px;color:#42546b;font-size:9px;outline:none}.project-filter-panel input:focus,.project-filter-panel select:focus{border-color:#61bfd4;box-shadow:0 0 0 3px #e8f8fb}.project-filter-summary{font-size:8px;color:#7890a0;margin:-3px 0 12px}.version-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:10px}.version-toolbar .retention{margin:0;flex:1}.version-toolbar .primary{flex:none}.modal-validation{display:none;border:1px solid #f3c0c8;background:#fff2f4;color:#b74759;border-radius:10px;padding:9px 10px;font-size:8px;line-height:1.45}.modal-validation.show{display:block;animation:loginShake .3s ease}.modal{position:relative}.modal-x{position:absolute;top:13px;right:13px;width:36px;height:36px;border:1px solid #efbdc6;background:#fff3f5;border-radius:10px;color:#c84f61;font-size:18px;font-weight:900;display:grid;place-items:center;cursor:pointer;transition:background var(--fast),transform var(--fast),box-shadow var(--fast)}.modal-x:hover{background:#ffe7eb;transform:translateY(-1px);box-shadow:0 7px 16px rgba(208,82,98,.16)}.modal>h2{padding-right:42px}.backdrop-note{font-size:7.5px;color:#8a98aa;text-align:right;margin-top:7px}.drawerbg,.modalbg{cursor:default}.drawer,.modal{cursor:auto}@media(max-width:1280px){.project-filter-panel{grid-template-columns:repeat(3,1fr)}.project-filter-panel .filter-search{grid-column:span 2}}
.task-meta-actions{display:flex;gap:5px;flex-wrap:wrap}.archived-task-list{display:grid;gap:7px;margin-top:10px}.archived-task{display:flex;gap:10px;align-items:center;border:1px dashed #d7e2e8;background:#f9fbfc;border-radius:10px;padding:9px 10px}.archived-task>div{flex:1}.archived-task b,.archived-task small{display:block}.archived-task b{font-size:9px}.archived-task small{font-size:7.5px;color:var(--muted);margin-top:2px}.lifecycle{display:inline-flex;align-items:center;border-radius:999px;padding:4px 7px;font-size:7.5px;font-weight:800;background:#edf5fb;color:#3d6b88}.lifecycle.completed{background:#e9f8f1;color:#27835f}.lifecycle.hold{background:#fff4e6;color:#a86e25}.lifecycle.draft{background:#f0f2f5;color:#697487}.health-auto{font-size:7px;color:#1782a5;background:#e9f8fb;border-radius:999px;padding:3px 6px;font-weight:800}.revision-actions{display:flex;gap:4px;justify-content:flex-start;flex-wrap:wrap;min-width:0}.file-warning{border:1px solid #f3d8a9;background:#fff9ee;color:#8b681f;border-radius:9px;padding:8px 9px;font-size:7.5px;line-height:1.45;margin-top:8px}.upload-invalid{color:#b8495b!important}.attention-center{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}.attention-item{border:1px solid #dce9ef;background:#fff;border-radius:10px;padding:9px}.attention-item span,.attention-item b{display:block}.attention-item span{font-size:7.5px;color:var(--muted)}.attention-item b{font-size:15px;margin-top:2px}.attention-item.red{background:#fff7f8;border-color:#f1cad1}.attention-item.amber{background:#fffaf1;border-color:#f5dfb3}

/* v3.3.6 usability: remembered username, collapsible navigation, mobile shell, app icon */
.logo,.login-brand-mark{overflow:hidden;background:transparent!important}
.logo img,.login-brand-mark img{display:block;width:100%;height:100%;object-fit:contain}
.logo{box-shadow:0 9px 22px rgba(0,136,216,.22)}
.login-brand-mark{box-shadow:0 12px 30px rgba(0,0,0,.16)}
.login-options{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:-2px;min-height:22px}
.remember-user{display:inline-flex!important;align-items:center;gap:7px;margin:0!important;color:#536a7d!important;font-size:9px!important;cursor:pointer;user-select:none}
.remember-user input{width:15px;height:15px;margin:0;accent-color:#0799c9;cursor:pointer}
.login-options small{font-size:8px;color:#8a9baa;text-align:right}
.sidebar-toggle{position:absolute;top:68px;right:-14px;width:29px;height:29px;border-radius:50%;border:1px solid #2a6784;background:#0c4b6d;color:#d9f8f7;display:grid;place-items:center;z-index:3;box-shadow:0 7px 18px rgba(0,0,0,.20);transition:background var(--fast),transform var(--fast),border-color var(--fast)}
.sidebar-toggle:hover{background:#087aa8;border-color:#56c9d6;transform:scale(1.04)}
.sidebar-toggle span{font-size:20px;line-height:1;margin-top:-2px}
.side,.main{transition:width var(--normal) cubic-bezier(.2,.8,.2,1),margin-left var(--normal) cubic-bezier(.2,.8,.2,1)}
body.sidebar-collapsed .side{width:72px;padding-left:8px;padding-right:8px}
body.sidebar-collapsed .main{margin-left:72px}
body.sidebar-collapsed .brand{justify-content:center;padding-left:0;padding-right:0}
body.sidebar-collapsed .brand-copy,body.sidebar-collapsed .auditlock{display:none}
body.sidebar-collapsed .logo{width:38px;height:38px}
body.sidebar-collapsed .nav button{justify-content:center;padding:0;gap:0}
body.sidebar-collapsed .nav .ico{width:auto;font-size:15px}
body.sidebar-collapsed .nav-label,body.sidebar-collapsed .nav em{display:none}
body.sidebar-collapsed .nav button:hover{transform:none}
body.sidebar-collapsed .sidebar-toggle{right:-14px}
@media(max-width:1220px) and (min-width:901px){body.sidebar-collapsed .side{width:72px}body.sidebar-collapsed .main{margin-left:72px}}
@media(max-width:900px){
  body{min-width:0;overflow-x:hidden}
  .side{width:218px;padding:14px 10px}
  .main{margin-left:218px;min-width:0}
  body.sidebar-collapsed .side{width:66px;padding-left:7px;padding-right:7px}
  body.sidebar-collapsed .main{margin-left:66px}
  body.sidebar-collapsed .logo{width:36px;height:36px}
  .sidebar-toggle{top:62px}
  .top{height:60px;padding:0 10px;gap:8px}
  .search{display:none}
  .topright{width:100%;margin-left:0;justify-content:flex-end;gap:6px;min-width:0}
  .user-meta{display:none!important}
  .userbox{padding:0 5px}
  .langbox{height:34px}.langbox button{height:26px;min-width:30px}
  .avatar,.logoutbtn{height:34px}.avatar{width:34px}.logoutbtn{padding:0 8px}
  .content{max-width:none;padding:15px 12px}
  .head{align-items:flex-start;flex-direction:column;gap:10px;margin-bottom:15px}
  .head h1{font-size:21px}.head-actions{width:100%;flex-wrap:wrap}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .stat{padding:12px;gap:9px}.stat b{font-size:19px}.si{width:38px;height:38px}
  .cards{grid-template-columns:1fr}
  .grid{grid-template-columns:1fr;gap:10px}
  .panel{padding:13px}
  .project-filter-panel{grid-template-columns:1fr 1fr!important}.project-filter-panel .filter-search{grid-column:1/-1!important}
  .attention-center{grid-template-columns:repeat(2,1fr)}
  .sysgrid,.ticketstats{grid-template-columns:1fr 1fr}
  .reporthero{padding:17px}.reporthero .big{font-size:32px}
}
@media(max-width:560px){
  .content{padding:12px 9px}
  .stats{grid-template-columns:1fr}
  .stat{min-height:72px}
  .langbox{display:none}
  .notifbtn,.logoutbtn,.userbox{height:32px}
  .logoutbtn{font-size:7px;padding:0 7px}
  .project-filter-panel,.sysgrid,.ticketstats,.attention-center{grid-template-columns:1fr!important}
  .formrow{grid-template-columns:1fr}
  .login-panel{padding:15px}.login-card{padding:20px 17px}.login-options{align-items:flex-start;flex-direction:column;gap:4px}.login-options small{text-align:left}
}
