:root{--navy:#0b1737;--navy2:#132859;--blue:#2143d4;--ink:#172033;--muted:#7f899b;--line:#e7eaf0;--bg:#f4f6fa;--white:#fff;--red:#d94c56;--green:#168c66;--amber:#c58312}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif;color:var(--ink);background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.muted{color:var(--muted)}.overline{margin:0;color:#8b95a8;font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.login-view{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr;background:#fff}.login-brand{position:relative;overflow:hidden;background:radial-gradient(circle at 70% 20%,#2b4ec0 0,#132b68 36%,#091632 82%);color:#fff;display:flex;align-items:center;padding:8vw}.login-brand:after{content:"";position:absolute;right:-180px;bottom:-200px;width:600px;height:600px;border:70px solid #ffffff08;border-radius:50%}.login-brand-inner{max-width:620px;position:relative;z-index:1}.seal{width:74px;height:74px;border:1px solid #ffffff42;border-radius:18px;display:grid;place-items:center;background:#ffffff0f;font-size:24px;font-weight:800;letter-spacing:2px}.login-brand .overline{color:#8fa7eb;margin-top:28px}.login-brand h1{font-size:46px;line-height:1.3;margin:16px 0 20px}.login-copy{max-width:560px;color:#c6d1ed;font-size:15px;line-height:1.8}.login-points{display:flex;gap:26px;margin-top:40px;color:#b8c7eb;font-size:13px}.login-panel{display:flex;align-items:center;justify-content:center;padding:40px}.login-card{width:min(390px,100%)}.login-card h2{font-size:30px;margin:7px 0}.login-card>label{display:block;margin-top:22px;color:#465169;font-size:12px;font-weight:700}.login-card input{width:100%;height:45px;margin-top:8px;border:1px solid #dfe3eb;border-radius:9px;padding:0 13px;outline:0}.login-card input:focus{border-color:#5470dd;box-shadow:0 0 0 3px #2143d413}.full{width:100%;height:45px;margin-top:25px}.primary,.secondary,.white{border-radius:9px;padding:9px 14px;border:1px solid transparent;font-size:11px;font-weight:700}.primary{background:var(--blue);color:#fff}.secondary{background:#fff;color:#3b4965;border-color:#dfe3eb}.white{background:#fff;color:var(--blue)}.form-error{min-height:18px;color:var(--red);font-size:11px}.login-security{margin-top:30px;padding-top:20px;border-top:1px solid var(--line);color:#8d96a6;font-size:10px}.mobile-logo{display:none}
.app{min-height:100vh;display:flex}.sidebar{position:fixed;inset:0 auto 0 0;width:230px;background:linear-gradient(175deg,var(--navy2),var(--navy));color:#fff;padding:25px 18px 18px;display:flex;flex-direction:column;z-index:10}.brand{display:flex;align-items:center;gap:11px;padding:0 8px 26px;border-bottom:1px solid #ffffff17}.brand-mark{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#4669e8,#1f42c8);display:grid;place-items:center;font-size:13px;font-weight:800}.brand strong,.brand span{display:block}.brand strong{font-size:17px;letter-spacing:1px}.brand span{margin-top:4px;color:#acb8d5;font-size:10px}nav{padding-top:23px}.nav{width:100%;position:relative;display:flex;gap:12px;align-items:center;padding:12px 13px;border:0;border-radius:9px;background:transparent;color:#abb7d3;text-align:left;font-size:13px;margin:3px 0}.nav span{width:20px;text-align:center;font-size:16px}.nav:hover,.nav.active{color:#fff;background:#ffffff12}.nav.active:before{content:"";position:absolute;left:-18px;width:3px;height:23px;background:#6680ee;border-radius:0 4px 4px 0}.sidebar-bottom{margin-top:auto}.secure{display:flex;gap:9px;align-items:center;padding:12px;border:1px solid #54cda22b;border-radius:10px;background:#2bb18312;margin-bottom:12px}.secure i{font-style:normal;color:#34d09b;font-size:9px}.secure b,.secure small{display:block}.secure b{font-size:10px;color:#d6f4e9}.secure small{font-size:8px;color:#8fa9a0;margin-top:3px}
.workspace{margin-left:230px;min-width:0;flex:1}.topbar{height:80px;position:sticky;top:0;z-index:5;background:#fff;border-bottom:1px solid var(--line);padding:0 32px;display:flex;align-items:center;justify-content:space-between}.breadcrumb{margin:0;color:#8b94a5;font-size:10px}.topbar h1{margin:4px 0 0;font-size:20px}.user-block{display:flex;align-items:center;gap:11px}.user-meta{text-align:right}.user-meta b,.user-meta span{display:block}.user-meta b{font-size:12px}.user-meta span{color:#8d96a7;font-size:9px;margin-top:3px}.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#e3e8ff;color:var(--blue);font-weight:800}
.page{display:none;max-width:1460px;margin:auto;padding:27px 32px 50px}.active-page{display:block}.welcome{min-height:125px;border-radius:18px;background:linear-gradient(115deg,#122b86,#254ed0 58%,#3e68e6);color:#fff;padding:25px 28px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 18px 42px #1b3cc42b;overflow:hidden;position:relative}.welcome:after{content:"";position:absolute;right:-70px;top:-120px;width:340px;height:340px;border:48px solid #ffffff0a;border-radius:50%}.welcome .overline{color:#c6d1f8}.welcome h2{font-size:25px;margin:6px 0 9px}.welcome>div>p:last-child{margin:0;color:#dbe3ff;font-size:12px}.welcome-actions{position:relative;z-index:1}.welcome .secondary{background:#ffffff12;border-color:#ffffff3a;color:#fff;margin-right:8px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:17px 0}.stats article{padding:17px;background:#fff;border:1px solid var(--line);border-radius:13px;display:flex;gap:13px;align-items:center;box-shadow:0 4px 16px #14204408}.stats i{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;font-style:normal;font-weight:800}.stats i.blue{color:#3455dc;background:#edf0ff}.stats i.amber{color:#c58312;background:#fff4dc}.stats i.green{color:#168c66;background:#e7f8f1}.stats i.red{color:#d94c56;background:#ffeded}.stats span,.stats b,.stats small{display:block}.stats span{color:#778194;font-size:10px}.stats b{font-size:23px;margin:2px 0}.stats small{color:#969eac;font-size:9px}
.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:15px}.panel{background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:0 4px 18px #15244908}.panel-title{padding:17px 19px;display:flex;align-items:flex-start;justify-content:space-between}.panel-title h3{font-size:14px;margin:0 0 4px}.panel-title p{margin:0;color:#8c95a5;font-size:9px}.panel-title>button{border:0;background:transparent;color:var(--blue);font-size:10px}.chart-area{padding:4px 25px 22px;display:flex;align-items:center;justify-content:space-around}.donut{width:132px;height:132px;border-radius:50%;background:conic-gradient(#3154dd 0 45%,#24a678 45% 65%,#edb33e 65% 85%,#cfd5df 85%);display:grid;place-items:center;position:relative}.donut:after{content:"";position:absolute;width:84px;height:84px;border-radius:50%;background:#fff}.donut div{position:relative;z-index:1;text-align:center}.donut b,.donut span{display:block}.donut b{font-size:24px}.donut span{font-size:9px;color:#8c95a5}.legend{width:48%}.legend div{display:grid;grid-template-columns:10px 1fr auto;gap:6px;padding:7px;border-bottom:1px solid #f0f1f4;font-size:10px}.legend i{width:7px;height:7px;border-radius:50%;margin-top:3px}
.recent-list{padding:0 14px 15px}.recent-list button{width:100%;padding:10px 5px;border:0;border-top:1px solid #eff1f4;background:#fff;display:grid;grid-template-columns:38px 1fr 12px;gap:9px;align-items:center;text-align:left}.recent-list button:hover{background:#f9faff}.recent-list i{width:35px;height:35px;border-radius:9px;background:#eef1ff;color:var(--blue);display:grid;place-items:center;font-style:normal;font-weight:700}.recent-list b,.recent-list small{display:block}.recent-list b{font-size:10px}.recent-list small{margin-top:4px;color:#8d96a5;font-size:8px}
.table-scroll{overflow:auto;border-top:1px solid var(--line)}table{width:100%;border-collapse:collapse;min-width:880px}th{padding:10px 13px;background:#f8f9fb;color:#8690a1;text-align:left;font-size:9px;font-weight:600}td{padding:11px 13px;border-top:1px solid #eff1f5;font-size:10px}tbody tr[data-id]{cursor:pointer}tbody tr[data-id]:hover{background:#f8faff}td b,td small{display:block}td small{margin-top:4px;color:#969eac;font-size:8px}.status{display:inline-block;padding:4px 7px;border-radius:12px;background:#ebefff;color:#3152d1;font-size:8px}.status.won{background:#e5f7f0;color:#16825f}.status.priority{background:#fff4d9;color:#b27308}.status.stop{background:#eef0f3;color:#727c8e}.prob{display:flex;align-items:center;gap:6px}.prob span{width:48px;height:4px;background:#edf0f4;border-radius:4px}.prob i{display:block;height:100%;border-radius:4px;background:#3e5ee2}.table-footer{padding:11px 18px;color:#8a93a4;font-size:9px}
.project-hero{min-height:150px;margin-bottom:16px;padding:25px 28px;border-radius:18px;background:linear-gradient(118deg,#101e45,#183788 62%,#2851c6);color:#fff;display:flex;justify-content:space-between;align-items:center;position:relative;overflow:hidden;box-shadow:0 18px 40px #132b7625}.project-hero:after{content:"";position:absolute;width:310px;height:310px;right:-80px;top:-110px;border:50px solid #ffffff08;border-radius:50%}.project-hero .overline{color:#90abf1}.project-hero h2{margin:6px 0 8px;font-size:26px}.project-hero p:last-child{margin:0;color:#c6d4f4;font-size:11px}.project-hero-stats{position:relative;z-index:1;display:flex;gap:9px}.project-hero-stats span{min-width:92px;padding:14px 16px;border:1px solid #ffffff24;border-radius:12px;background:#ffffff0e;color:#cbd7f5;font-size:9px;text-align:center;backdrop-filter:blur(6px)}.project-hero-stats b{display:block;margin-bottom:4px;color:#fff;font-size:23px}.page-actions{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px;padding:13px 14px;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:0 4px 16px #14204408}.page-actions h2{margin:0;font-size:20px}.page-actions p{font-size:10px}.filters{display:flex;gap:8px}.filters select,.search{height:39px;border:1px solid #dfe3eb;border-radius:9px;background:#fff;color:#526078;font-size:10px;transition:.18s}.filters select:focus,.search:focus-within{border-color:#6c83dd;box-shadow:0 0 0 3px #2143d40d}.filters select{padding:0 34px 0 11px}.search{width:310px;display:flex;align-items:center;gap:7px;padding:0 11px}.search input{width:100%;border:0;outline:0}.page-actions>div:last-child button+button{margin-left:7px}.projects-table tbody tr{transition:.16s}.projects-table tbody tr:hover{transform:translateY(-1px);box-shadow:inset 3px 0 var(--blue);background:#f7f9ff}.projects-table td{padding-top:14px;padding-bottom:14px}.projects-table td:first-child b{font-size:11px;color:#14213d}
.import-panel{max-width:820px;margin:0 auto}.dropzone{display:block;margin:0 23px 18px;padding:40px 20px;border:1px dashed #aab6da;border-radius:12px;background:#f8faff;text-align:center;cursor:pointer}.dropzone input{display:none}.dropzone i{width:45px;height:45px;margin:auto;display:grid;place-items:center;border-radius:12px;background:#e8edff;color:var(--blue);font-size:20px;font-style:normal}.dropzone h3{font-size:13px;margin:13px 0 5px}.dropzone p{color:#8b94a5;font-size:10px}.dropzone span{display:inline-block;padding:8px 18px;border-radius:8px;background:var(--blue);color:#fff;font-size:10px}.privacy-note{margin:0 23px 23px;padding:12px 14px;border-radius:9px;background:#edf8f4;color:#34725f}.privacy-note b{font-size:10px}.privacy-note p{font-size:9px;margin:4px 0 0}.result-card{margin:0 23px 23px;padding:15px;border:1px solid var(--line);border-radius:9px;font-size:10px}.result-card b{font-size:13px}.result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.result-grid span{padding:9px;border-radius:7px;background:#f5f7fb}
.modal-backdrop{position:fixed;inset:0;z-index:50;background:#0b16376b;backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center}.modal{width:min(760px,94vw);max-height:90vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 30px 90px #101a3d66}.modal>header{padding:21px 24px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:flex-start;background:linear-gradient(180deg,#fff,#fbfcff)}.modal h2{margin:4px 0 0;font-size:19px}.modal>header button{width:31px;height:31px;border:0;border-radius:8px;background:#f0f2f5;font-size:18px}.modal-body{padding:22px 24px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.form-grid label,.form-single{display:block;color:#596379;font-size:10px;font-weight:700}.form-grid input,.form-grid select,.form-single input,.form-single select,.form-single textarea{width:100%;margin-top:6px;border:1px solid #dfe3eb;border-radius:8px;padding:9px 10px;outline:0;font-weight:400}.form-single{margin-top:13px}.form-single textarea{min-height:90px;resize:vertical}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.detail-actions{display:flex;gap:7px;margin-bottom:15px;padding-bottom:15px;border-bottom:1px solid var(--line)}.danger{margin-left:auto;border:1px solid #f0cbd0;border-radius:9px;padding:8px 12px;background:#fff6f7;color:#c7434d;font-size:10px;font-weight:700}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.detail-grid div{padding:13px;background:#f7f8fb;border:1px solid #f0f2f5;border-radius:9px}.detail-grid span,.detail-grid b{display:block}.detail-grid span{font-size:8px;color:#8a93a4}.detail-grid b{margin-top:5px;font-size:10px}.section-head{display:flex;justify-content:space-between;align-items:center;margin-top:21px}.section-head h3{font-size:12px}.section-head>span{font-size:9px}.progress-lines{display:grid;gap:7px}.progress-line{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:start;padding:10px 12px;border:1px solid #e6eaff;border-radius:9px;background:#f6f8ff}.progress-line i{width:27px;height:24px;border-radius:7px;background:#e5eaff;color:#3152d1;display:grid;place-items:center;font-size:8px;font-style:normal;font-weight:800}.progress-line span{font-size:10px;line-height:1.7}.timeline{margin-top:12px;border-left:1px solid #dfe3eb}.timeline>div{position:relative;padding:0 0 18px 18px}.timeline>div:before{content:"";position:absolute;left:-4px;top:4px;width:7px;height:7px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 2px #fff}.timeline small{display:block;font-size:8px;color:#8c95a5;margin-top:5px}.history-lines .progress-line{padding:7px 9px;margin-bottom:5px;background:#fafbfe;border-color:#eef0f5}.history-lines .progress-line i{width:23px;height:20px}.toast{position:fixed;right:25px;bottom:25px;z-index:70;padding:12px 16px;border-radius:9px;background:#162342;color:#fff;box-shadow:0 12px 30px #14204444;font-size:10px}
@media(max-width:980px){.sidebar{width:76px;padding-inline:12px}.brand>div:last-child,.nav{font-size:0}.nav span{font-size:17px}.secure{display:none}.workspace{margin-left:76px}.stats{grid-template-columns:1fr 1fr}.dashboard-grid{grid-template-columns:1fr}.project-hero{align-items:flex-start;gap:20px;flex-direction:column}.page-actions{align-items:flex-start;gap:12px;flex-direction:column}}@media(max-width:680px){.login-view{grid-template-columns:1fr}.login-brand{display:none}.login-panel{min-height:100vh;padding:25px}.mobile-logo{display:block;margin-bottom:35px;color:var(--blue);font-size:18px;font-weight:800}.sidebar{display:none}.workspace{margin-left:0}.topbar{padding:0 16px}.page{padding:16px}.stats{grid-template-columns:1fr 1fr}.welcome{align-items:flex-start;gap:17px;flex-direction:column}.page-actions{align-items:flex-start;gap:12px;flex-direction:column}.filters{width:100%;flex-wrap:wrap}.search{width:100%}.form-grid{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr 1fr}.chart-area{gap:18px}.legend{width:52%}.project-hero-stats{width:100%}.project-hero-stats span{min-width:0;flex:1}}
.projects-table{min-width:1180px}.owner-col{width:150px;max-width:150px}.owner-cell{width:150px;max-width:150px}.owner-cell span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress-col{min-width:260px}.latest-progress{max-width:340px;color:#40506a}.latest-progress span{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:1.65}.annual-year{padding:4px 8px;border-radius:20px;background:#edf8f4;color:#168c66;font-size:9px;font-weight:700}.annual-body{display:flex;align-items:center;justify-content:space-around;gap:22px;padding:2px 24px 23px}.annual-donut{width:142px;height:142px;flex:0 0 142px;border-radius:50%;background:conic-gradient(#20a578 0 0%,#e9edf4 0 100%);display:grid;place-items:center;position:relative;box-shadow:inset 0 0 0 1px #edf0f4}.annual-donut:after{content:"";position:absolute;width:91px;height:91px;border-radius:50%;background:#fff;box-shadow:0 5px 18px #1420440a}.annual-donut div{position:relative;z-index:1;text-align:center}.annual-donut b,.annual-donut span{display:block}.annual-donut b{font-size:23px;color:#168c66}.annual-donut span{margin-top:3px;color:#8c95a5;font-size:8px}.annual-metrics{min-width:190px}.annual-metrics div{display:grid;grid-template-columns:1fr auto auto;align-items:baseline;gap:4px;padding:9px 0;border-bottom:1px solid #f0f2f5}.annual-metrics div:last-child{border-bottom:0}.annual-metrics span{color:#7e8899;font-size:9px}.annual-metrics b{font-size:16px}.annual-metrics small{color:#9099a8;font-size:8px}.recent-panel{grid-column:1/-1}.recent-panel .recent-list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:0 18px 18px}.recent-panel .recent-list button{border:1px solid #edf0f5;border-radius:10px;padding:11px;background:#fbfcff}.recycle-tip{margin-top:0;padding:11px 13px;border-radius:9px;background:#f6f8fc;font-size:9px}.recycle-list{display:grid;gap:8px}.recycle-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 14px;border:1px solid var(--line);border-radius:10px;background:#fff}.recycle-item b,.recycle-item small{display:block}.recycle-item b{font-size:11px}.recycle-item small{margin-top:4px;color:#9099a8;font-size:8px}.recycle-item button+button{margin-left:6px}.empty-state{padding:35px;text-align:center;color:#929bab;background:#f8f9fb;border-radius:10px;font-size:10px}
@media(max-width:980px){.recent-panel{grid-column:auto}.recent-panel .recent-list{grid-template-columns:1fr}.annual-body{justify-content:center}}@media(max-width:680px){.annual-body{align-items:stretch;flex-direction:column}.annual-donut{align-self:center}.annual-metrics{min-width:0}}
.login-logo{display:inline-flex;padding:15px 18px;border-radius:15px;background:#fff;box-shadow:0 16px 45px #02091d45}.login-logo img{display:block;width:min(360px,48vw);height:auto}.brand{display:block;padding:0 6px 23px}.sidebar-logo{padding:8px 9px;border-radius:10px;background:#fff;box-shadow:0 8px 24px #02091d35}.sidebar-logo img{display:block;width:100%;height:auto}.brand .platform-name{display:block;margin-top:10px;color:#acb8d5;font-size:10px;text-align:center;letter-spacing:.08em}.mobile-logo img{display:block;width:min(300px,80vw);height:auto}
.five-stats{grid-template-columns:repeat(5,1fr)}.stats i.gray{color:#727c8e;background:#eef0f3}
@media(max-width:980px){.brand{padding-inline:0}.sidebar-logo{padding:5px}.brand .platform-name{display:none}}
.projects-table{min-width:1320px}.sequence-col{width:52px}
.projects-table{min-width:1660px;table-layout:fixed}.projects-table th{padding:12px 10px;color:#6f7b90;font-size:10px;white-space:nowrap}.projects-table td{padding:15px 10px;font-size:11px;line-height:1.55;vertical-align:middle}.sequence-col{width:54px}.project-name-col{width:220px}.country-col{width:72px}.location-col{width:118px}.owner-col{width:155px;max-width:155px}.number-col{width:108px}.currency-col{width:76px}.rate-col{width:168px}.probability-col{width:88px}.status-col{width:105px}.responsible-col{width:82px}.progress-col{width:310px;min-width:310px}.date-col{width:125px}.sequence-cell{color:#8390a4;text-align:center}.project-name-cell b{font-size:12px;line-height:1.5}.country-cell,.location-cell,.number-cell,.currency-cell,.rate-cell,.probability-cell,.responsible-cell,.date-cell{white-space:nowrap}.number-cell{font-variant-numeric:tabular-nums;text-align:right}.responsible-cell{font-weight:700;color:#2e3c57}.date-cell{color:#69758a}.status-cell .status{white-space:nowrap}.latest-progress{max-width:none}.latest-progress span{font-size:10px;line-height:1.75}.projects-table tbody tr:nth-child(even){background:#fbfcfe}.projects-table tbody tr:hover{background:#f3f6ff}
.modal-body>.progress-lines>.progress-line:first-child span{color:var(--blue);font-weight:700}
.status-summary-card{cursor:pointer;transition:transform .18s,box-shadow .18s,border-color .18s}.status-summary-card:hover,.status-summary-card:focus-visible{transform:translateY(-3px);border-color:#cbd5ff;box-shadow:0 12px 28px #193a9a18;outline:none}.status-summary-card:hover small{color:var(--blue)}.status-project-list{display:grid;gap:9px}.status-project-list>button{width:100%;display:grid;grid-template-columns:40px minmax(0,1fr) 180px 18px;gap:12px;align-items:center;padding:13px 14px;border:1px solid #e7eaf1;border-radius:11px;background:#fff;color:var(--ink);text-align:left;transition:.16s}.status-project-list>button:hover{border-color:#cbd5ff;background:#f7f9ff;transform:translateX(3px)}.status-project-index{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:#edf1ff;color:var(--blue);font-size:9px;font-weight:800}.status-project-list b,.status-project-list small{display:block}.status-project-list>button>div:nth-child(2) b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.status-project-list small{margin-top:5px;color:#8791a3;font-size:8px}.status-project-meta{text-align:right}.status-project-meta b{font-size:10px;font-variant-numeric:tabular-nums}.status-project-arrow{color:var(--blue);font-size:20px}.status-project-list+.empty-state{margin:0}
@media(max-width:680px){.status-project-list>button{grid-template-columns:34px minmax(0,1fr) 16px}.status-project-meta{display:none}}
.world-clock-panel{margin-bottom:15px;overflow:hidden}.clock-live{display:flex;align-items:center;gap:6px;color:#168c66;font-size:9px}.clock-live i{width:7px;height:7px;border-radius:50%;background:#22b788;box-shadow:0 0 0 4px #22b78818;animation:clockPulse 1.8s infinite}.world-clock-grid{display:flex;gap:10px;overflow-x:auto;padding:0 18px 18px;scrollbar-width:thin}.world-clock-card{min-width:168px;padding:14px 15px;border:1px solid #e7eaf1;border-radius:12px;background:linear-gradient(145deg,#fbfcff,#f1f5ff);box-shadow:0 5px 16px #17306c0a}.world-clock-card.night{border-color:#243967;background:linear-gradient(145deg,#16264c,#0e1a38);color:#fff}.clock-top{display:flex;align-items:center;justify-content:space-between}.clock-top span{color:#7f899b;font-size:8px}.clock-top i{padding:3px 6px;border-radius:10px;background:#e8edff;color:var(--blue);font-size:8px;font-style:normal;font-weight:800}.world-clock-card.night .clock-top span{color:#9eacd0}.world-clock-card.night .clock-top i{background:#ffffff15;color:#b9c8f1}.world-clock-card>b{display:block;margin-top:10px;font-size:11px}.clock-time{display:block;margin-top:7px;font-size:23px;letter-spacing:.04em;font-variant-numeric:tabular-nums}.clock-date{display:block;margin-top:4px;color:#8590a4;font-size:8px}.world-clock-card.night .clock-date{color:#9eacd0}@keyframes clockPulse{50%{opacity:.45;transform:scale(.8)}}
.table-scroll+.table-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 18px;border-top:1px solid var(--line);background:linear-gradient(180deg,#fff,#fafbfe);font-size:10px}.table-footer>div{display:flex;gap:10px}.table-footer>div span{padding:8px 11px;border:1px solid #e4e8f1;border-radius:9px;background:#fff;color:#69758a}.table-footer b{color:#183b96;font-size:12px;font-variant-numeric:tabular-nums}@media(max-width:680px){.table-scroll+.table-footer{align-items:stretch;flex-direction:column}.table-footer>div{flex-direction:column}}
.clock-actions{display:flex;align-items:center;gap:12px}.clock-actions>button{border:0;background:transparent;color:var(--blue);font-size:9px}.clock-top button{width:22px;height:22px;border:0;border-radius:7px;background:#e9edf5;color:#738096;font-size:15px;line-height:1}.clock-top button:hover{background:#ffe9eb;color:#cf4350}.world-clock-card.night .clock-top button{background:#ffffff12;color:#aebce0}.world-clock-card.night .clock-top button:hover{background:#d94c5630;color:#ffabb2}.empty-clock{width:100%;padding:24px;border:1px dashed #d9deea;border-radius:11px;color:#8b95a6;text-align:center;font-size:10px}
.clock-info{display:grid;gap:5px;margin-top:10px;padding-top:9px;border-top:1px solid #e4e8f1}.clock-info span{font-size:8px;color:#66738a;white-space:nowrap}.clock-rate{font-variant-numeric:tabular-nums;white-space:pre-line!important;line-height:1.7}.world-clock-card.night .clock-info{border-top-color:#ffffff18}.world-clock-card.night .clock-info span{color:#b2bedc}

/* v3.6 — widescreen proportion and visual rhythm */
.topbar{height:84px;padding:0 38px}.topbar h1{font-size:22px}.breadcrumb{font-size:11px}
.page{max-width:1660px;padding:30px 40px 64px}
.welcome{min-height:148px;padding:31px 34px;border-radius:20px}.welcome h2{font-size:30px;margin:8px 0 10px}.welcome>div>p:last-child{font-size:13px}.welcome-actions button{min-height:40px;padding-inline:17px}
.stats{gap:16px;margin:20px 0}.stats article{min-height:104px;padding:19px 20px;border-radius:15px}.stats i{width:48px;height:48px;border-radius:13px;font-size:17px}.stats span{font-size:11px}.stats b{font-size:28px;margin:3px 0}.stats small{font-size:9.5px}
.dashboard-grid{gap:18px;margin-bottom:18px}.panel{border-radius:15px}.panel-title{padding:20px 22px}.panel-title h3{font-size:16px;margin-bottom:6px}.panel-title p{font-size:10px}.panel-title>button,.clock-actions>button{font-size:10px}
.world-clock-panel{margin-bottom:18px}.world-clock-grid{gap:14px;padding:0 22px 22px;scroll-snap-type:x proximity}.world-clock-card{min-width:214px;padding:17px 18px;border-radius:14px;scroll-snap-align:start}.world-clock-card>b{margin-top:11px;font-size:12px}.clock-top span{font-size:9px}.clock-time{margin-top:8px;font-size:28px;letter-spacing:.035em}.clock-date{font-size:9px}.clock-info{gap:6px;margin-top:12px;padding-top:11px}.clock-info span{font-size:9px;line-height:1.55}
.annual-body{padding:5px 30px 28px}.annual-donut{width:154px;height:154px;flex-basis:154px}.annual-donut:after{width:99px;height:99px}.annual-donut b{font-size:27px}.annual-donut span{font-size:9px}.annual-metrics{min-width:220px}.annual-metrics div{padding:11px 0}.annual-metrics span{font-size:10px}.annual-metrics b{font-size:18px}
.chart-area{padding:7px 30px 27px}.donut{width:144px;height:144px}.donut:after{width:91px;height:91px}.donut b{font-size:27px}.legend div{padding:9px 7px;font-size:10px}
.recent-panel .recent-list{gap:12px;padding:0 22px 22px}.recent-panel .recent-list button{padding:13px}.recent-list b{font-size:11px}.recent-list small{font-size:9px}
@media(max-width:1380px){.page{padding-inline:28px}.five-stats{grid-template-columns:repeat(3,1fr)}.world-clock-card{min-width:205px}}
@media(max-width:980px){.topbar{padding-inline:24px}.page{padding:24px}.five-stats{grid-template-columns:repeat(2,1fr)}.welcome{padding:27px}.world-clock-card{min-width:210px}}
@media(max-width:680px){.topbar{height:72px;padding-inline:16px}.topbar h1{font-size:19px}.page{padding:16px}.welcome{min-height:0;padding:23px}.welcome h2{font-size:25px}.five-stats{grid-template-columns:1fr}.stats article{min-height:92px}.world-clock-grid{padding-inline:16px}.world-clock-card{min-width:82vw}.panel-title{padding:17px}.annual-body{padding-inline:18px}.chart-area{padding-inline:18px}}

/* v3.7 — full-width dashboard, reduced outer whitespace */
.workspace{background:linear-gradient(180deg,#f4f7fc 0,#f6f8fb 55%,#f3f6fa 100%)}
.page{width:100%;max-width:none;margin:0;padding:30px 30px 64px}
.welcome,.stats article,.panel{box-shadow:0 8px 26px #17306c0d}
.welcome{box-shadow:0 18px 44px #1b3cc42b}
@media(min-width:1501px){
  .world-clock-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));overflow:visible}
  .world-clock-card{min-width:0;width:100%}
  .clock-time{font-size:clamp(24px,1.55vw,29px)}
}
@media(min-width:1900px){
  .page{padding-inline:36px}
  .world-clock-grid{gap:16px}
}
@media(max-width:1500px){
  .page{padding-inline:24px}
  .world-clock-grid{display:flex;overflow-x:auto}
}
@media(max-width:980px){.page{padding:24px 20px 50px}}
@media(max-width:680px){.page{padding:16px 14px 40px}}

/* v3.8 — improved dashboard readability */
.recent-panel .panel-title h3,
.panel:has(#dashboardRows) .panel-title h3{font-size:19px}
.recent-panel .panel-title p,
.panel:has(#dashboardRows) .panel-title p{font-size:11px;line-height:1.7}
.recent-panel .recent-list button{min-height:70px;padding:15px 16px}
.recent-panel .recent-list i{width:40px;height:40px;font-size:14px}
.recent-panel .recent-list b{font-size:13px;line-height:1.55}
.recent-panel .recent-list small{margin-top:5px;font-size:10px;line-height:1.5}
.panel:has(#dashboardRows) th{padding:13px 14px;font-size:11px}
.panel:has(#dashboardRows) td{padding:14px;font-size:12px;line-height:1.6}
.panel:has(#dashboardRows) td b{font-size:13px;line-height:1.55}
.panel:has(#dashboardRows) td small{margin-top:4px;font-size:9.5px;line-height:1.5}
.panel:has(#dashboardRows) .status{padding:5px 9px;font-size:9px}
.panel:has(#dashboardRows) .prob{font-size:11px}
.panel:has(#dashboardRows) .prob span{width:54px;height:5px}
.panel:has(#dashboardRows) .table-scroll{max-height:520px;overflow:auto}
@media(max-width:980px){
  .recent-panel .panel-title h3,.panel:has(#dashboardRows) .panel-title h3{font-size:17px}
  .panel:has(#dashboardRows) th{font-size:10px}
  .panel:has(#dashboardRows) td{font-size:11px}
}

/* v3.8 — larger project status list modal */
.modal:has(.status-project-list)>header{padding:25px 28px}
.modal:has(.status-project-list)>header .overline{font-size:12px;line-height:1.6}
.modal:has(.status-project-list)>header h2{margin-top:6px;font-size:23px}
.modal:has(.status-project-list) .modal-body{padding:22px 28px 28px}
.status-project-list{gap:11px}
.status-project-list>button{grid-template-columns:48px minmax(0,1fr) 210px 20px;min-height:72px;padding:15px 17px;border-radius:13px}
.status-project-index{width:40px;height:40px;border-radius:10px;font-size:11px}
.status-project-list>button>div:nth-child(2) b{font-size:13px;line-height:1.55}
.status-project-list small{margin-top:6px;font-size:10px;line-height:1.5}
.status-project-meta b{font-size:13px}
.status-project-meta small{font-size:9.5px}
.status-project-arrow{font-size:23px}
@media(max-width:680px){
  .modal:has(.status-project-list)>header{padding:20px}
  .modal:has(.status-project-list) .modal-body{padding:18px}
  .status-project-list>button{grid-template-columns:42px minmax(0,1fr) 18px;min-height:66px;padding:12px}
  .status-project-index{width:36px;height:36px}
  .status-project-list>button>div:nth-child(2) b{font-size:12px}
  .status-project-list small{font-size:9px}
}

/* v3.9 — refined sidebar navigation */
.sidebar{width:244px;padding:22px 18px 18px;background:
  radial-gradient(circle at 15% 2%,#24458a80 0,transparent 29%),
  linear-gradient(168deg,#142e66 0,#0d214b 48%,#091937 100%);
  border-right:1px solid #ffffff0d;box-shadow:12px 0 34px #0a17361a}
.workspace{margin-left:244px}
.brand{position:relative;padding:0 4px 22px;border-bottom:1px solid #ffffff14}
.sidebar-logo{padding:10px 11px;border:1px solid #ffffff80;border-radius:12px;box-shadow:0 10px 28px #02091d52}
.brand .platform-name{margin-top:12px;color:#c6d2ed;font-size:10.5px;letter-spacing:.12em}
.sidebar nav{padding-top:19px}
.sidebar nav:before{content:"功能导航";display:block;margin:0 11px 9px;color:#6f86b7;font-size:9px;letter-spacing:.18em}
.sidebar .nav{min-height:48px;margin:5px 0;padding:11px 13px;gap:12px;border:1px solid transparent;border-radius:12px;color:#b8c7e6;font-size:13px;transition:background .18s,color .18s,transform .18s,border-color .18s}
.sidebar .nav span{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:#ffffff08;color:#9db5ed;font-size:15px;transition:.18s}
.sidebar .nav:hover{color:#fff;background:#ffffff0c;border-color:#ffffff0d;transform:translateX(2px)}
.sidebar .nav:hover span{background:#ffffff10;color:#fff}
.sidebar .nav.active{color:#fff;background:linear-gradient(110deg,#2c4c8a,#263f76);border-color:#ffffff0b;box-shadow:0 9px 22px #020b2240}
.sidebar .nav.active span{background:#ffffff16;color:#fff;box-shadow:inset 0 0 0 1px #ffffff0d}
.sidebar .nav[data-page="projects"]{justify-content:center}
.sidebar .nav.active:before{left:-19px;width:4px;height:28px;background:linear-gradient(#83a1ff,#4771f0);box-shadow:0 0 14px #6687ff;border-radius:0 5px 5px 0}
.sidebar-bottom{padding-top:16px;border-top:1px solid #ffffff0b}
.secure{min-height:58px;margin-bottom:12px;padding:12px 13px;border-color:#2dc99735;border-radius:12px;background:linear-gradient(115deg,#13a97817,#145c6d1c);box-shadow:inset 0 0 18px #25b58a08}
.secure i{font-size:10px;text-shadow:0 0 10px #38e5ad}.secure b{font-size:10.5px}.secure small{font-size:8.5px;line-height:1.5}
#logoutBtn{margin-bottom:0;color:#aebfde}#logoutBtn:hover{color:#ffccd0;background:#d94c5612;border-color:#d94c5620}#logoutBtn:hover span{color:#ffabb3;background:#d94c561a}
@media(max-width:980px){
  .sidebar{width:82px;padding-inline:12px}.workspace{margin-left:82px}
  .sidebar nav:before{display:none}.sidebar .nav{justify-content:center;padding-inline:8px}.sidebar .nav span{width:34px;height:34px}
  .sidebar .nav.active:before{left:-13px}.sidebar-bottom{border-top:0}
}
@media(max-width:680px){.workspace{margin-left:0}}

/* v4.8 — larger navigation and clearer project details */
.brand .platform-name{font-size:12px;line-height:1.6;letter-spacing:.09em}
.sidebar nav:before{font-size:10.5px;font-weight:700}
.sidebar .nav{min-height:54px;padding:12px 14px;font-size:15px;font-weight:600}
.sidebar .nav span{width:34px;height:34px;font-size:17px}
.secure b{font-size:12px}.secure small{font-size:10px}
#logoutBtn{font-size:14px}

.modal:not(:has(.status-project-list)){width:min(900px,94vw)}
.modal:not(:has(.status-project-list))>header{padding:25px 28px}
.modal:not(:has(.status-project-list))>header .overline{font-size:12px;line-height:1.6}
.modal:not(:has(.status-project-list)) h2{font-size:24px;line-height:1.35}
.modal:not(:has(.status-project-list)) .modal-body{padding:26px 28px 30px}
.detail-actions button{min-height:40px;padding:10px 15px;font-size:12px}
.detail-grid{gap:12px}
.detail-grid div{min-height:82px;padding:16px 17px;border-radius:11px;background:linear-gradient(145deg,#f9faff,#f3f6fc)}
.detail-grid span{font-size:10.5px;line-height:1.5}
.detail-grid b{margin-top:7px;font-size:13.5px;line-height:1.45}
.section-head{margin-top:27px}
.section-head h3{font-size:16px}
.section-head>span{font-size:11px}
.progress-lines{gap:9px}
.progress-line{grid-template-columns:38px 1fr;gap:12px;padding:13px 15px;border-radius:11px}
.progress-line i{width:31px;height:28px;font-size:10px}
.progress-line span{font-size:13px;line-height:1.8}
.timeline{margin-top:15px}
.timeline>div{padding:0 0 22px 21px}
.timeline small{font-size:10px;line-height:1.5}
.history-lines .progress-line{padding:10px 12px}
.history-lines .progress-line i{width:27px;height:24px}
.history-lines .progress-line span{font-size:12px;line-height:1.75}

.projects-table th{font-size:11px}
.projects-table td{font-size:12px}
.project-name-cell b{font-size:13.5px}
.latest-progress span{font-size:11.5px;line-height:1.8}
.clock-info{gap:8px;margin-top:14px;padding-top:13px}
.clock-info span{font-size:11px;line-height:1.65}
.clock-rate{font-size:11.5px!important;font-weight:700;line-height:1.85!important;letter-spacing:.01em}
.world-clock-card.night .clock-rate{color:#d8e2ff}
.five-stats article{min-height:120px;padding:22px 23px;gap:16px}
.five-stats i{width:54px;height:54px;border-radius:14px;font-size:19px}
.five-stats span{font-size:13px;font-weight:600;line-height:1.5}
.five-stats b{font-size:32px;line-height:1.15;margin:4px 0}
.five-stats small{font-size:11px;line-height:1.5}
.recent-panel .panel-title h3{font-size:21px;line-height:1.4}
.recent-panel .panel-title p{font-size:12px;line-height:1.6}
.recent-panel .panel-title>button{font-size:12px;font-weight:700}
.recent-panel .recent-list{gap:14px}
.recent-panel .recent-list button{min-height:80px;padding:16px 15px}
.recent-panel .recent-list i{width:46px;height:46px;border-radius:11px;font-size:16px}
.recent-panel .recent-list b{font-size:14px;line-height:1.55}
.recent-panel .recent-list small{margin-top:6px;font-size:11px;line-height:1.5}
.world-clock-card>b{margin-top:12px;font-size:16px;line-height:1.45;font-weight:800}
.panel:has(.annual-donut) .panel-title h3,.panel:has(#donut) .panel-title h3{font-size:21px;line-height:1.4}
.panel:has(.annual-donut) .panel-title p,.panel:has(#donut) .panel-title p{font-size:12px;line-height:1.6}
.annual-body{padding:8px 34px 32px}
.annual-donut{width:180px;height:180px;flex-basis:180px}
.annual-donut:after{width:116px;height:116px}
.annual-donut b{font-size:32px}
.annual-donut span{font-size:11px}
.annual-metrics{min-width:250px}
.annual-metrics div{padding:13px 0}
.annual-metrics span{font-size:12px}
.annual-metrics b{font-size:22px}
.annual-metrics small{font-size:10px}
.panel:has(#donut) .chart-area{padding:10px 34px 32px}
.panel:has(#donut) .donut{width:174px;height:174px}
.panel:has(#donut) .donut:after{width:110px;height:110px}
.panel:has(#donut) .donut b{font-size:32px}
.panel:has(#donut) .donut span{font-size:11px}
.panel:has(#donut) .legend div{padding:11px 8px;font-size:12px}
.panel:has(#donut) .legend i{width:9px;height:9px}
.panel:has(#donut) .legend div{grid-template-columns:10px minmax(0,1fr) auto 58px;gap:8px;align-items:center}
.panel:has(#donut) .legend em{color:#66758d;font-size:11px;font-style:normal;font-variant-numeric:tabular-nums;text-align:right}

/* v4.8 — spacious, presentation-ready header typography */
.topbar{height:104px;padding:0 40px}
.breadcrumb{font-size:18px;font-weight:700;line-height:1.5;letter-spacing:.02em;color:#687792}
.topbar h1{margin-top:6px;font-size:28px;font-weight:800;line-height:1.25;letter-spacing:.01em}
.management-motto{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);max-width:calc(100% - 410px);color:#d3262f;font-family:KaiTi,"STKaiti","楷体",serif;font-size:30px;font-weight:700;line-height:1.55;letter-spacing:.015em;text-align:center;white-space:nowrap}
.user-block{gap:15px}
.user-meta b{font-size:16px;font-weight:800;line-height:1.35}
.user-meta span{margin-top:5px;font-size:12px;font-weight:500;line-height:1.4}
.avatar{width:48px;height:48px;font-size:18px}
.brand .platform-name{font-size:15px;font-weight:800;line-height:1.65;letter-spacing:.04em}
.sidebar-logo{padding:13px 14px;border-radius:14px}
.sidebar-logo img{width:100%;image-rendering:auto;filter:contrast(1.06) saturate(1.05)}
.quality-summary{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.quality-summary span{padding:10px 14px;border-radius:10px;background:#f1f4fa;font-size:13px}
.quality-summary b{font-size:17px;color:#18397f}
.quality-list{display:grid;gap:10px}
.quality-item{display:grid;grid-template-columns:78px 1fr auto;gap:12px;align-items:start;padding:14px 16px;border:1px solid #e3e8f1;border-radius:11px;background:#fff}
.quality-item>span{font-size:11px;font-weight:800;color:#fff;text-align:center;padding:5px 8px;border-radius:20px;background:#dd8b21}
.quality-item.high>span{background:#d13d4b}.quality-item.low>span{background:#69809f}
.quality-item b{display:block;font-size:14px;line-height:1.5}.quality-item p{margin:4px 0 0;color:#69758a;font-size:12px;line-height:1.65}
.project-change-logs{display:grid;gap:8px;margin:10px 0 4px}.project-change-log{display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 13px;border:1px solid #e5eaf2;border-radius:10px;background:#fafcff}.project-change-log>span{color:#3154dd;font-size:11px;font-weight:800}.project-change-log>b{font-size:12px;line-height:1.55;overflow-wrap:anywhere}.project-change-log b i{margin:0 4px;color:#8592a8;font-style:normal}.project-change-log small{color:#7d899b;font-size:10px;white-space:nowrap}@media(max-width:680px){.project-change-log{grid-template-columns:1fr;gap:4px}.project-change-log small{white-space:normal}}
.quality-item button{min-height:34px;white-space:nowrap}
.quality-item.high{border-color:#f3d0d5;background:#fffafb}.quality-item.medium{border-color:#f1dfbd;background:#fffdf8}.quality-item.low{border-color:#dce5f1;background:#fbfcff}
.quality-item.high button{border-color:#edc6cc;color:#bd3440}.quality-item.medium button{border-color:#ead6a8;color:#9d6809}.quality-item.low button{border-color:#cfdcf0;color:#3154dd}
.primary,.secondary,.danger{transition:background .16s,border-color .16s,color .16s,transform .16s}.primary:hover,.secondary:hover,.danger:hover{transform:translateY(-1px)}.primary:focus-visible,.secondary:focus-visible,.danger:focus-visible{outline:3px solid #2143d424;outline-offset:2px}
.backup-actions{display:flex;gap:8px}.backup-actions button{margin:0}
.backup-note{margin-bottom:16px;padding:14px 16px;border-radius:11px;background:#edf8f4;color:#326b5a}
.backup-note b{font-size:13px}.backup-note p{margin:5px 0 0;font-size:11px;line-height:1.6}
.backup-list{display:grid;gap:9px}.backup-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 15px;border:1px solid #e3e8f1;border-radius:11px;background:#fff}
.backup-item b,.backup-item small{display:block}.backup-item b{font-size:12px}.backup-item small{margin-top:5px;color:#7d899b;font-size:10px}.backup-item button{white-space:nowrap}

/* v4.8 — never clip business text in detail and portfolio views */
.progress-line{grid-template-columns:38px minmax(0,1fr);width:100%}
/* Project tracking: allocate width by content density. */
.projects-table{min-width:1840px}
.projects-table .sequence-col{width:52px}
.projects-table .project-name-col{width:260px}
.projects-table .country-col{width:78px}
.projects-table .owner-col{width:210px;max-width:210px}
.projects-table .number-col{width:108px}
.projects-table .rate-col{width:86px}
.projects-table .probability-col{width:84px}
.projects-table .status-col{width:104px}
.projects-table .responsible-col{width:80px}
.projects-table .progress-col{width:430px;min-width:430px}
.projects-table .date-col{width:118px}

#projectTrackingTable thead th{position:relative}
#projectTrackingTable .column-resizer{position:absolute;top:0;right:-4px;z-index:2;width:8px;height:100%;cursor:col-resize;touch-action:none}
#projectTrackingTable .column-resizer:after{content:"";position:absolute;top:25%;right:3px;width:1px;height:50%;background:#bcc8df;opacity:0;transition:opacity .16s}
#projectTrackingTable th:hover .column-resizer:after{opacity:1}
#projectTrackingTable[data-custom-row-height="1"] tbody tr{height:var(--project-row-height)}
.table-layout-height{display:flex;align-items:center;gap:10px;margin-top:8px}.table-layout-height input[type="range"]{flex:1;margin:0}.table-layout-height input[type="number"]{width:74px;margin:0}.table-layout-height b{min-width:42px;color:#183b96;font-size:11px}

.progress-line span{min-width:0;display:block;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}
.progress-lines,.history-lines,.timeline,.timeline>div{min-width:0}
.detail-grid div{min-width:0}
.detail-grid b{white-space:normal;overflow-wrap:anywhere;word-break:break-word}
.owner-cell span{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;word-break:break-word}
.latest-progress span{display:block;overflow:visible;-webkit-line-clamp:unset;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}
.status-project-list>button>div{min-width:0}
.status-project-list>button>div:nth-child(2) b{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;word-break:break-word}
.status-project-list small{white-space:normal;overflow-wrap:anywhere}
.status-portfolio-totals{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin-bottom:17px}
.status-portfolio-totals>div{padding:15px 17px;border:1px solid #e3e8f4;border-radius:12px;background:linear-gradient(145deg,#f8faff,#f1f5ff)}
.status-portfolio-totals span,.status-portfolio-totals b,.status-portfolio-totals small{display:block}
.status-portfolio-totals span{color:#7a879c;font-size:10px}.status-portfolio-totals b{margin-top:6px;color:#14264c;font-size:20px;line-height:1.3}.status-portfolio-totals small{margin-top:2px;color:#8d98aa;font-size:9px}
.recent-panel .recent-list button>div{min-width:0}
.recent-panel .recent-list b,.recent-panel .recent-list small{white-space:normal;overflow-wrap:anywhere;word-break:break-word}

@media(max-width:980px){
  .sidebar .nav{font-size:0}
  .sidebar .nav span{font-size:18px}
  .topbar{height:90px;padding-inline:26px}
  .breadcrumb{font-size:15px}
  .topbar h1{font-size:24px}
  .management-motto{max-width:52%;font-size:25px;white-space:normal}
}
@media(max-width:680px){
  .status-portfolio-totals{grid-template-columns:1fr}
  .topbar{height:78px;padding-inline:16px}
  .breadcrumb{font-size:12px}
  .topbar h1{font-size:20px}
  .user-meta span{display:none}
  .user-meta b{font-size:13px}
  .avatar{width:40px;height:40px;font-size:15px}
  .management-motto{display:none}
  .modal:not(:has(.status-project-list))>header{padding:20px}
  .modal:not(:has(.status-project-list)) .modal-body{padding:20px}
  .detail-grid{grid-template-columns:1fr 1fr}
}

.history-entry-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:7px}
.history-entry-head small{margin:0}
.history-actions{display:flex;flex-wrap:wrap;gap:6px}
.history-actions button{border-radius:7px;padding:5px 9px;background:#fff;font-size:9px;font-weight:700}
.history-edit{border:1px solid #ccd7ff;color:#3152d1}
.history-delete{border:1px solid #f0cbd0;color:#c7434d}
.history-edit:hover{background:#f3f6ff}
.history-delete:hover{background:#fff5f6}
.history-edit-tip{margin:0 0 14px;padding:11px 13px;border-radius:9px;background:#f5f7fc;color:#61708a;font-size:10px;line-height:1.75}
.history-edit-textarea{min-height:260px!important;line-height:1.8}
/* Desktop project editors: improve form reading scale without changing mobile forms or detail cards. */
@media (min-width:768px){
  .modal:has(#projectForm),.modal:has(#progressForm){width:min(940px,95vw)}
  .modal:has(#projectForm) .modal-body,.modal:has(#progressForm) .modal-body{padding:28px 30px 32px}
  .modal:has(#projectForm) .form-grid{gap:16px}
  .modal:has(#projectForm) .form-grid label,.modal:has(#projectForm) .form-single,.modal:has(#progressForm) .form-single{font-size:12px;line-height:1.45}
  .modal:has(#projectForm) .form-grid input,.modal:has(#projectForm) .form-grid select,.modal:has(#projectForm) .form-single input,.modal:has(#projectForm) .form-single select,.modal:has(#projectForm) .form-single textarea,.modal:has(#progressForm) .form-single input,.modal:has(#progressForm) .form-single textarea{margin-top:8px;padding:11px 12px;font-size:14px;line-height:1.55}
  .modal:has(#projectForm) .form-single textarea,.modal:has(#progressForm) .form-single textarea{min-height:112px}
}
.progress-save-success{display:grid;gap:9px;padding:10px 2px;color:#243653;font-size:14px;line-height:1.7}.progress-save-success>b{font-size:16px;color:#1747be}.progress-save-success>span{color:#64728a}
.project-introduction-head{margin-top:24px}
.project-introduction{margin-top:9px;padding:15px 17px;border:1px solid #e3e8f4;border-radius:11px;background:#f8faff;color:#263652;font-size:11px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}

/* v4.9.1 — clearer dashboard navigation and clock controls */
.panel-title>button.dashboard-more-link{
  display:inline-flex;align-items:center;justify-content:center;min-height:34px;
  margin:-4px -5px 0 14px;padding:7px 11px;border-radius:9px;
  color:var(--blue);font-size:14px;font-weight:800;line-height:1.25;
  letter-spacing:.01em;white-space:nowrap;transition:background .16s,color .16s,transform .16s
}
.panel-title>button.dashboard-more-link:hover{background:#edf1ff;color:#1737b7;transform:translateY(-1px)}
.panel-title>button.dashboard-more-link:focus-visible{outline:3px solid #2143d426;outline-offset:1px;background:#f2f5ff}
.clock-actions{gap:9px}
.clock-live,.clock-actions>button{
  display:inline-flex;align-items:center;justify-content:center;min-height:32px;
  padding:6px 9px;border-radius:9px;font-size:13px;font-weight:800;line-height:1.25;white-space:nowrap
}
.clock-live{gap:7px;background:#edf9f5;color:#14825f}
.clock-live i{width:8px;height:8px}
.clock-actions>button{transition:background .16s,color .16s,transform .16s}
.clock-actions>button:hover{background:#edf1ff;color:#1737b7;transform:translateY(-1px)}
.clock-actions>button:focus-visible{outline:3px solid #2143d426;outline-offset:1px;background:#f2f5ff}
@media(max-width:680px){
  .panel-title>button.dashboard-more-link{min-height:32px;margin-right:-3px;padding:6px 9px;font-size:13px}
  .clock-actions{gap:5px}
  .clock-live,.clock-actions>button{min-height:30px;padding:5px 7px;font-size:12px}
}

/* v4.9.2 — unified responsive header and projector-readable project details */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.topbar{
  display:grid;
  grid-template-columns:max-content minmax(0,1fr) max-content;
  column-gap:clamp(16px,2.1vw,40px);
}
.management-motto{
  position:static;
  left:auto;
  top:auto;
  transform:none;
  width:100%;
  max-width:none;
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:clamp(10px,1.35vw,28px);
  color:#d3262f;
  font-size:clamp(20px,1.5vw,32px);
  line-height:1.35;
  letter-spacing:.01em;
  white-space:normal;
}
.management-motto span{display:block;flex:0 0 auto;white-space:nowrap}
.topbar>div:first-child,.user-block{min-width:0}
.account-password-btn{white-space:nowrap}

.modal:has(.detail-grid){width:min(980px,96vw);max-height:92vh}
.modal:has(.detail-grid)>header{padding:27px 30px}
.modal:has(.detail-grid)>header .overline{font-size:14px}
.modal:has(.detail-grid) h2{font-size:26px}
.modal:has(.detail-grid) .modal-body{padding:28px 30px 34px}
.modal:has(.detail-grid) .detail-actions button{min-height:44px;padding:11px 17px;font-size:14px}
.modal:has(.detail-grid) .detail-grid{gap:14px}
.modal:has(.detail-grid) .detail-grid div{min-height:92px;padding:18px 19px}
.modal:has(.detail-grid) .detail-grid span{font-size:12.5px}
.modal:has(.detail-grid) .detail-grid b{margin-top:8px;font-size:15.5px;line-height:1.5}
.modal:has(.detail-grid) .section-head{margin-top:30px}
.modal:has(.detail-grid) .section-head h3{font-size:18px}
.modal:has(.detail-grid) .section-head>span{font-size:13px}
.modal:has(.detail-grid) .progress-lines{gap:11px}
.modal:has(.detail-grid) .progress-line{grid-template-columns:42px minmax(0,1fr);gap:13px;padding:15px 17px}
.modal:has(.detail-grid) .progress-line i{width:34px;height:31px;font-size:12px}
.modal:has(.detail-grid) .progress-line span{font-size:15px;line-height:1.85}
.modal:has(.detail-grid) .project-introduction{padding:17px 19px;font-size:13px;line-height:2}
.modal:has(.detail-grid) .timeline small{font-size:12px;line-height:1.6}
.modal:has(.detail-grid) .history-actions button{padding:6px 10px;font-size:11px}
.modal:has(.detail-grid) .history-lines .progress-line span{font-size:14px;line-height:1.85}

@media(max-width:1200px){
  .topbar{height:112px;column-gap:18px;padding-inline:26px}
  .management-motto{
    align-content:center;
    flex-wrap:wrap;
    gap:2px 18px;
    font-size:clamp(18px,1.75vw,23px);
    line-height:1.25;
  }
}
@media(max-width:980px){
  .topbar{height:104px;padding-inline:22px}
  .management-motto{max-width:none;font-size:clamp(18px,2.15vw,22px);white-space:normal}
}
@media(max-width:820px) and (min-width:681px){
  .topbar{
    height:auto;
    min-height:132px;
    grid-template-columns:minmax(0,1fr) max-content;
    grid-template-rows:auto auto;
    row-gap:8px;
    padding-block:12px;
  }
  .topbar>div:first-child{grid-column:1;grid-row:1}
  .user-block{grid-column:2;grid-row:1}
  .management-motto{
    grid-column:1/-1;
    grid-row:2;
    flex-wrap:wrap;
    gap:2px 16px;
    font-size:18px;
    line-height:1.3;
  }
}
@media(max-width:680px){
  .topbar{height:78px;grid-template-columns:minmax(0,1fr) max-content;padding-inline:16px}
  .management-motto{display:none}
  .account-password-btn{display:none}
  .modal:has(.detail-grid){width:96vw}
  .modal:has(.detail-grid)>header{padding:21px}
  .modal:has(.detail-grid) h2{font-size:23px}
  .modal:has(.detail-grid) .modal-body{padding:21px}
  .modal:has(.detail-grid) .detail-grid{grid-template-columns:1fr 1fr;gap:10px}
  .modal:has(.detail-grid) .detail-grid div{min-height:82px;padding:14px}
  .modal:has(.detail-grid) .detail-grid span{font-size:12px}
  .modal:has(.detail-grid) .detail-grid b{font-size:15px}
  .modal:has(.detail-grid) .progress-line{grid-template-columns:38px minmax(0,1fr);padding:13px}
  .modal:has(.detail-grid) .progress-line span{font-size:14px}
}

/* v4.9.5 — local-currency fields and only the newest progress highlighted */
.projects-table{min-width:1700px}
.rate-col{width:104px}
.latest-progress span{
  color:#d3262f!important;
  font-weight:750;
}
.latest-progress-lines .progress-line span{
  color:#d3262f!important;
  font-weight:750!important;
}
.latest-progress-lines .progress-line{border-color:#f2d2d5;background:#fff7f7}
.latest-progress-lines .progress-line i{background:#fde7e9;color:#c51f2b}
.history-lines .progress-line span{color:#263652!important;font-weight:400!important}
.latest-day-progress{color:#d3262f!important;font-weight:750!important}
.latest-day-entry .history-entry:first-of-type .history-entry-head small,.latest-day-entry .history-entry:first-of-type .history-lines .progress-line:first-child span{color:#d3262f!important;font-weight:750!important}
.history-date-group{margin:0 0 14px 18px;padding:0!important;border:1px solid #e4e8ef;border-radius:10px;background:#fff;overflow:hidden}
.history-date-group:before{left:-22px!important;top:14px!important}
.history-date-group>header{display:flex;align-items:center;justify-content:space-between;padding:10px 13px;background:#f6f7fa;border-bottom:1px solid #e9ecf2}
.history-date-group>header b{font-size:12px}.history-date-group>header span{font-size:9px;color:#8c95a5}
.history-date-group .history-entry{padding:11px 13px;border-bottom:1px dashed #e9ecf2}.history-date-group .history-entry:last-child{border-bottom:0}
.history-date-group.latest-day-entry .history-entry:first-of-type{background:#fffafa}
.detail-sticky-meta{position:sticky;top:-22px;z-index:2;display:flex;gap:7px;flex-wrap:wrap;margin:-22px -24px 15px;padding:10px 24px;border-bottom:1px solid #e8ecf3;background:#fff;box-shadow:0 5px 12px #172a5208}.detail-sticky-meta span{padding:4px 8px;border-radius:12px;background:#edf2ff;color:#3152d1;font-size:9px;font-weight:700}.detail-sticky-meta span:nth-child(2){background:#fff4d9;color:#a36708}.detail-sticky-meta span:nth-child(3){background:#f4f6f9;color:#667388}
.history-date-group>summary{display:flex;align-items:center;justify-content:space-between;padding:10px 13px;background:#f6f7fa;border-bottom:1px solid #e9ecf2;cursor:pointer;list-style:none}.history-date-group>summary::-webkit-details-marker{display:none}.history-date-group>summary:after{content:"⌄";margin-left:8px;color:#7f8ca2;font-size:12px}.history-date-group:not([open])>summary{border-bottom:0}.history-date-group:not([open])>summary:after{content:"›"}.history-date-group>summary b{font-size:12px}.history-date-group>summary span{margin-left:auto;font-size:9px;color:#8c95a5}.timeline>details{position:relative;padding:0!important}.timeline>details:before{content:"";position:absolute;left:-22px;top:14px;width:7px;height:7px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 2px #fff}.history-date-group:not(.latest-day-entry) .history-lines .progress-line span{color:#263652!important;font-weight:400!important}
#projectTrackingTable .sequence-col,#projectTrackingTable .sequence-cell{position:sticky;left:0;z-index:3;width:42px;min-width:42px;padding-inline:6px;background:#fff;text-align:center}#projectTrackingTable .project-name-col,#projectTrackingTable .project-name-cell{position:sticky;left:42px;z-index:3;background:#fff;box-shadow:8px 0 12px -12px #192d5f66}#projectTrackingTable thead .sequence-col,#projectTrackingTable thead .project-name-col,#projectTrackingTable thead .project-operation-col{z-index:5;background:#f8f9fb}#projectTrackingTable .project-operation-col,#projectTrackingTable .project-operation-cell{position:sticky;right:0;z-index:3;background:#fff;box-shadow:-8px 0 12px -12px #192d5f66;text-align:center}#projectTrackingTable tbody tr:nth-child(even) .sequence-cell,#projectTrackingTable tbody tr:nth-child(even) .project-name-cell,#projectTrackingTable tbody tr:nth-child(even) .project-operation-cell{background:#fbfcfe}#projectTrackingTable tbody tr:hover .sequence-cell,#projectTrackingTable tbody tr:hover .project-name-cell,#projectTrackingTable tbody tr:hover .project-operation-cell{background:#f3f6ff}.project-operation-col,.project-operation-cell{width:70px;min-width:70px}.project-operation-cell .secondary{padding:6px 10px;font-size:10px;white-space:nowrap}

/* v4.9.3 — stable modal scrolling on remote and projected displays */
html.modal-open,body.modal-open{overflow:hidden;overscroll-behavior:none}
.modal-backdrop{
  background:#0b163780;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  overscroll-behavior:contain;
}
.modal{
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  contain:layout paint;
}

/* v4.9.7 — annual target controls and executive status values */
.annual-controls{display:flex;align-items:center;gap:8px}
.annual-target-edit{
  min-height:34px;
  padding:7px 11px;
  border:1px solid #dfe5f1;
  border-radius:9px;
  color:#24499f;
  background:#fff;
  font-size:11px;
  font-weight:750;
  cursor:pointer;
}
.annual-target-edit:hover{border-color:#b9c8ed;background:#f6f8ff}
.legend .status-amount{grid-column:2/-1;color:#7b8799;font-size:9px;font-style:normal;text-align:right;white-space:nowrap}

/* v5.0.7 — adaptive laptop, projector and extended-display layout */
:root{--adaptive-sidebar:clamp(202px,14vw,244px);--adaptive-gutter:clamp(18px,2vw,40px)}
.five-stats{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.sidebar{width:var(--adaptive-sidebar);padding:clamp(16px,2vh,22px) clamp(12px,1.2vw,18px) 18px}
.workspace{margin-left:var(--adaptive-sidebar)}
.topbar{height:clamp(86px,9.5vh,104px);padding-inline:var(--adaptive-gutter)}
.topbar h1{font-size:clamp(24px,1.8vw,31px)}
.breadcrumb{font-size:clamp(12px,.9vw,15px)}
.management-motto{font-size:clamp(17px,1.45vw,27px);gap:clamp(20px,2.4vw,46px)}
.page{padding:clamp(18px,2.4vh,30px) var(--adaptive-gutter) clamp(28px,4vh,52px)}
.welcome,.project-hero{padding:clamp(24px,3vw,40px);min-height:clamp(142px,18vh,184px)}
.welcome h2,.project-hero h2{font-size:clamp(27px,2.25vw,38px)}
.panel{padding:clamp(16px,1.6vw,24px)}
.panel-title h3,.section-head h3{font-size:clamp(17px,1.2vw,21px)}
.modal{max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}
.stopped-project-hero{background:linear-gradient(115deg,#485a7a,#6c7e9f);box-shadow:0 18px 38px #34456226}
.archived-project-hero{background:linear-gradient(115deg,#273a62,#47658e);box-shadow:0 18px 38px #20345a2b}
#projectionModeBtn b{font:inherit}
#projectionModeBtn.active{background:#edf2ff;color:#173fbc}
.projection-exit{display:none}
.projection-panel-link{margin:0;padding:0;border:0;background:transparent;color:var(--ink);font:inherit;font-size:inherit;font-weight:800;line-height:1.35;text-align:left;cursor:pointer}
.projection-panel-link:hover,.projection-panel-link:focus-visible{color:var(--blue);outline:none}

body.presentation-mode .topbar h1{font-size:clamp(29px,2.1vw,38px)}
body.presentation-mode .management-motto{font-size:clamp(20px,1.65vw,31px)}
body.presentation-mode .welcome h2,body.presentation-mode .project-hero h2{font-size:clamp(32px,2.55vw,44px)}
body.presentation-mode .status-summary-card b{font-size:clamp(31px,2.2vw,42px)}
body.presentation-mode .status-summary-card span,body.presentation-mode table{font-size:clamp(13px,1vw,17px)}
body.presentation-mode .panel-title h3,body.presentation-mode .section-head h3{font-size:clamp(20px,1.4vw,25px)}
body.presentation-mode .latest-progress,body.presentation-mode .recent-list{font-size:clamp(14px,1.05vw,18px)}

/* v5.5.123 — desktop projection: show the decision view and remove routine controls */
@media (min-width:981px){
  body.presentation-mode{background:#edf2f8}
  body.presentation-mode .sidebar{display:none}
  body.presentation-mode .workspace{margin-left:0}
  body.presentation-mode .topbar{height:82px;padding:0 44px;background:#fff}
  body.presentation-mode .topbar .breadcrumb,body.presentation-mode .topbar .account-password-btn{display:none}
  body.presentation-mode .topbar h1{font-size:30px}
  body.presentation-mode .management-motto{font-size:20px;gap:28px}
  body.presentation-mode .user-meta span{font-size:12px}
  body.presentation-mode .projection-exit{position:fixed;z-index:20;top:22px;right:32px;display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 16px;border:1px solid #d3dcee;border-radius:10px;background:#fff;color:#2349c6;font-size:14px;font-weight:800;box-shadow:0 6px 18px #17306c16}
  body.presentation-mode #page-dashboard{padding:18px 36px 34px}
  body.presentation-mode #page-dashboard .welcome{min-height:106px;padding:22px 28px;border-radius:16px}
  body.presentation-mode #page-dashboard .welcome h2{margin:4px 0 7px;font-size:32px}
  body.presentation-mode #page-dashboard .welcome-actions{display:none}
  body.presentation-mode #page-dashboard .stats{gap:14px;margin:14px 0}
  body.presentation-mode #page-dashboard .stats article{min-height:96px;padding:15px 17px}
  body.presentation-mode #page-dashboard .stats article small{display:none}
  body.presentation-mode #page-dashboard .dashboard-grid{grid-template-columns:minmax(0,1.75fr) minmax(360px,1fr);gap:16px;margin-bottom:16px}
  body.presentation-mode #page-dashboard .annual-overview-panel,body.presentation-mode #page-dashboard .recent-panel{grid-column:auto}
  body.presentation-mode #page-dashboard .annual-overview-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;padding:0 16px 16px}
  body.presentation-mode #page-dashboard .annual-summary-card{min-height:238px}
  body.presentation-mode #page-dashboard [data-forecast-kind] .annual-ring-card-head b,body.presentation-mode #page-dashboard [data-distribution-details]{cursor:pointer}
  body.presentation-mode #page-dashboard [data-forecast-kind] .annual-ring-card-head b::after,body.presentation-mode #page-dashboard [data-distribution-details]::after{content:" · 点击查看明细";color:#5e7191;font-size:11px;font-weight:650}
  body.presentation-mode #page-dashboard .recent-list{padding:0 16px 16px;gap:8px}
  body.presentation-mode #page-dashboard .recent-list button{padding:11px}
  body.presentation-mode #page-dashboard .world-clock-panel,body.presentation-mode #page-dashboard .engineering-headlines-panel{display:none}
  body.presentation-mode #page-dashboard .dashboard-more-link{display:none}
  body.presentation-mode #page-dashboard .projection-panel-link::after{content:" · 点击查看全部项目";color:#5e7191;font-size:12px;font-weight:650}
  body.presentation-mode #page-dashboard>.panel{margin-bottom:0}
  body.presentation-mode #page-dashboard .table-scroll{max-height:360px;overflow:auto}
  body.presentation-mode #page-dashboard table{min-width:1180px}
  body.presentation-mode #page-dashboard #dashboardRows td:nth-child(1),body.presentation-mode #page-dashboard #dashboardRows td:nth-child(4),body.presentation-mode #page-dashboard #dashboardRows td:nth-child(5),body.presentation-mode #page-dashboard #dashboardRows td:nth-child(7),body.presentation-mode #page-dashboard #dashboardRows td:nth-child(8),body.presentation-mode #page-dashboard #dashboardRows td:nth-child(9),body.presentation-mode #page-dashboard #dashboardRows td:nth-child(12),body.presentation-mode #page-dashboard table thead th:nth-child(1),body.presentation-mode #page-dashboard table thead th:nth-child(4),body.presentation-mode #page-dashboard table thead th:nth-child(5),body.presentation-mode #page-dashboard table thead th:nth-child(7),body.presentation-mode #page-dashboard table thead th:nth-child(8),body.presentation-mode #page-dashboard table thead th:nth-child(9),body.presentation-mode #page-dashboard table thead th:nth-child(12){display:none}

  /* v5.5.148 — projection typography raised by two display sizes. */
  body.presentation-mode .topbar h1{font-size:34px}
  body.presentation-mode .management-motto{font-size:24px}
  body.presentation-mode #page-dashboard .welcome h2{font-size:36px}
  body.presentation-mode .status-summary-card b{font-size:46px;line-height:1}
  body.presentation-mode .status-summary-card span,body.presentation-mode #page-dashboard table{font-size:19px}
  body.presentation-mode .panel-title h3,body.presentation-mode .section-head h3{font-size:29px}
  body.presentation-mode .latest-progress,body.presentation-mode .recent-list{font-size:20px}

  /* v5.5.163 — keep projected dashboards readable and vertically scrollable when zoomed. */
  html:has(body.presentation-mode:not(.modal-open)){height:auto;min-height:100%;overflow-y:auto;overscroll-behavior-y:auto}
  body.presentation-mode:not(.modal-open){height:auto;min-height:100vh;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:auto}
  body.presentation-mode:not(.modal-open) .app,
  body.presentation-mode:not(.modal-open) .workspace,
  body.presentation-mode:not(.modal-open) #page-dashboard.active-page{height:auto;min-height:0;overflow:visible}
  body.presentation-mode #page-dashboard .recent-list{grid-template-columns:minmax(0,1fr)}
}

@media (max-width:1500px) and (min-width:981px){
  body.presentation-mode #page-dashboard .dashboard-grid{grid-template-columns:minmax(0,1fr)}
  body.presentation-mode #page-dashboard .annual-overview-panel,
  body.presentation-mode #page-dashboard .recent-panel{grid-column:auto}
  body.presentation-mode #page-dashboard .recent-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:1120px) and (min-width:981px){
  body.presentation-mode #page-dashboard{padding-inline:22px}
  body.presentation-mode #page-dashboard .annual-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.presentation-mode #page-dashboard .recent-list{grid-template-columns:minmax(0,1fr)}
}

@media (max-width:1600px) and (min-width:981px){.five-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:1400px) and (min-width:981px){
  :root{--adaptive-sidebar:clamp(196px,15vw,216px);--adaptive-gutter:clamp(16px,1.7vw,24px)}
  .management-motto{gap:clamp(14px,1.5vw,22px);font-size:clamp(16px,1.4vw,20px)}
  .dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .recent-panel{grid-column:1/-1}
  .projects-table{min-width:1500px}
}
@media (max-height:820px) and (min-width:681px){
  .topbar{height:84px}.page{padding-top:16px}
  .welcome,.project-hero{min-height:132px;padding-block:20px}
  .stats{gap:12px}.status-summary-card{min-height:118px;padding:16px}
  .panel{padding-block:15px}.modal{max-height:calc(100dvh - 16px)}
}

/* v5.0.9 — stable personal world-clock controls */
.clock-card-actions{display:flex;align-items:center;gap:4px}
.clock-card-actions button{flex:0 0 auto}
.clock-card-actions button[data-move-clock]:hover{background:#e4eaff;color:#2448c7}
.clock-card-actions button:disabled{opacity:.32;cursor:default;pointer-events:none}
.world-clock-card.night .clock-card-actions button[data-move-clock]:hover{background:#ffffff24;color:#fff}

/* v5.0.11 — searchable personal world clocks */
.clock-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin-top:7px}
.clock-search-row input{min-width:0}
.clock-search-row button{padding-inline:22px}
.clock-search-hint{margin:10px 0 14px;color:#77839a;font-size:12px}
.city-search-results{display:grid;gap:8px;max-height:min(390px,48dvh);overflow:auto;padding-right:3px}
.city-search-result{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;width:100%;padding:13px 15px;border:1px solid #dde5f5;border-radius:12px;background:#f8faff;color:#10234a;text-align:left;cursor:pointer}
.city-search-result:hover{border-color:#9eb2ea;background:#eef3ff}
.city-search-result b{overflow-wrap:anywhere;font-size:14px}
.city-search-result span{color:#71809c;font-size:12px;white-space:nowrap}
.city-search-status{padding:22px 12px;border:1px dashed #dbe2ef;border-radius:12px;color:#77839a;text-align:center}
.city-search-attribution{display:block;margin-top:9px;color:#8792a5;text-align:right}
.city-search-attribution a{color:#5e7199}
@media(max-width:520px){.city-search-result{grid-template-columns:1fr}.city-search-result span{white-space:normal}}

/* v5.0.12 — resilient dashboard layout for zoomed, laptop and projected views */
.dashboard-grid>.panel{min-width:0}
.annual-panel,.status-distribution-panel{container-type:inline-size}
.status-distribution-panel .legend span{min-width:0;overflow-wrap:normal;word-break:keep-all}

@media(max-width:1240px) and (min-width:681px){
  .dashboard-grid{grid-template-columns:minmax(0,1fr)}
  .recent-panel{grid-column:auto}
  .annual-body{justify-content:center}
}

@container (max-width:560px){
  .annual-body{align-items:stretch;flex-direction:column;gap:18px;padding:4px 22px 26px}
  .annual-donut{align-self:center;width:158px;height:158px;flex-basis:158px}
  .annual-donut:after{width:102px;height:102px}
  .annual-metrics{width:100%;min-width:0}
  .status-distribution-panel .chart-area{align-items:center;flex-direction:column;gap:22px;padding:6px 22px 26px}
  .status-distribution-panel .donut{flex:0 0 auto}
  .status-distribution-panel .legend{width:100%}
  .status-distribution-panel .legend div{grid-template-columns:10px minmax(150px,1fr) auto 58px}
}

@media(max-width:680px){
  .status-distribution-panel .chart-area{align-items:center;flex-direction:column;gap:20px}
  .status-distribution-panel .legend{width:100%}
  .status-distribution-panel .legend div{grid-template-columns:10px minmax(125px,1fr) auto 52px}
  .clock-actions{flex-wrap:wrap;justify-content:flex-end}
  .recent-panel .recent-list button{grid-template-columns:auto minmax(0,1fr) auto}
  .table-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}
}

@media(max-width:1240px) and (min-width:481px){
  .five-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(min-width:1241px){
  .five-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
}

@media(max-width:480px){
  .five-stats{grid-template-columns:minmax(0,1fr)}
}

/* v5.5.164 — fixed sidebar brand with a scrollable navigation area on short screens. */
.sidebar{overflow:hidden}
.sidebar>.brand{flex:0 0 auto}
.sidebar-scroll{min-height:0;flex:1;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:thin;scrollbar-color:#7188bd55 transparent;scrollbar-gutter:stable}
.sidebar-scroll::-webkit-scrollbar{width:5px}
.sidebar-scroll::-webkit-scrollbar-track{background:transparent}
.sidebar-scroll::-webkit-scrollbar-thumb{border-radius:999px;background:#7188bd55}
.sidebar-scroll:hover::-webkit-scrollbar-thumb{background:#91a7d877}
.sidebar-scroll .sidebar-bottom{margin-top:16px}

/* v5.1.2 — annual target executive decision cards */
.forecast-panel{grid-column:1/-1;min-width:0}
.annual-forecast-chart{padding:0 22px 22px}
.forecast-panel-title{align-items:center}
.forecast-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.forecast-target-badge{padding:9px 13px;border-radius:999px;background:#fff0f2;color:#c31d35;font-size:13px;font-weight:850;white-space:nowrap}
.forecast-manage-button{min-height:40px;padding:9px 15px;border:1px solid #3154dd;border-radius:10px;background:#fff;color:#2448d1;font-size:14px;font-weight:850;cursor:pointer;white-space:nowrap;transition:.18s ease}
.forecast-manage-button:hover{background:#f3f6ff;box-shadow:0 5px 14px #3154dd1a;transform:translateY(-1px)}
.forecast-decision-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.forecast-decision-card{position:relative;display:grid;gap:12px;min-width:0;padding:18px;border:1px solid #dfe5ef;border-radius:14px;background:linear-gradient(145deg,#fff,#fbfcff);color:#14213d;text-align:left;box-shadow:0 5px 18px #17306c0b;cursor:pointer;transition:.18s ease}
.forecast-decision-card:hover{transform:translateY(-2px);box-shadow:0 10px 25px #17306c16}
.forecast-decision-card.actual{border-top:4px solid #1f9d74;background:linear-gradient(145deg,#fff,#f5fbf8)}.forecast-decision-card.conservative{border-top:4px solid #3154dd;background:linear-gradient(145deg,#fff,#f6f8ff)}.forecast-decision-card.optimistic{border-top:4px solid #e7a72e;background:linear-gradient(145deg,#fff,#fffaf0)}
.forecast-card-head,.forecast-card-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}
.forecast-card-head>b{font-size:14px;white-space:nowrap}.forecast-card-head>em{padding:4px 8px;border-radius:12px;background:#f0f3f8;color:#66748b;font-size:9px;font-style:normal;font-weight:750;white-space:nowrap}
.forecast-decision-card>strong{font-size:30px;line-height:1.15;font-variant-numeric:tabular-nums;white-space:nowrap}.forecast-decision-card>strong small{margin-left:4px;font-size:12px;font-weight:700}
.forecast-status{position:absolute;right:18px;top:61px;padding:5px 9px;border-radius:999px;font-size:10px;font-weight:850;white-space:nowrap}.forecast-status.shortfall{background:#fff1df;color:#bd6912}.forecast-status.reached{background:#e8f7f1;color:#16865f}
.forecast-outcome{font-size:12px;font-weight:800;white-space:nowrap}.forecast-outcome.shortfall{color:#d07816}.forecast-outcome.reached{color:#16865f}
.forecast-progress{position:relative;display:block;height:12px;border-radius:8px;background:#edf0f5;overflow:hidden}.forecast-progress:after{content:"100%";position:absolute;right:5px;top:50%;transform:translateY(-50%);color:#707a8b;font-size:7px;font-weight:800}.forecast-progress i{position:relative;z-index:1;display:block;height:100%;border-radius:inherit;background:#1f9d74}.forecast-decision-card.conservative .forecast-progress i{background:#3154dd}.forecast-decision-card.optimistic .forecast-progress i{background:#e7a72e}
.forecast-card-foot{color:#7b879a;font-size:10px}.forecast-card-foot>b{margin-left:auto;color:#14213d;font-size:13px}.forecast-card-foot>em{font-style:normal;white-space:nowrap}
.annual-forecast-conclusion{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 22px 14px}
.forecast-judgment{display:flex;align-items:center;justify-content:center;gap:9px;min-width:0;padding:12px 15px;border:1px solid;border-radius:11px;font-size:13px;line-height:1.5}.forecast-judgment span{font-weight:750}.forecast-judgment b{font-size:15px}.forecast-judgment em{font-style:normal;font-weight:850;white-space:nowrap}.forecast-judgment.shortfall{border-color:#f1d2ad;background:linear-gradient(135deg,#fffaf3,#fff3df);color:#9d5911}.forecast-judgment.reached{border-color:#bfe5d5;background:linear-gradient(135deg,#f5fcf9,#eaf8f2);color:#11704f}
.forecast-manager-note{margin-bottom:14px;padding:13px 15px;border-radius:10px;background:#f4f7fd;color:#53627d;font-size:12px;line-height:1.7}
.forecast-project-list{display:grid;gap:8px}
.forecast-project-list>button,.forecast-project-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;width:100%;padding:13px 15px;border:1px solid #e3e8f2;border-radius:11px;background:#fff;color:#14213d;text-align:left}
.forecast-project-list>button{cursor:pointer}
.forecast-project-list>button:hover{border-color:#aebfe9;background:#f7f9ff}
.forecast-project-list span,.forecast-project-list b,.forecast-project-list small{display:block;min-width:0}
.forecast-project-list b{font-size:13px;line-height:1.5}
.forecast-project-list small{margin-top:4px;color:#7e899d;font-size:10px;line-height:1.5}
.forecast-project-list em{padding:4px 8px;border-radius:12px;background:#eaf6f1;color:#14835f;font-size:10px;font-style:normal;font-weight:800;white-space:nowrap}
.forecast-project-list em.excluded{background:#f2f3f6;color:#7f8998}
.forecast-project-list strong{font-size:12px;white-space:nowrap}
.forecast-manager-list>div{grid-template-columns:minmax(0,1fr) auto auto}

@media(max-width:680px){
  .annual-forecast-chart{padding-inline:14px}
  .forecast-panel-title{align-items:flex-start}
  .forecast-header-actions{justify-content:flex-start;width:100%}
  .forecast-decision-grid{grid-template-columns:minmax(0,1fr)}
  .annual-forecast-conclusion{grid-template-columns:minmax(0,1fr);margin-inline:14px}
  .forecast-judgment{justify-content:flex-start}
  .forecast-project-list>button,.forecast-project-list>div{grid-template-columns:minmax(0,1fr) auto}
  .forecast-project-list strong{grid-column:1/-1}
  .forecast-manager-list>div{grid-template-columns:minmax(0,1fr) auto}
  .forecast-manager-list>div>button{grid-column:1/-1}
}

@media(max-width:1100px) and (min-width:681px){
  .forecast-decision-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .forecast-decision-card.optimistic{grid-column:1/-1}
}

/* v5.2.0 — unified annual target and amount distribution donuts */
.annual-overview-panel{grid-column:1/-1;min-width:0}
.annual-overview-title{align-items:center}
.annual-overview-title h3{font-size:21px}
.annual-overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:0 22px 22px}
.annual-ring-card{display:grid;gap:14px;min-width:0;padding:18px 20px;border:1px solid #e0e6f0;border-radius:15px;background:linear-gradient(145deg,#fff,#f9fbff);color:#14213d;text-align:left;box-shadow:0 6px 20px #17306c0b;container-type:inline-size}
button.annual-ring-card{cursor:pointer;transition:.18s ease}
button.annual-ring-card:hover{transform:translateY(-2px);border-color:#becbed;box-shadow:0 11px 28px #17306c16}
.annual-ring-card.actual{border-top:4px solid #20a578;background:linear-gradient(145deg,#fff,#f5fbf8)}
.annual-ring-card.conservative{border-top:4px solid #3154dd;background:linear-gradient(145deg,#fff,#f5f7ff)}
.annual-ring-card.optimistic{border-top:4px solid #e8aa2d;background:linear-gradient(145deg,#fff,#fffaf0)}
.annual-ring-card.distribution{border-top:4px solid #7656d8}
.annual-ring-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}
.annual-ring-card-head b{font-size:16px;line-height:1.4}
.annual-ring-card-head em{padding:5px 9px;border-radius:999px;background:#f0f3f8;color:#68758b;font-size:10px;font-style:normal;font-weight:800;white-space:nowrap}
.annual-ring-layout{display:grid;grid-template-columns:190px minmax(0,1fr);align-items:center;justify-content:center;gap:24px;min-width:0}
.annual-ring{position:relative;display:grid;place-items:center;width:180px;height:180px;border-radius:50%;box-shadow:inset 0 0 0 1px #dce3ee}
.annual-ring:after{content:"";position:absolute;width:116px;height:116px;border-radius:50%;background:#fff;box-shadow:0 4px 18px #17306c12}
.annual-ring>span{position:relative;z-index:1;display:grid;justify-items:center;line-height:1.1}
.annual-ring strong{font-size:27px;font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.annual-ring small{display:inline-block;margin:0 0 0 2px;color:#77849a;font-size:11px;font-weight:750;line-height:1}
.annual-ring-summary{display:grid;gap:7px;align-content:center;min-width:0}
.annual-ring-summary>b{font-size:28px;line-height:1;font-variant-numeric:tabular-nums}
.annual-ring-summary>small{color:#7d899c;font-size:11px}
.annual-ring-summary>em{margin-top:5px;padding:7px 10px;border-radius:9px;font-size:12px;font-style:normal;font-weight:850;white-space:nowrap}
.annual-ring-summary>em.shortfall{background:#fff2df;color:#b86510}.annual-ring-summary>em.reached{background:#e9f8f2;color:#137b58}
.annual-ring-summary>span{color:#7d899c;font-size:10px}
.annual-ring-card.distribution{grid-template-rows:auto minmax(192px,1fr) auto;gap:10px}
.annual-distribution-bars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:26px;min-height:192px;padding:8px 18px 0;background:repeating-linear-gradient(to top,transparent 0,transparent 47px,#eaf0f8 48px);border-radius:10px}
.annual-distribution-bar{display:grid;grid-template-rows:auto 118px auto;align-items:end;justify-items:center;gap:7px;min-width:0;padding:0;border:0;background:transparent;color:#14213d;text-align:center;cursor:pointer}
.annual-distribution-bar>b{font-size:13px;line-height:1.2;white-space:nowrap;font-variant-numeric:tabular-nums}
.annual-distribution-bar-track{display:flex;align-items:flex-end;justify-content:center;width:100%;height:118px}
.annual-distribution-bar-track i{display:block;width:min(58px,72%);height:var(--bar-height);min-height:0;border-radius:9px 9px 3px 3px;background:linear-gradient(180deg,color-mix(in srgb,var(--bar-color),#fff 15%),var(--bar-color));box-shadow:0 8px 16px color-mix(in srgb,var(--bar-color),transparent 72%);transition:height .25s ease}
.annual-distribution-bar>span:last-child{display:grid;gap:3px;justify-items:center;min-width:0}
.annual-distribution-bar em{font-size:11px;font-style:normal;font-weight:800;line-height:1.35;overflow-wrap:anywhere}
.annual-distribution-bar small{color:#697891;font-size:10px;font-weight:700;font-variant-numeric:tabular-nums}
.annual-distribution-bar:hover .annual-distribution-bar-track i{filter:brightness(1.05);transform:translateY(-2px)}
.annual-distribution-total{color:#718098;font-size:11px;font-weight:750;text-align:right;font-variant-numeric:tabular-nums}
.weekly-brief-list{display:grid;gap:14px}
.engineering-headlines-panel{margin-bottom:15px;overflow:hidden}.engineering-headlines-date{align-self:center;color:#72809a;font-size:12px;font-variant-numeric:tabular-nums}.engineering-headlines-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:#edf1f7;border-top:1px solid #edf1f7}.engineering-headline{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:13px;align-items:center;min-width:0;padding:18px 22px;background:#fff;color:inherit;text-decoration:none;transition:background .16s,transform .16s}.engineering-headline:hover{background:#f7f9ff;transform:translateY(-1px)}.engineering-headline i{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#eef2ff;color:#3455dc;font-size:11px;font-style:normal;font-weight:800}.engineering-headline span{display:grid;gap:5px;min-width:0}.engineering-headline b,.engineering-headline small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.engineering-headline b{color:#162443;font-size:15px;line-height:1.4}.engineering-headline small{color:#73809a;font-size:12px}.engineering-headline span em{color:#7d8797;font-size:11px;font-style:normal}.engineering-headline strong{color:#3154dd;font-size:12px;white-space:nowrap}.engineering-headlines-loading{padding:24px;color:#7d8797;font-size:13px;text-align:center}
.engineering-import-panel{padding:18px 20px}.engineering-upload-form{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.engineering-upload-form label{display:grid;gap:6px;min-width:180px;color:#53627a;font-size:12px;font-weight:750}.engineering-upload-form input{min-height:38px}.engineering-upload-form button{min-height:38px}.engineering-note{margin:12px 0 0}.engineering-document-list{display:grid;gap:10px}.engineering-document-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid #e4eaf3;border-radius:12px;background:#fbfcff}.engineering-document-row b{display:block;color:#17213a}.engineering-document-row small{display:block;margin-top:5px;color:#718098}.engineering-document-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.engineering-document-empty{padding:30px;text-align:center;color:#718098}
.engineering-upload-form .engineering-upload-button{display:inline-flex;align-items:center;justify-content:center;min-width:120px;min-height:40px;margin:0;color:#fff;cursor:pointer}.engineering-upload-button input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.engineering-document-list .engineering-document-row{width:100%;color:inherit;text-align:left;cursor:pointer}.engineering-document-list .engineering-document-row:hover{border-color:#bfcdf4;background:#f5f8ff}.engineering-report-table{margin-top:16px}.engineering-table-head{display:flex;justify-content:space-between;align-items:center;padding:15px 18px 11px;border-bottom:1px solid #e8edf5}.engineering-table-head b{font-size:15px;color:#15233f}.engineering-table-head small{display:block;margin-top:4px;color:#718098;font-size:11px}.engineering-table{min-width:1560px!important;table-layout:fixed}.engineering-table th,.engineering-table td{vertical-align:top;white-space:pre-wrap;overflow-wrap:anywhere}.engineering-table th{font-size:11px;color:#566886}.engineering-table td{font-size:12px;line-height:1.75;color:#27354e}.engineering-table .engineering-col-0{width:54px;text-align:center}.engineering-table .engineering-col-1{width:190px}.engineering-table .engineering-col-2{width:180px}.engineering-table .engineering-col-3{width:95px}.engineering-table .engineering-col-4,.engineering-table .engineering-col-5{width:88px;text-align:right;white-space:nowrap}.engineering-table .engineering-col-6{width:90px}.engineering-table .engineering-col-7{width:390px}.engineering-table .engineering-col-8,.engineering-table .engineering-col-9{width:100px}.engineering-table .engineering-actions-col{width:132px;white-space:nowrap;text-align:center}.engineering-table .engineering-actions-col .danger{margin-left:5px}
.engineering-table-toolbar{position:relative;justify-content:center;margin:16px 0 0;border-radius:12px 12px 0 0;box-shadow:none;text-align:center}.engineering-table-toolbar>div:first-child{margin:auto}.engineering-table-toolbar>div:last-child{position:absolute;right:18px;top:50%;transform:translateY(-50%)}.engineering-table{min-width:1700px!important;border-collapse:collapse}.engineering-table th{background:#f8f9fb;border:1px solid #eff1f5;color:#6f7b90;text-align:center;vertical-align:middle}.engineering-table td{border:1px solid #eff1f5;background:#fff;vertical-align:middle}.engineering-table .engineering-col-0{width:54px;text-align:center}.engineering-table .engineering-col-1{width:225px}.engineering-table .engineering-col-2{width:180px}.engineering-table .engineering-col-3{width:100px;text-align:center}.engineering-table .engineering-col-4,.engineering-table .engineering-col-5{width:108px;text-align:right}.engineering-table .engineering-col-6{width:96px;text-align:center}.engineering-table .engineering-col-7{width:420px;text-align:left}.engineering-table .engineering-col-8,.engineering-table .engineering-col-9{width:110px;text-align:center}.engineering-table .engineering-actions-col{width:140px;text-align:center}.engineering-table tbody tr:nth-child(even) td{background:#fbfcfe}
.engineering-table .engineering-section-row td{padding:14px 18px!important;background:#f5f7fb!important;color:#1a315b;font-size:13px;font-weight:800;text-align:center;vertical-align:middle;letter-spacing:.02em}
.engineering-embedded-row>td{padding:22px!important;background:#fff!important}.engineering-embedded-row h3{margin:0 0 12px;color:#1a315b;font-size:14px;text-align:center}.engineering-embedded-table{min-width:900px!important;border-collapse:collapse}.engineering-embedded-table th,.engineering-embedded-table td{border:1px solid #dfe5ef!important;text-align:center!important;vertical-align:middle!important;white-space:pre-wrap}.engineering-embedded-table th{background:#f6f8fc!important;color:#44546e!important}.engineering-embedded-table td{padding:10px!important;color:#27354e!important}
.engineering-embedded-panel{margin-top:18px;padding:20px;border:1px solid #e0e6f0;border-radius:14px;background:#fff;box-shadow:0 5px 15px #17306c08}.engineering-embedded-panel h3{margin:0 0 14px;color:#1a315b;font-size:15px;text-align:center}.engineering-embedded-scroll{width:100%;overflow-x:auto;border:1px solid #dfe5ef;border-radius:10px}.engineering-embedded-table{width:max-content;min-width:100%!important;table-layout:auto!important}.engineering-embedded-table th,.engineering-embedded-table td{min-width:102px;padding:10px 14px!important}.engineering-embedded-table td[rowspan]{background:#f8fafc!important;font-weight:700}
.engineering-embedded-panel header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.engineering-embedded-panel header h3{margin:0;flex:1}.engineering-embedded-actions{display:flex;gap:6px;white-space:nowrap}.engineering-embedded-actions button,.engineering-embedded-table .engineering-inline-actions button{font-size:12px;padding:6px 9px}.engineering-embedded-table .engineering-inline-actions{min-width:128px;white-space:nowrap}.engineering-embedded-table .engineering-inline-actions .danger{margin-left:6px}
.sidebar .nav[data-page="projects"]{justify-content:flex-start}
.weekly-brief-card{padding:18px 20px;border:1px solid #dfe6f2;border-radius:15px;background:linear-gradient(135deg,#fff,#f8faff);box-shadow:0 7px 20px #17306c0b}
.weekly-brief-section.international-headlines{border-left-color:#1b8c70}.weekly-headline-list{display:grid;gap:7px}.weekly-headline-list a{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:8px;align-items:start;color:inherit;text-decoration:none}.weekly-headline-list a:hover b,.weekly-headline-list a:hover em{color:#3154dd}.weekly-headline-list i{display:grid;place-items:center;width:24px;height:24px;border-radius:7px;background:#e9f8f1;color:#168c66;font-size:8px;font-style:normal;font-weight:800}.weekly-headline-list span{display:grid;gap:2px;min-width:0}.weekly-headline-list b{font-size:11px;line-height:1.5}.weekly-headline-list small{color:#77849a;font-size:9px;line-height:1.45}.weekly-headline-list em{color:#3154dd;font-size:9px;font-style:normal;font-weight:800;white-space:nowrap}.weekly-headline-empty{margin:0;color:#7d8797;font-size:11px}
.weekly-brief-card header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.weekly-brief-card header b{display:block;font-size:17px;color:#14213d}.weekly-brief-card header small{display:block;margin-top:5px;color:#73819a;font-size:12px}.weekly-brief-card header em{padding:5px 9px;border-radius:999px;background:#edf2ff;color:#3154dd;font-size:11px;font-style:normal;font-weight:800;white-space:nowrap}
.weekly-brief-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0 12px}.weekly-brief-metrics span{display:grid;gap:4px;padding:10px 12px;border-radius:10px;background:#fff;border:1px solid #edf0f6}.weekly-brief-metrics small{color:#7b879b;font-size:11px}.weekly-brief-metrics b{font-size:18px;color:#14213d;font-variant-numeric:tabular-nums}.weekly-brief-card p{margin:0;color:#53627a;font-size:13px;line-height:1.7}
.weekly-trends{display:flex;gap:9px;flex-wrap:wrap;margin:0 0 12px}.weekly-trends>span,.weekly-trends>b{padding:8px 10px;border-radius:9px;font-size:12px}.weekly-trends span{display:grid;gap:3px;border:1px solid #edf0f6;background:#fff}.weekly-trends small{color:#718098}.weekly-trends b{font-variant-numeric:tabular-nums}.weekly-trends .up{color:#16815d;background:#effaf5}.weekly-trends .down{color:#d22f3d;background:#fff2f3}.weekly-trends .flat{color:#60708a}.weekly-trends>b{background:#edf2ff;color:#3154dd}.weekly-brief-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.weekly-brief-section{padding:12px;border-radius:11px;border:1px solid #e7ebf3;background:#fff}.weekly-brief-section h4{display:flex;justify-content:space-between;margin:0 0 8px;font-size:13px}.weekly-brief-section h4 em{font-size:11px;font-style:normal}.weekly-brief-section>div{padding:7px 0;border-top:1px solid #eef1f6}.weekly-brief-section>div b{display:block;font-size:13px;color:#17213a}.weekly-brief-section>div small{display:block;margin-top:3px;color:#687790;font-size:11px;line-height:1.55}.weekly-brief-section.new{border-left:3px solid #3154dd}.weekly-brief-section.archive{border-left:3px solid #7d8798}.weekly-brief-section.stopped{border-left:3px solid #d48a23}.weekly-brief-section.attention{border-left:3px solid #db3845;background:#fffafb}.weekly-brief-section.attention h4,.weekly-brief-section.attention>div b{color:#b52533}.weekly-brief-section.changed{border-left:3px solid #7656d8}.weekly-brief-section.empty{background:#fafbfd;color:#7b879b}.weekly-brief-section.empty h4{margin:0;font-weight:650}

@media(max-width:900px){
  .annual-ring-layout{grid-template-columns:150px minmax(0,1fr);gap:16px}
  .annual-ring{width:146px;height:146px}.annual-ring:after{width:94px;height:94px}
  .annual-ring strong{font-size:22px}.annual-ring-summary>b{font-size:24px}
}
@media(max-width:1120px) and (min-width:681px){
  .annual-overview-title{flex-wrap:wrap}
  .forecast-header-actions{justify-content:flex-start}
  .annual-overview-grid{gap:12px;padding-inline:18px}
}
@container (max-width:420px){
  .annual-ring-layout{grid-template-columns:minmax(0,1fr);justify-items:center;gap:12px}
  .annual-ring{width:148px;height:148px}.annual-ring:after{width:96px;height:96px}
  .annual-ring-summary{width:100%;justify-items:center;text-align:center}
  .annual-ring-summary>em{justify-self:stretch;white-space:normal}
  .annual-ring-card.distribution{grid-template-rows:auto minmax(168px,1fr) auto}
  .annual-distribution-bars{gap:8px;min-height:168px;padding-inline:6px;background-size:auto 42px}
  .annual-distribution-bar{grid-template-rows:auto 96px auto;gap:5px}
  .annual-distribution-bar>b{font-size:11px}
  .annual-distribution-bar-track{height:96px}
  .annual-distribution-bar-track i{width:min(46px,76%)}
  .annual-distribution-bar em{font-size:10px;line-height:1.25}
  .annual-distribution-bar small{font-size:9px}
}
@container (max-width:330px){
  .annual-ring-card{padding-inline:14px}
  .annual-ring-card-head{align-items:flex-start;flex-wrap:wrap}
  .annual-distribution-bars{gap:4px;padding-inline:2px}
  .annual-distribution-bar>b{font-size:10px}
  .annual-distribution-bar em{font-size:9px}
}
@media(max-width:680px){
  .engineering-upload-form{align-items:stretch}.engineering-upload-form label{min-width:100%}.engineering-upload-form button{width:100%}.engineering-document-row{align-items:flex-start;flex-direction:column}.engineering-document-actions{justify-content:flex-start}
  .annual-overview-title{align-items:flex-start}
  .annual-overview-grid{grid-template-columns:minmax(0,1fr);padding-inline:14px}
  .annual-ring{width:140px;height:140px}.annual-ring:after{width:90px;height:90px}
  .weekly-brief-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .weekly-brief-sections{grid-template-columns:1fr}
}
@media(max-width:420px){
  .annual-ring-card{padding:16px}
  .annual-ring-layout{grid-template-columns:minmax(0,1fr);justify-items:center}
  .annual-ring-summary{width:100%}
  .annual-ring-summary{text-align:center}
}

/* v5.5.119 — desktop annual overview: four compact charts in one row */
@media (min-width:1280px){
  .annual-overview-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:0 18px 18px}
  .annual-ring-card{gap:10px;padding:14px 15px}
  .annual-ring-card-head b{font-size:15px}
  .annual-ring-layout{grid-template-columns:132px minmax(0,1fr);gap:13px}
  .annual-ring{width:132px;height:132px}
  .annual-ring:after{width:112px;height:112px}
  .annual-ring strong{font-size:22px}
  .annual-ring-summary{gap:5px}
  .annual-ring-summary>b{font-size:24px}
  .annual-ring-summary>em{margin-top:3px;padding:6px 8px;font-size:11px;white-space:normal}
  .annual-ring-card.distribution{grid-template-rows:auto minmax(146px,1fr) auto}
  .annual-distribution-bars{min-height:146px;gap:10px;padding:6px 8px 0;background-size:auto 37px}
  .annual-distribution-bar{grid-template-rows:auto 88px auto;gap:5px}
  .annual-distribution-bar-track{height:88px}
  .annual-distribution-bar-track i{width:min(44px,72%)}
  .annual-distribution-bar>b{font-size:11px}
  .annual-distribution-bar em{font-size:10px}
}

/* v5.5.120 — retain four desktop cards without turning the data into thumbnails */
@media (min-width:1500px){
  .annual-overview-grid{gap:16px;padding:0 22px 24px}
  .annual-ring-card{min-height:270px;gap:14px;padding:18px}
  .annual-ring-card-head{padding-bottom:9px;border-bottom:1px solid #edf1f7}
  .annual-ring-card-head b{font-size:16px}
  .annual-ring-card-head em{font-size:11px}
  .annual-ring-layout{grid-template-columns:148px minmax(0,1fr);gap:16px}
  .annual-ring{width:146px;height:146px}
  .annual-ring:after{width:112px;height:112px}
  .annual-ring strong{font-size:24px}
  .annual-ring-summary{gap:7px}
  .annual-ring-summary>b{font-size:29px}
  .annual-ring-summary>small{font-size:12px}
  .annual-ring-summary>em{padding:8px 10px;font-size:12px}
  .annual-ring-summary>span{font-size:11px}
  .annual-ring-card.distribution{grid-template-rows:auto minmax(172px,1fr) auto;gap:12px}
  .annual-distribution-bars{min-height:172px;gap:16px;padding:8px 12px 0;background-size:auto 43px}
  .annual-distribution-bar{grid-template-rows:auto 108px auto;gap:7px}
  .annual-distribution-bar-track{height:108px}
  .annual-distribution-bar-track i{width:min(52px,72%)}
  .annual-distribution-bar>b{font-size:12px}
  .annual-distribution-bar em{font-size:11px}
  .annual-distribution-bar small,.annual-distribution-total{font-size:11px}
}

/* v5.5.122 — keep long amounts and their unit on one clear line inside the rings */
@media (min-width:1280px){
  .annual-ring>span{width:100%;max-width:100%}
  .annual-ring strong{display:flex;align-items:baseline;justify-content:center;max-width:100%;font-size:clamp(18px,1.22vw,21px);line-height:1;letter-spacing:-.045em;white-space:nowrap}
  .annual-ring small{margin:0 0 0 2px;font-size:10px;letter-spacing:0}
}

.weekly-brief-section.unit-chart{grid-column:1/-1;border-left:3px solid #1f9b77}.weekly-unit-columns{display:flex;align-items:end;gap:24px;min-height:172px;padding:10px 12px 0;border-bottom:1px solid #edf1f6}.weekly-unit-column{display:grid;grid-template-rows:auto 126px auto;justify-items:center;gap:7px;min-width:76px}.weekly-unit-column strong{font-size:13px;color:#16815d;font-variant-numeric:tabular-nums}.weekly-unit-column i{display:flex;align-items:end;justify-content:center;width:42px;height:126px;border-radius:8px 8px 0 0;background:linear-gradient(180deg,#eef7f3,#e4f1ec);overflow:hidden}.weekly-unit-column i em{display:block;width:100%;border-radius:8px 8px 0 0;background:linear-gradient(180deg,#54c79e,#1fa77d);box-shadow:0 5px 12px #1fa77d30}.weekly-unit-column b{max-width:92px;font-size:12px!important;text-align:center;line-height:1.45;overflow-wrap:anywhere}.weekly-unit-empty,.weekly-unit-missing{display:block;margin:0;color:#7b879b;font-size:11px;line-height:1.6}.weekly-unit-missing{margin-top:9px;color:#b27308}@media(max-width:680px){.weekly-unit-columns{gap:16px;overflow-x:auto}.weekly-unit-column{min-width:66px}}
.login-card>.login-auto-option{display:flex;align-items:center;gap:8px;margin:16px 0 -8px;color:#667085;font-size:12px;font-weight:500}.login-card>.login-auto-option input{width:16px;height:16px;margin:0;padding:0;accent-color:var(--blue)}
.login-remember-options{display:flex;align-items:center;gap:18px;margin:14px 0 -2px}.login-remember-options label{display:flex;align-items:center;gap:6px;margin:0;color:#667085;font-size:12px;font-weight:500;white-space:nowrap}.login-remember-options input{width:16px;height:16px;margin:0;padding:0;accent-color:var(--blue)}
#page-submissions .page-actions h2{font-size:24px}
#page-submissions .page-actions .muted{font-size:14px;line-height:1.65}
#page-submissions table{min-width:1120px}
#page-submissions th{padding:15px 14px;font-size:13px}
#page-submissions td{padding:16px 14px;font-size:14px;line-height:1.55;vertical-align:middle}
#page-submissions td b{font-size:15px}
#page-submissions td small{font-size:12px;line-height:1.45}
#page-submissions td button{margin:3px 5px 3px 0;padding:9px 12px;font-size:13px}
.submission-detail-grid{margin-bottom:2px}
/* 投影/扩展屏：仅在宽屏提高可读性，笔记本与窄屏保持原有布局。 */
@media (min-width:1500px){.page{font-size:16px}.panel-title h3,.section-head h3{font-size:16px}.panel-title p,.section-head>span{font-size:12px}.projects-table th{font-size:12px}.projects-table td{font-size:13px}.project-name-cell b{font-size:14px}.latest-progress span{font-size:12px}.detail-grid span{font-size:10px}.detail-grid b,.progress-line span{font-size:12px}}

/* v5.5.108 — desktop reading hierarchy and operation feedback */
.page-actions{padding:16px 18px;gap:14px}
.page-actions h2{font-size:21px;letter-spacing:.01em}
.page-actions .muted{margin:5px 0 0;line-height:1.6}
.page-actions>div:last-child{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.page-actions>div:last-child button+button{margin-left:0}
#page-projects .page-actions{flex-wrap:wrap}
#page-projects .filters{flex-wrap:wrap;max-width:100%;align-items:center}
#page-projects .filters .search{flex-shrink:0;max-width:100%}
#page-projects .filters select{flex-shrink:0;min-width:138px}
.primary,.secondary,.danger{display:inline-flex;align-items:center;justify-content:center;min-height:38px}
.primary:disabled,.secondary:disabled,.danger:disabled{cursor:wait;opacity:.62;transform:none}
.projects-table th{position:sticky;top:0;z-index:2}
.projects-table td,.projects-table th,.detail-grid b,.latest-progress span{font-variant-numeric:tabular-nums}
.latest-progress span{overflow-wrap:anywhere}
.detail-actions{position:sticky;top:0;z-index:2;padding:12px 0;background:linear-gradient(180deg,#fff 82%,#ffffff00)}
.detail-grid>div{min-height:76px}

/* v5.5.109 — compact project preview; full fields remain in the detail view */
#projectTrackingTable{min-width:1040px}
#projectTrackingTable .project-name-col{width:270px}
#projectTrackingTable .owner-col{width:230px}
#projectTrackingTable .number-col{width:145px}
#projectTrackingTable .progress-col{width:auto;min-width:0}
#projectTrackingTable .latest-progress span{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;white-space:normal}
#projectTrackingTable .project-name-col,#projectTrackingTable .project-name-cell{position:sticky;left:0}
.section-head{padding-top:6px}
.section-head h3{letter-spacing:.01em}
.form-error{margin:12px 0 0;padding:10px 12px;border:1px solid #f0c6ca;border-radius:9px;background:#fff7f7;color:#b4232d;font-size:13px;line-height:1.55}
.form-error:empty{display:none}

/* v5.5.111 — prioritize readable progress while sizing other columns to content */
#projectTrackingTable{min-width:1280px;table-layout:auto}
#projectTrackingTable .project-name-col{width:280px}
#projectTrackingTable .owner-col{width:310px}
#projectTrackingTable .number-col{width:155px;white-space:nowrap}
#projectTrackingTable .progress-col{width:42%;min-width:520px}
#projectTrackingTable .project-name-cell b,#projectTrackingTable .owner-cell span{white-space:normal;overflow-wrap:anywhere}
#projectTrackingTable .latest-progress{padding-top:18px;padding-bottom:18px}
#projectTrackingTable .latest-progress span{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden;line-height:1.85;white-space:normal}
#projectTrackingTable .project-operation-col,#projectTrackingTable .project-operation-cell{width:76px;min-width:76px}

/* v5.5.112 — increase project-list typography by two sizes, including projection mode */
#projectTrackingTable th{font-size:14px}
#projectTrackingTable td{font-size:15px}
#projectTrackingTable .project-name-cell b{font-size:16px}
#projectTrackingTable .project-name-cell small{font-size:12px}
#projectTrackingTable .latest-progress span{font-size:14px}
#projectTrackingTable .project-operation-cell .secondary{font-size:12px}
body.presentation-mode #projectTrackingTable th{font-size:20px;line-height:1.5;white-space:normal}
body.presentation-mode #projectTrackingTable td{font-size:22px;line-height:1.6}
body.presentation-mode #projectTrackingTable .project-name-cell b{font-size:24px;line-height:1.5}
body.presentation-mode #projectTrackingTable .project-name-cell small{font-size:14px}
body.presentation-mode #projectTrackingTable .latest-progress span{font-size:22px;display:block;overflow:visible;-webkit-line-clamp:unset;white-space:pre-wrap;overflow-wrap:anywhere}
body.presentation-mode #projectTrackingTable .project-operation-cell .secondary{font-size:14px}

/* v5.5.167 — keep project rows proportionate and wrap English owner names by words. */
#projectTrackingTable .project-name-cell{min-width:180px}
#projectTrackingTable .owner-cell{min-width:180px}
#projectTrackingTable .owner-cell span{display:block;white-space:normal;word-break:normal;overflow-wrap:break-word;hyphens:none;line-height:1.65}
#projectTrackingTable .number-cell{min-width:130px}
#projectTrackingTable .latest-progress{min-width:320px}
#projectTrackingTable .project-name-cell b,#projectTrackingTable .project-name-cell small{display:block;word-break:normal;overflow-wrap:break-word}
#projectTrackingTable tbody td{padding-top:16px;padding-bottom:16px}

/* v5.5.113 — center the two numeric preview columns */
#projectTrackingTable th.number-col,#projectTrackingTable td.number-cell{text-align:center;vertical-align:middle}

/* Desktop projection: retain only the five management-reading columns. */
@media (min-width:981px){
  body.presentation-mode #projectTrackingTable{width:100%;min-width:0;table-layout:fixed}
  body.presentation-mode #projectTrackingTable .owner-col,
  body.presentation-mode #projectTrackingTable .owner-cell,
  body.presentation-mode #projectTrackingTable .project-operation-col,
  body.presentation-mode #projectTrackingTable .project-operation-cell{display:none}
  body.presentation-mode #projectTrackingTable .sequence-col,
  body.presentation-mode #projectTrackingTable .sequence-cell{position:static;width:7%;min-width:0;padding-inline:12px;box-shadow:none}
  body.presentation-mode #projectTrackingTable .project-name-col,
  body.presentation-mode #projectTrackingTable .project-name-cell{position:static;left:auto;width:25%;box-shadow:none}
  body.presentation-mode #projectTrackingTable .project-name-cell small{display:none}
  body.presentation-mode #projectTrackingTable .number-col,
  body.presentation-mode #projectTrackingTable .number-cell{width:13%;white-space:normal;overflow-wrap:anywhere;text-align:center}
  body.presentation-mode #projectTrackingTable .progress-col,
  body.presentation-mode #projectTrackingTable .latest-progress{width:42%;min-width:0}
  body.presentation-mode #projectTrackingTable .latest-progress span{line-height:1.7}
}
@media (max-width:900px){
  .page-actions{align-items:flex-start;flex-direction:column}
  .page-actions>div:last-child{width:100%}
  .detail-grid>div{min-height:70px}
}

/* Unified desktop modal return: every overlay returns from its upper-left corner. */
.modal>header{position:relative}
.modal>header .modal-return-button{position:absolute;left:24px;top:50%;width:auto;height:34px;padding:0 10px;transform:translateY(-50%);border:1px solid #dce4f2;border-radius:8px;background:#fff;color:#3152d1;font-size:12px;font-weight:700}
.modal>header:has(.modal-return-button)>div{padding-left:84px}
.project-detail-page{max-width:1600px;margin:0 auto;width:100%}
.project-detail-page-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:24px;margin-bottom:20px;padding:24px;background:#fff;border:1px solid #e3e8f1;border-radius:14px}
.project-detail-heading{min-width:0}
.project-detail-page-head .overline{margin:0 0 8px;color:#78869b;font-size:12px;letter-spacing:1px}
.project-detail-page-head h2{margin:0;font-size:26px;line-height:1.45;color:#18253c;overflow-wrap:anywhere}
.project-detail-page-head .detail-return-button{min-height:40px;white-space:nowrap;margin:0}
.project-detail-page-head>.status{font-size:13px;line-height:1.5;padding:6px 12px;white-space:normal;max-width:180px;margin:0}
.project-detail-summary{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:14px;color:#607088;font-size:14px;line-height:1.6}
.project-detail-summary span{overflow-wrap:anywhere;min-width:0}
.project-detail-summary span+span{padding-left:18px;border-left:1px solid #e3e8f1}
.project-detail-page-layout{display:grid;grid-template-columns:minmax(360px,2fr) minmax(0,3fr);gap:18px;align-items:start}
.project-detail-page-layout>.detail-actions{grid-column:1/-1}
.project-detail-page-layout>.detail-grid{grid-column:1;grid-row:2/9;grid-template-columns:1fr 1fr;position:sticky;top:16px}
@media(max-width:700px){.project-detail-page-head{grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:18px}.project-detail-page-head .detail-return-button{justify-self:start}.project-detail-heading{grid-column:1/-1;grid-row:2}.project-detail-page-head>.status{grid-column:2;grid-row:1}.project-detail-page-head h2{font-size:22px}.project-detail-summary{font-size:13px}}
.project-detail-page-layout>.section-head,.project-detail-page-layout>.progress-lines,.project-detail-page-layout>.annotation-list,.project-detail-page-layout>.project-introduction,.project-detail-page-layout>.project-change-logs,.project-detail-page-layout>.timeline{grid-column:2}
.project-detail-page-layout>#returnProjectListBtn{display:none}
.status-tracking{--status-color:#2563eb}.status-unit{--status-color:#7c3aed}.status-won{--status-color:#16a34a}.status-longterm{--status-color:#e8930c}.status-stopped{--status-color:#8a94a6}
.status.status-tracking,.status.status-unit,.status.status-won,.status.status-longterm,.status.status-stopped{color:var(--status-color);background:color-mix(in srgb,var(--status-color) 10%,white);border-color:color-mix(in srgb,var(--status-color) 25%,white)}
.workbench-summary,.runtime-counts{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.workbench-summary>div,.runtime-counts>div,.runtime-hero>div{padding:18px;border:1px solid #e3e8f1;border-radius:14px;background:#fff}.workbench-summary span,.runtime-counts span,.runtime-hero span{display:block;color:#7b8493;font-size:12px}.workbench-summary b,.runtime-counts b,.runtime-hero b{display:block;margin-top:7px;font-size:25px;color:#152443}.workbench-summary .warn b,.work-task.overdue time{color:#c82132}.workbench-section{margin-bottom:16px;padding:18px}.workbench-section>h3{margin:0 0 14px}.work-projects,.work-annotations{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.work-projects button,.work-annotations button{display:flex;flex-direction:column;gap:5px;padding:14px;text-align:left;border:1px solid #e4e9f2;border-radius:12px;background:#fff}.work-projects span,.work-projects small,.work-annotations span,.work-annotations small{color:#778196}.work-tasks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.work-task{padding:15px;border:1px solid #e3e8f1;border-left:4px solid #4973c7;border-radius:12px;background:#fff}.work-task.overdue{border-left-color:#c82132}.work-task header{display:flex;justify-content:space-between;gap:10px}.work-task time{color:#7d8796;font-size:11px}.work-task h3{margin:12px 0 7px}.work-task p{white-space:pre-wrap;color:#475569}.work-task>small{color:#8791a0}.work-task footer{display:flex;gap:8px;margin-top:12px}.task-status{padding:4px 8px;border-radius:999px;background:#edf3ff;color:#315dba;font-size:10px;font-weight:800}.task-status.completed{background:#eaf8f1;color:#287958}.task-update{display:grid;gap:4px;margin-top:10px;padding-top:10px;border-top:1px dashed #e4e8ef}.task-update small{color:#8a94a3}.assignment-list{display:grid;gap:8px;max-height:55vh;overflow:auto}.assignment-list label{display:flex;gap:10px;align-items:flex-start;padding:11px;border:1px solid #e5e9f1;border-radius:10px}.assignment-list span,.assignment-list b,.assignment-list small{display:block}.assignment-list small{margin-top:3px;color:#8791a0}.runtime-hero{display:grid;grid-template-columns:2fr 1fr;gap:14px;margin-bottom:16px}.runtime-hero small{display:block;margin-top:5px;color:#8791a0}.runtime-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;padding:1px;background:#e4e9f1;margin-bottom:16px}.runtime-grid>div{display:flex;justify-content:space-between;padding:16px;background:#fff}.runtime-ok{color:#24805c}.runtime-detail{padding:18px}.runtime-detail p{margin:7px 0}
@media(max-width:1100px){.project-detail-page-layout{grid-template-columns:1fr}.project-detail-page-layout>.detail-grid,.project-detail-page-layout>.section-head,.project-detail-page-layout>.progress-lines,.project-detail-page-layout>.annotation-list,.project-detail-page-layout>.project-introduction,.project-detail-page-layout>.project-change-logs,.project-detail-page-layout>.timeline{grid-column:1;grid-row:auto;position:static}}

/* v5.5.165 — leadership annotations and accountable risk traces. */
.annotation-reminder{display:grid;grid-template-columns:240px 1fr;gap:18px;align-items:center;margin:0 0 18px;padding:16px 18px;border:1px solid #ead9bc;border-left:4px solid #b88932;border-radius:14px;background:linear-gradient(135deg,#fffcf5,#fff)}
.annotation-reminder>div:first-child span,.annotation-reminder>div:first-child b,.annotation-reminder>div:first-child small{display:block}.annotation-reminder>div:first-child span{color:#8b641d;font-size:11px;font-weight:800}.annotation-reminder>div:first-child b{margin:3px 0;font-size:18px}.annotation-reminder>div:first-child small{color:#7d8491;font-size:11px}.annotation-reminder>div:last-child{display:flex;gap:9px;min-width:0}.annotation-reminder button{min-width:0;flex:1;padding:10px 12px;text-align:left;border:1px solid #eee5d7;border-radius:10px;background:#fff}.annotation-reminder button span,.annotation-reminder button em{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.annotation-reminder button span{font-weight:700}.annotation-reminder button em{margin-top:4px;color:#8b641d;font-size:10px;font-style:normal}
.global-annotation-alert{position:fixed;z-index:72;top:18px;right:118px;display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:7px 11px;border:1px solid #efc8cc;border-radius:999px;background:#fff;color:#9f1e2c;font-size:12px;font-weight:800;box-shadow:0 8px 24px #6f10251f}.global-annotation-alert b{display:grid;place-items:center;min-width:21px;height:21px;padding:0 5px;border-radius:999px;background:#c82132;color:#fff;font-size:11px}.global-annotation-alert.hidden{display:none}
.annotation-list{display:grid;gap:11px}.annotation-card{padding:15px 16px;border:1px solid #e5e9f1;border-left:4px solid #9aa5b5;border-radius:12px;background:#fff}.annotation-card.working{border-left-color:#2f6fd6}.annotation-card.confirm{border-left-color:#b88932}.annotation-card.done{border-left-color:#2c9567;background:#fbfefc}.annotation-card>header{display:flex;align-items:center;gap:12px}.annotation-card>header b{font-size:12px}.annotation-card>header time{margin-left:auto;color:#7b8493;font-size:11px}.annotation-status{padding:4px 8px;border-radius:999px;background:#f1f3f6;color:#596477;font-size:10px;font-weight:800}.annotation-card.working .annotation-status{background:#edf4ff;color:#2f62bd}.annotation-card.confirm .annotation-status{background:#fff5df;color:#956612}.annotation-card.done .annotation-status{background:#eaf8f1;color:#237b57}.annotation-card>p{margin:12px 0 7px;font-size:14px;line-height:1.7;white-space:pre-wrap}.annotation-card>small{color:#8a93a1}.annotation-card>footer{display:flex;gap:8px;margin-top:12px}.annotation-updates{margin-top:12px;border-top:1px solid #edf0f4}.annotation-updates>div{display:grid;grid-template-columns:74px 1fr auto;gap:10px;padding:10px 0;border-bottom:1px dashed #e6eaf0}.annotation-updates span{white-space:pre-wrap}.annotation-updates small{color:#8992a0}.audit-category{display:inline-block;padding:3px 7px;border-radius:999px;background:#eef2f7;color:#526078;font-size:10px;font-weight:700}.audit-category.risk{background:#fff0f0;color:#b3262e}
.security-watermark{position:fixed;inset:0;z-index:45;pointer-events:none;display:grid;grid-template-columns:repeat(3,1fr);align-content:space-around;justify-items:center;overflow:hidden;opacity:.055;color:#152a4d;font-size:13px;font-weight:700;transform:rotate(-18deg);transform-origin:center}.security-watermark span{white-space:nowrap}.modal-backdrop,.toast{z-index:50}.toast{z-index:70}
@media(max-width:900px){.annotation-reminder{grid-template-columns:1fr}.annotation-reminder>div:last-child{overflow:auto}.annotation-reminder button{min-width:210px}.annotation-card>header{align-items:flex-start;flex-wrap:wrap}.annotation-card>header time{margin-left:0}.annotation-updates>div{grid-template-columns:1fr}.security-watermark{grid-template-columns:repeat(2,1fr)}}
.nav-task-badge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:#d71920;color:#fff;font-size:12px;line-height:20px;text-align:center}
.handler-picker{border:1px solid #dfe5ef;border-radius:12px;padding:14px 16px;margin:4px 0 16px;background:#f8fafc}.handler-picker legend{padding:0 6px;font-weight:700;color:#172033}.handler-picker>div{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}.handler-picker label{display:grid;grid-template-columns:auto auto;column-gap:7px;align-items:center;min-width:160px;padding:10px 12px;border:1px solid #e2e7ef;border-radius:10px;background:#fff;cursor:pointer}.handler-picker label input{grid-row:1/3;width:17px;height:17px}.handler-picker label span{font-weight:700}.handler-picker label small{color:#7a8496}
