:root{--bg: #101417;--panel: #171d21;--panel-2: #1f272c;--line: #334047;--text: #edf2f2;--muted: #9aa8a8;--primary: #2fb8a5;--info: #5f9fd6;--warning: #d99a32;--danger: #d65f4f;--ok: #64b86a;--chip: #263238;--grid: rgba(180,205,205,.08);color-scheme:dark;font-family:Noto Sans SC,Source Han Sans SC,PingFang SC,sans-serif}*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--text);background:linear-gradient(90deg,var(--grid) 1px,transparent 1px) 0 0 / 42px 42px,linear-gradient(var(--grid) 1px,transparent 1px) 0 0 / 42px 42px,linear-gradient(135deg,#0b0f11 0%,var(--bg) 52%,#111719 100%)}button,select,input{font:inherit}button{cursor:pointer}#app{display:grid;min-height:100vh}#app:has(.login-screen){grid-template-columns:1fr}#app:not(:has(.login-screen)){grid-template-columns:286px minmax(0,1fr)}.login-screen{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(460px,.92fr);background:#090d0f}.login-hero{position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(180deg,rgba(47,184,165,.12),transparent 36%),linear-gradient(115deg,#0a1112f2,#090d0ffa 48%,#121a1ef2);border-right:1px solid rgba(95,159,214,.18)}.hero-grid{position:absolute;inset:0;background:linear-gradient(90deg,rgba(95,159,214,.09) 1px,transparent 1px) 0 0 / 56px 56px,linear-gradient(rgba(95,159,214,.07) 1px,transparent 1px) 0 0 / 56px 56px,linear-gradient(90deg,transparent 0 49%,rgba(47,184,165,.18) 49% 51%,transparent 51% 100%);opacity:.72}.hero-scanline{position:absolute;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(47,184,165,.78),transparent);opacity:.45;animation:scanmove 4.5s ease-in-out infinite}.hero-content{position:relative;z-index:1;width:min(640px,calc(100% - 80px));padding:48px 0}.hero-tag{margin:0 0 16px;color:var(--primary);letter-spacing:.32em;font:600 11px Menlo,monospace}.hero-title{margin:0 0 22px;font-size:clamp(36px,4.5vw,56px);line-height:1.08;letter-spacing:0;background:linear-gradient(135deg,#f7fbfb 30%,#9ee5db 72%,#f0b44a);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-desc{max-width:520px;margin:0 0 30px;color:#aab7b7;line-height:1.8;font-size:15px;letter-spacing:0}.hero-dashboard{display:grid;gap:12px;width:min(520px,100%);margin:0 0 30px;padding:18px;border:1px solid rgba(95,159,214,.22);border-radius:8px;background:#080c0e7a;box-shadow:inset 0 1px #ffffff0a}.signal-row{display:grid;grid-template-columns:132px 1fr 44px;align-items:center;gap:12px;color:#8fa0a0;font:11px Menlo,monospace;letter-spacing:.08em}.signal-row i{display:block;height:7px;border-radius:999px;background:linear-gradient(90deg,var(--primary) 0 var(--w),rgba(95,159,214,.16) var(--w) 100%);box-shadow:0 0 18px #2fb8a526}.signal-row b{color:#e9f1f0;font-weight:700;text-align:right}.hero-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;width:min(520px,100%);margin-bottom:28px}.hero-stat{min-width:0;padding:14px 16px;border:1px solid rgba(47,184,165,.24);border-radius:8px;background:#2fb8a50d}.hero-stat em{display:block;font-style:normal;color:var(--muted);font-size:11px;letter-spacing:.08em;margin-bottom:6px}.hero-stat strong{font:700 30px DIN Alternate,Menlo,monospace;color:#9ee5db}.hero-clock{display:flex;align-items:center;gap:10px;color:#95a3a3;font:11px Menlo,monospace;letter-spacing:.08em}.clock-dot{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 12px var(--ok);animation:pulse 1.7s infinite}.login-panel{display:flex;align-items:center;justify-content:center;min-width:0;padding:clamp(28px,4vw,56px);background:linear-gradient(180deg,#11181c,#0d1215);overflow-y:auto}.login-card{position:relative;width:min(100%,540px);max-height:calc(100vh - 56px);overflow-y:auto;padding:clamp(28px,3.4vw,42px);border:1px solid rgba(158,229,219,.24);border-radius:8px;background:linear-gradient(180deg,#182025f5,#0e1417fa);box-shadow:0 30px 80px #0000006b,inset 0 1px #ffffff0d}.login-card:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,var(--primary),var(--info),var(--warning))}.auth-card-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:10px}.card-label{margin:0 0 6px;color:var(--info);letter-spacing:.24em;font:600 11px Menlo,monospace}.login-card h2{margin:0;font-size:30px;line-height:1.18;letter-spacing:0}.auth-status{display:inline-flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid rgba(100,184,106,.25);border-radius:999px;color:#a3d9a7;background:#64b86a14;font:700 11px Menlo,monospace;letter-spacing:.08em}.auth-status span{width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 10px #64b86acc}.auth-copy{margin:0 0 22px;color:#a4b0b0;line-height:1.7;font-size:14px}.auth-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 24px}.auth-tab{min-width:0;min-height:62px;padding:11px 14px;border:1px solid rgba(95,159,214,.24);border-radius:8px;color:#c3cdcd;background:#080c0e85;cursor:pointer;text-align:left;transition:color .15s,background .15s,border-color .15s,transform .15s}.auth-tab span,.auth-tab small{display:block}.auth-tab span{font-weight:800;font-size:15px;letter-spacing:.04em}.auth-tab small{margin-top:5px;color:#819191;font-size:12px;letter-spacing:0}.auth-tab.is-active{color:#06110f;border-color:#2fb8a5d9;background:linear-gradient(135deg,#51cdbf,#f0b44a);box-shadow:0 12px 30px #2fb8a51f}.auth-tab.is-active small{color:#06110fb8}.auth-tab:not(.is-active):hover{color:var(--text);border-color:#5f9fd673;transform:translateY(-1px)}.login-form{position:relative;display:grid;gap:18px}.auth-form[hidden],.login-card .auth-form[hidden]{display:none!important}.register-form{gap:14px}.register-intro{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:13px 14px;border:1px solid rgba(95,159,214,.2);border-radius:8px;color:#e9eeee;background:#5f9fd612}.register-intro strong{font-size:14px;letter-spacing:0}.register-intro span{color:#8f9d9d;font-size:12px;text-align:right}.register-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.field label{display:block;margin-bottom:8px;color:#a8b4b4;font-size:12px;font-weight:700;letter-spacing:0}.input-wrap{display:flex;align-items:center;gap:10px;min-height:52px;border:1px solid rgba(95,159,214,.28);border-radius:8px;background:#070b0dc2;padding:0 14px;color:var(--muted);transition:border-color .2s,box-shadow .2s,background .2s}.input-wrap:focus-within{border-color:var(--primary);background:#070b0df2;box-shadow:0 0 0 3px #2fb8a51f,0 18px 32px #0000002e}.input-wrap svg{flex-shrink:0;opacity:.55}.input-wrap:focus-within svg{opacity:1;color:var(--primary)}.login-form input,.login-form select{flex:1;min-width:0;width:100%;color:var(--text);border:none;background:transparent;padding:13px 0;outline:none;font-size:14px}.login-form select{appearance:none;cursor:pointer}.login-form select option{color:#101820;background:#f4f7f8}.login-form input::placeholder{color:#9aa8a87a}.login-button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:54px;margin-top:2px;padding:15px 20px;border:1px solid rgba(217,154,50,.58);border-radius:8px;color:#0e0b04;background:linear-gradient(135deg,#f2c766,#d99a32);font-weight:800;font-size:15px;letter-spacing:.04em;transition:filter .15s,transform .15s}.login-button:hover{filter:brightness(1.1);transform:translateY(-1px)}.login-button:active{transform:translateY(0)}.login-button:disabled{cursor:wait;filter:saturate(.75) brightness(.88);transform:none}.login-button.is-loading{opacity:.82}.login-error{margin:0;min-height:20px;color:var(--danger);font-size:13px;text-align:center}.auth-aux{margin:0;text-align:center}.auth-link{padding:4px 6px;border:none;background:none;color:#8fb6db;font-size:13px;letter-spacing:.02em;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.auth-link:hover{color:#cfe0f0}.auth-link:focus-visible{outline:2px solid rgba(95,159,214,.6);outline-offset:2px;border-radius:4px}.logout-button{padding:8px 12px;border:1px solid rgba(217,154,50,.5);color:#0e0b04;background:linear-gradient(135deg,#e8b44a,#d99a32);font-weight:800;letter-spacing:.08em}.logout-button:hover{filter:brightness(1.08)}.sidebar{position:sticky;top:0;height:100vh;padding:24px 18px;border-right:1px solid var(--line);background:linear-gradient(180deg,#171d21fa,#101417ed);box-shadow:18px 0 60px #00000047;display:flex;flex-direction:column;overflow:hidden}.brand{display:flex;align-items:center;gap:13px;margin-bottom:28px}.brand-mark{width:46px;height:46px;display:grid;place-items:center;border:1px solid rgba(47,184,165,.55);background:linear-gradient(145deg,#2fb8a538,#5f9fd61f);color:var(--primary);font-family:DIN Condensed,Menlo,monospace;letter-spacing:1px}.brand strong{display:block;font-size:18px;letter-spacing:.04em}.brand span,.sidebar-foot small{color:var(--muted);font-size:12px}.nav{display:flex;flex-direction:column;gap:0;flex:1;overflow-y:auto;min-height:0;padding:4px 0 8px}.nav-group{margin-bottom:18px}.nav-group:last-child{margin-bottom:8px}.nav-group-header{width:100%;display:flex;align-items:center;gap:8px;padding:6px 16px;background:transparent;border:none;color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;text-align:left;cursor:pointer;opacity:.8;transition:opacity .15s ease,color .15s ease}.nav-group-header:hover{color:var(--text);opacity:1}.nav-group-icon{width:14px;height:14px;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);opacity:.9;flex-shrink:0}.nav-group-icon svg{display:block}.nav-group-label{flex:1}.nav-group-caret{width:12px;height:12px;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);opacity:.5;transition:transform .2s ease,opacity .15s ease}.nav-group-caret svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:2;display:block}.nav-group-header:hover .nav-group-caret{opacity:.85}.nav-group.is-collapsed .nav-group-caret{transform:rotate(-90deg)}.nav-group-items{list-style:none;margin:2px 0 0;padding:0;max-height:800px;overflow:hidden;visibility:visible;pointer-events:auto;transition:max-height .25s ease}.nav-group-items>li{display:block}.nav-group.is-collapsed .nav-group-items{max-height:0;visibility:hidden;pointer-events:none}.nav-item{position:relative;width:calc(100% - 16px);padding:7px 14px 7px 36px;margin:1px 8px;display:flex;gap:10px;align-items:center;color:var(--text);border:1px solid transparent;background:transparent;border-radius:6px;text-align:left;font-size:13px;line-height:1.4;cursor:pointer;transition:background .15s ease,color .15s ease}.nav-item-code{color:var(--muted);font-family:ui-monospace,SF Mono,DIN Alternate,Menlo,monospace;font-size:10px;letter-spacing:.02em;min-width:44px;flex-shrink:0}.nav-item-label{flex:1;color:var(--text);font-family:inherit;font-size:13px;opacity:.85}.nav-item:hover{background:#ffffff0a}.nav-item:hover .nav-item-label{opacity:1}.nav-item.is-active,.nav-item.active{background:#2fb8a50f;color:var(--text)}.nav-item.is-active .nav-item-label,.nav-item.active .nav-item-label{opacity:1;font-weight:500}.nav-item.is-active .nav-item-code,.nav-item.active .nav-item-code{color:var(--primary);font-weight:500}.nav-item.is-active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:16px;background:var(--primary);border-radius:2px}.nav-item.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:16px;background:var(--primary);border-radius:2px}.sidebar-foot{flex-shrink:0;margin-top:auto;padding:16px;border:1px solid var(--line);background:var(--chip)}.sidebar-foot span,.sidebar-foot strong,.sidebar-foot small{display:block}.sidebar-foot strong{color:var(--ok);margin:4px 0}.main{min-width:0}.topbar{position:sticky;top:0;z-index:5;display:grid;grid-template-columns:auto minmax(280px,1fr) auto;align-items:center;gap:16px;padding:18px 28px;border-bottom:1px solid var(--line);background:#101417db;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.topbar-left,.topbar-right{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.user-status{justify-content:center;padding:8px 12px;border:1px solid rgba(95,159,214,.34);background:#1f272c85}.user-status span{display:grid;gap:3px}.user-status em{color:var(--muted);font-size:11px;font-style:normal}.user-status strong{color:var(--text);font-size:13px}.logout-button{padding:8px 12px}label,.topbar-right span{color:var(--muted);font-size:13px}select,.import-link{margin-left:8px;color:var(--text);border:1px solid var(--line);background:var(--panel-2);padding:8px 11px}.import-link{margin-left:0;color:var(--primary)}.content{padding:28px}.page-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-end;margin-bottom:22px}.eyebrow{color:var(--primary);letter-spacing:.32em;font:12px Menlo,monospace;margin:0 0 8px}h1{margin:0;font-size:clamp(30px,4vw,54px);letter-spacing:-.05em}.page-head span{color:var(--muted);display:block;margin-top:9px}.pulse-panel{min-width:190px;padding:15px;border:1px solid var(--line);background:#1f272cc7}.pulse-panel i{display:inline-block;width:9px;height:9px;margin-right:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 18px var(--ok);animation:pulse 1.7s infinite}.pulse-panel strong,.pulse-panel small{display:block}.pulse-panel small{color:var(--muted);margin-top:4px}.war-cards{display:grid;grid-template-columns:repeat(6,minmax(140px,1fr));gap:14px;margin-bottom:18px}@media(max-width:1280px){.war-cards{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}.war-card,.panel,.task-card{position:relative;overflow:hidden;border:1px solid var(--line);background:linear-gradient(145deg,#1f272cf5,#171d21f0);box-shadow:0 22px 70px #0000003d}.war-card{min-height:150px;padding:18px}.war-card:before,.panel:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent,rgba(255,255,255,.045),transparent);transform:translate(-120%);animation:sweep 5s ease-in-out infinite}.war-card span,.war-card small{color:var(--muted);display:block}.war-card strong{display:block;margin:20px 0 12px;font:38px DIN Alternate,Menlo,monospace}.war-card.info strong{color:var(--info)}.war-card.warning strong{color:var(--warning)}.war-card.danger strong{color:var(--danger)}.war-card-clickable{cursor:pointer;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.war-card-clickable:hover{transform:translateY(-1px);border-color:var(--primary);box-shadow:0 24px 76px #00000052,0 0 0 1px #4080c840 inset}.war-card-clickable:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.scan-line{position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--primary);opacity:.75}.two-col{display:grid;grid-template-columns:1.35fr .85fr;gap:18px}.panel{padding:20px;margin-bottom:18px}h2{margin:0 0 16px;font-size:18px;letter-spacing:.02em}.table-wrap{overflow-x:auto;border:1px solid rgba(51,64,71,.72)}table{width:100%;border-collapse:collapse;min-width:920px}th,td{padding:13px 14px;border-bottom:1px solid rgba(51,64,71,.7);text-align:left;white-space:nowrap}th{color:var(--muted);font-size:12px;letter-spacing:.08em;background:#263238ad}td{color:#dbe4e4;font-size:14px}.badge{display:inline-flex;align-items:center;padding:4px 9px;border:1px solid currentColor;background:#263238c2;font-size:12px}.badge.danger{color:var(--danger)}.badge.warning{color:var(--warning)}.badge.ok{color:var(--ok)}.badge.info{color:var(--info)}.progress{min-width:132px;height:20px;position:relative;background:#11181b;border:1px solid var(--line)}.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--primary),var(--info))}.progress em{position:absolute;inset:0;display:grid;place-items:center;font:11px Menlo,monospace;color:var(--text);font-style:normal}.task-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.task-board.compact{grid-template-columns:1fr}.task-card{padding:15px}.task-card div{display:flex;justify-content:space-between;gap:10px;align-items:start}.task-card p,.task-card span,.task-card small{color:var(--muted)}.task-card p{margin:9px 0}.task-card span{display:block;margin-bottom:11px;font-size:12px}.task-card small{display:block;margin-top:10px}.signal-list{display:grid;gap:12px}.signal-list div{display:flex;justify-content:space-between;gap:16px;padding:14px;background:#2632388c;border:1px solid rgba(51,64,71,.72)}.bar-grid{display:grid;gap:14px}.bar-row{display:grid;grid-template-columns:150px 1fr 120px minmax(220px,1fr);gap:14px;align-items:center}.bar-row div{height:28px;border:1px solid var(--line);background:#11181b}.bar-row i{display:block;height:100%;background:linear-gradient(90deg,var(--primary),var(--warning))}.bar-row b{font-family:Menlo,monospace;color:var(--info)}.bar-row small{color:var(--muted)}.reveal{animation:rise .5s ease both}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes sweep{45%,to{transform:translate(120%)}}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.6);opacity:.45}}@keyframes scanmove{0%{top:8%}50%{top:88%}to{top:8%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important}.reveal,.war-card:before,.panel:before,.pulse-panel i,.hero-scanline,.clock-dot{animation:none!important}.reveal{opacity:1;transform:none}.war-card:before,.panel:before{transform:none;opacity:.18}.pulse-panel i{transform:none;opacity:1}.hero-scanline{top:50%;opacity:.3}.clock-dot{opacity:1}}@media(max-width:1120px){#app,.login-screen{grid-template-columns:1fr}.login-hero{min-height:auto;align-items:flex-start}.hero-content{width:min(760px,calc(100% - 48px));padding:56px 0 36px}.login-panel{border-left:none;border-top:1px solid rgba(95,159,214,.2);overflow:visible}.login-card{max-height:none}.topbar{grid-template-columns:1fr}.topbar-left,.topbar-right,.user-status{justify-content:flex-start}.sidebar{position:relative;height:auto;display:block;overflow:visible}.nav{grid-template-columns:repeat(3,minmax(0,1fr));flex:none;overflow-y:visible;padding-bottom:0}.sidebar-foot{margin-top:16px}.war-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.two-col{grid-template-columns:1fr}}@media(max-width:720px){.content,.topbar{padding:16px}.login-hero{padding:0}.hero-content{width:calc(100% - 32px);padding:34px 0 24px}.hero-dashboard{padding:14px}.signal-row{grid-template-columns:1fr 44px;gap:8px}.signal-row i{grid-column:1 / -1}.signal-row b{grid-column:2;grid-row:1}.hero-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.hero-stat{padding:10px 14px}.hero-stat strong{font-size:24px}.hero-title{font-size:28px}.login-panel{padding:24px 16px}.login-card{padding:24px 18px}.auth-card-head{flex-direction:column;align-items:flex-start}.auth-tabs{gap:8px}.auth-tab{min-height:58px;padding:10px 12px}.register-intro{align-items:flex-start;flex-direction:column}.register-intro span{text-align:left}.register-grid{grid-template-columns:1fr}.topbar,.page-head{align-items:stretch}.topbar-left,.topbar-right,.user-status{flex-direction:column;align-items:stretch}.user-status span{display:flex;justify-content:space-between}.nav,.war-cards,.bar-row{grid-template-columns:1fr}h1{font-size:32px}}.mobile-menu-toggle,.sidebar-backdrop{display:none}@media(max-width:640px){#app:not(:has(.login-screen)){grid-template-columns:1fr}.sidebar{position:fixed;top:0;left:0;height:100vh;width:260px;max-width:80vw;display:flex;flex-direction:column;overflow:hidden;transform:translate(-100%);transition:transform .25s ease;z-index:90;box-shadow:4px 0 12px #0000004d}.sidebar.is-open{transform:translate(0)}.nav{grid-template-columns:1fr;flex:1;overflow-y:auto;padding-bottom:8px}.sidebar-foot{margin-top:auto}.main{margin-left:0;max-width:100vw;overflow-x:auto}.content{padding:12px}.mobile-menu-toggle{display:block;position:fixed;top:12px;left:12px;z-index:100;background:#0f172af2;border:1px solid rgba(255,255,255,.15);border-radius:8px;width:44px;height:44px;cursor:pointer;color:#e2e8f0;font-size:20px;line-height:1}.sidebar-backdrop{display:none;position:fixed;inset:0;background:#00000080;z-index:88}body.sidebar-open .sidebar-backdrop{display:block}body.sidebar-open .main{pointer-events:none}}.user-admin-panel{padding:24px}.user-admin-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.user-admin-header h2{margin:0;font-size:18px;color:#e2e8f0}.user-admin-table-wrapper{overflow-x:auto;border-radius:8px;border:1px solid rgba(148,163,184,.2)}.user-admin-table{width:100%;border-collapse:collapse;font-size:13px}.user-admin-table thead{background:#1e293bcc}.user-admin-table th,.user-admin-table td{padding:10px 12px;text-align:left;border-bottom:1px solid rgba(148,163,184,.12);color:#cbd5e1}.user-admin-table th{font-weight:600;color:#94a3b8;font-size:12px;text-transform:uppercase;letter-spacing:.5px}.user-admin-table tbody tr:hover{background:#1e293b59}.user-admin-actions{display:flex;gap:8px}.user-admin-role-select{padding:4px 8px;background:#0f172a;border:1px solid #334155;color:#e2e8f0;border-radius:4px;font-size:13px}.user-admin-role-select:disabled{opacity:.5;cursor:not-allowed}.user-admin-modal-backdrop{position:fixed;inset:0;background:#000000a6;z-index:200;display:flex;align-items:center;justify-content:center}.user-admin-modal{background:#1e293b;border-radius:12px;padding:24px 28px;width:min(520px,92vw);max-height:92vh;overflow-y:auto;border:1px solid rgba(148,163,184,.25);box-shadow:0 20px 60px #0000008c}.user-admin-modal h3{margin:0 0 18px;color:#f1f5f9}.user-admin-form{display:flex;flex-direction:column;gap:12px}.user-admin-form label{display:flex;flex-direction:column;gap:4px}.user-admin-form label span{font-size:12px;color:#94a3b8}.user-admin-menu-fieldset{margin:2px 0;padding:10px 12px;border:1px solid rgba(255,255,255,.1);border-radius:8px}.user-admin-menu-fieldset legend{padding:0 6px;font-size:12px;color:#94a3b8}.user-admin-menu-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 12px}.user-admin-menu-item{flex-direction:row!important;align-items:center;gap:6px;font-size:13px;color:#cbd5e1;cursor:pointer}.user-admin-menu-item input{width:auto}.user-admin-form input,.user-admin-form select{padding:8px 10px;background:#0f172a;border:1px solid #334155;color:#e2e8f0;border-radius:6px;font-size:14px}.user-admin-form input:focus,.user-admin-form select:focus{outline:none;border-color:#38bdf8}.user-admin-checkbox{flex-direction:row!important;align-items:center;gap:8px!important}.user-admin-checkbox input{width:16px;height:16px}.user-admin-modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:12px}.password-modal-backdrop{position:fixed;inset:0;background:#000000b3;z-index:300;display:flex;align-items:center;justify-content:center}.password-modal{background:#1e293b;border-radius:12px;padding:28px 32px;width:min(480px,92vw);border:1px solid rgba(148,163,184,.25);box-shadow:0 20px 60px #0009}.password-modal.password-modal-locked{border-color:#f87171;box-shadow:0 0 0 3px #f8717126}.password-modal-title{margin:0 0 8px;color:#f1f5f9;font-size:18px}.password-modal-hint{margin:0 0 16px;color:#fca5a5;font-size:13px;line-height:1.5}.password-modal-form{display:flex;flex-direction:column;gap:14px}.password-modal-form label{display:flex;flex-direction:column;gap:4px}.password-modal-form label span{font-size:12px;color:#94a3b8}.password-modal-form input{padding:9px 12px;background:#0f172a;border:1px solid #334155;color:#e2e8f0;border-radius:6px;font-size:14px}.password-modal-form input:focus{outline:none;border-color:#38bdf8}.password-modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:12px}.risk-kpi-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.risk-kpi-chip{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px 8px;background:#26323899;border:1px solid rgba(51,64,71,.72);border-radius:8px;text-align:center}.risk-kpi-chip .risk-kpi-num{font:600 22px DIN Alternate,Menlo,monospace;line-height:1}.risk-kpi-chip small{display:block;margin-top:6px;font-size:11px;letter-spacing:.04em;color:var(--muted)}.risk-kpi-chip.danger .risk-kpi-num{color:var(--danger)}.risk-kpi-chip.warning .risk-kpi-num{color:var(--warning)}.risk-kpi-chip.info .risk-kpi-num{color:var(--info)}.risk-task-table-wrap{max-height:360px;overflow-y:auto;border:1px solid rgba(51,64,71,.72);border-radius:8px;background:#171d21a6}.risk-task-table{width:100%;min-width:0;border-collapse:collapse}.risk-task-table thead th{position:sticky;top:0;z-index:1;background:#263238eb;color:var(--muted);font-size:11px;letter-spacing:.06em;padding:8px 10px;text-align:left;white-space:nowrap}.risk-task-table tbody td{height:32px;padding:4px 10px;border-bottom:1px solid rgba(51,64,71,.5);font-size:12px;color:#dbe4e4;white-space:nowrap}.risk-task-table tbody tr:hover{background:#26323880}.risk-task-table .rt-code{font:11px Menlo,monospace;color:var(--info)}.risk-task-table .rt-title{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.risk-task-table .rt-progress{display:flex;align-items:center;gap:6px;min-width:110px}.risk-task-table .rt-bar{flex:1;height:6px;background:#11181b;border-radius:3px;overflow:hidden}.risk-task-table .rt-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--primary),var(--info))}.risk-task-table .rt-progress span{min-width:32px;text-align:right;font:11px Menlo,monospace;color:var(--muted)}.risk-task-empty{padding:24px;text-align:center;color:var(--muted);background:#26323866;border:1px dashed rgba(51,64,71,.72);border-radius:8px}.risk-task-footer{display:block;padding:10px;text-align:center;font-size:12px;color:var(--primary);border-top:1px solid rgba(51,64,71,.5);text-decoration:none}.risk-task-footer:hover{background:#26323880}.version-timeline{display:flex;flex-wrap:wrap;align-items:center;gap:8px;max-height:60px;overflow:hidden;padding:4px 0}.version-chip{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:16px;font-size:12px;line-height:1;border:1px solid rgba(255,255,255,.08);background:#26323899;color:#e6e8eb;white-space:nowrap;cursor:default;transition:transform .12s ease}.version-chip:hover{transform:translateY(-1px)}.version-chip>b{font-weight:600}.version-chip>i{font-style:normal;opacity:.75;font-size:11px}.version-chip.risk-high{background:#f5222d2e;border-color:#f5222d73;color:#ff9a9f}.version-chip.risk-mid{background:#fa8c162e;border-color:#fa8c1673;color:#ffc069}.version-chip.risk-low{background:#52c41a2e;border-color:#52c41a73;color:#95de64}.version-chip.risk-neutral{background:#8c8c8c2e;border-color:#8c8c8c66;color:#c0c4cc}.version-timeline-more{display:inline-flex;align-items:center;height:32px;padding:0 12px;border-radius:16px;font-size:12px;background:transparent;border:1px dashed rgba(255,255,255,.2);color:var(--primary, #3370ff);cursor:pointer;font:inherit}.version-timeline-more:hover{background:#3370ff14;border-color:#3370ff73}.version-timeline-empty{padding:12px 0;color:#e6e8eb8c}.dash-panel{padding:8px 0}.dash-panel-title{font-weight:600;font-size:14px;margin-bottom:8px;color:var(--text)}.dash-progress{display:flex;align-items:center;gap:10px;margin-bottom:10px}.dash-progress-bar{flex:1;height:10px;background:var(--chip);border-radius:6px;overflow:hidden}.dash-progress-bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--ok),#4ea455)}.dash-progress-label{font-size:13px;color:var(--muted);white-space:nowrap}.dash-chips{display:flex;flex-wrap:wrap;gap:8px}.dash-chip{font-size:12px;padding:3px 10px;border-radius:12px;background:var(--chip);color:var(--muted)}.dash-chip b{margin-right:4px;font-size:14px}.dash-chip.ok{background:#64b86a29;color:var(--ok)}.dash-chip.info{background:#5f9fd629;color:var(--info)}.dash-chip.warn{background:#d99a3229;color:var(--warning)}.dash-chip.danger{background:#d65f4f29;color:var(--danger)}.dash-chip.muted{background:var(--chip);color:var(--muted)}.dash-load-grid{display:flex;gap:12px;margin-bottom:8px}.dash-load-cell{flex:1;text-align:center;padding:10px;border-radius:8px}.dash-load-cell.danger{background:#d65f4f24}.dash-load-cell.warn{background:#d99a3229}.dash-load-cell.ok{background:#64b86a24}.dash-load-num{display:block;font-size:22px;font-weight:700;color:var(--text)}.dash-load-cell.danger .dash-load-num{color:var(--danger)}.dash-load-cell.warn .dash-load-num{color:var(--warning)}.dash-load-cell.ok .dash-load-num{color:var(--ok)}.dash-load-cell small{color:var(--muted)}.dash-load-names{font-size:12px;color:var(--muted);line-height:1.7}.dash-income-row{display:flex;align-items:center;gap:10px;padding:4px 0;font-size:13px;color:var(--text)}.dash-income-name{width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-income-bar{flex:1;height:8px;background:var(--chip);border-radius:5px;overflow:hidden}.dash-income-bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--info),var(--primary))}.dash-income-pct{white-space:nowrap;color:var(--muted)}.dash-income-masked{color:var(--muted);font-style:italic}.dash-income-empty{color:var(--muted);padding:8px 0}.dash-margin{font-weight:600}.dash-margin.pos{color:var(--ok)}.dash-margin.mid{color:var(--warning)}.dash-margin.neg{color:var(--danger)}.dash-margin.muted{color:var(--muted)}.dash-three-up{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}.dash-three-up>.dash-panel{border:1px solid var(--line);border-radius:8px;background:var(--panel-2);padding:12px 14px}@media(max-width:1080px){.dash-three-up{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.dash-three-up{grid-template-columns:1fr}}.msu-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:12px}.msu-toolbar label{display:flex;gap:6px;align-items:center;font-size:13px;color:#ccd6f6}.msu-toolbar input,.msu-toolbar select{background:#0d1a32cc;color:#f0f5ff;border:1px solid rgba(95,159,214,.35);border-radius:4px;padding:4px 8px}.msu-btn{background:#5f9fd626;color:#f0f5ff;border:1px solid rgba(95,159,214,.35);border-radius:4px;padding:6px 12px;cursor:pointer;transition:background .15s}.msu-btn:hover:not(:disabled){background:#5f9fd64d}.msu-btn:disabled{opacity:.5;cursor:not-allowed}.msu-btn.primary{background:linear-gradient(135deg,#5f9fd6,#3a78b8)}.msu-tip{font-size:12px;color:#91a7c8;margin-left:auto}.msu-import{position:relative}.msu-matrix-wrap{overflow-x:auto}.msu-grid{display:grid;gap:1px;background:#5f9fd61f;border:1px solid rgba(95,159,214,.25);border-radius:4px;overflow:hidden}.msu-th,.msu-rowhead,.msu-cell{background:#0d1a32e6;padding:8px 10px;font-size:12px;color:#f0f5ff;min-height:48px;display:flex;flex-direction:column;justify-content:center}.msu-th{font-weight:600;text-align:center}.msu-th.frozen,.msu-rowhead.frozen{position:sticky;left:0;z-index:1}.msu-rowhead{gap:2px}.msu-rowhead strong{color:#fff;font-size:13px}.msu-rowhead small{color:#91a7c8}.msu-cell{cursor:pointer;text-align:center;gap:2px}.msu-cell:hover{filter:brightness(1.2)}.msu-cell strong{font-size:13px}.msu-cell small{font-size:11px;opacity:.75;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.msu-cell.tone-green{background:#4aa86640}.msu-cell.tone-yellow{background:#d6a75f40}.msu-cell.tone-red{background:#d65f5f40}.msu-cell.tone-gray{background:#50607840}.msu-empty,.msu-error{color:#91a7c8;padding:20px;text-align:center}.msu-error{color:#d65f5f}.msu-jump{margin-top:12px}.msu-jump a{color:#5f9fd6;cursor:pointer}.msu-drill{position:fixed;right:0;top:0;height:100vh;width:min(420px,80vw);background:#081226fa;border-left:1px solid rgba(95,159,214,.3);box-shadow:-8px 0 24px #00000073;display:flex;flex-direction:column;z-index:100}.msu-drill[hidden]{display:none}.msu-drill header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid rgba(95,159,214,.2)}.msu-drill header button{background:none;border:none;color:#f0f5ff;font-size:20px;cursor:pointer}.msu-drill-body{flex:1;overflow-y:auto;padding:16px 20px}.msu-drill-body section{margin-bottom:24px}.msu-drill-body h3{font-size:13px;margin:0 0 8px;color:#5f9fd6}.msu-drill-body ul{list-style:none;padding:0;margin:0}.msu-drill-body li{padding:8px 0;border-bottom:1px dashed rgba(95,159,214,.15);font-size:13px;color:#ccd6f6}.mdw-page{display:flex;flex-direction:column;gap:18px}.mdw-toolbar{display:flex;flex-wrap:wrap;gap:16px;align-items:center}.mdw-chips{display:flex;gap:6px;flex-wrap:wrap}.mdw-chip{background:#0d1a32cc;color:#ccd6f6;border:1px solid rgba(95,159,214,.25);border-radius:18px;padding:4px 14px;cursor:pointer;font-size:12px;transition:background .15s,color .15s,border-color .15s}.mdw-chip:hover{background:#5f9fd633}.mdw-chip.active{background:linear-gradient(135deg,#5f9fd6,#3a78b8);color:#fff;border-color:#5f9fd6cc}.mdw-range{display:flex;gap:10px;align-items:center}.mdw-range label{display:flex;align-items:center;gap:6px;font-size:12px;color:#ccd6f6}.mdw-range input{background:#0d1a32cc;color:#f0f5ff;border:1px solid rgba(95,159,214,.35);border-radius:4px;padding:4px 8px}.mdw-btn{background:#5f9fd633;color:#f0f5ff;border:1px solid rgba(95,159,214,.4);border-radius:4px;padding:5px 12px;cursor:pointer;font-size:12px}.mdw-btn:hover{background:#5f9fd659}.mdw-tip{margin-left:auto;font-size:12px;color:#91a7c8}.mdw-kpis{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.mdw-kpi{background:linear-gradient(160deg,#0d1a32f2,#081226e6);border:1px solid rgba(95,159,214,.25);border-radius:8px;padding:14px 18px;position:relative;overflow:hidden;display:flex;flex-direction:column;gap:6px;animation:mdw-fade-in .4s ease-out both}.mdw-kpi span{color:#91a7c8;font-size:12px;letter-spacing:.04em}.mdw-kpi strong{color:#fff;font-size:22px;font-weight:700}.mdw-kpi small{color:#91a7c8;font-size:11px}.mdw-kpi.tone-info{border-left:3px solid #5f9fd6}.mdw-kpi.tone-ok{border-left:3px solid #4aa866}.mdw-kpi.tone-warning{border-left:3px solid #d6a75f}.mdw-kpi.tone-danger{border-left:3px solid #d65f5f}@keyframes mdw-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.mdw-charts{display:grid;gap:16px;grid-template-columns:minmax(0,2fr) minmax(0,1fr)}@media(max-width:960px){.mdw-charts{grid-template-columns:1fr}}.mdw-chart-card{background:#0d1a32d9;border:1px solid rgba(95,159,214,.2);border-radius:8px;padding:14px 18px}.mdw-chart-card header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:12px;flex-wrap:wrap}.mdw-chart-card h3{margin:0;font-size:14px;color:#5f9fd6;letter-spacing:.04em}.mdw-dim-switch{display:flex;gap:4px}.mdw-dim{background:transparent;color:#91a7c8;border:1px solid rgba(95,159,214,.25);border-radius:4px;padding:3px 10px;font-size:11px;cursor:pointer}.mdw-dim:hover{color:#fff;border-color:#5f9fd68c}.mdw-dim.active{background:#5f9fd64d;color:#fff;border-color:#5f9fd6a6}.mdw-bars{display:flex;flex-direction:column;gap:10px}.mdw-bar-summary{color:#91a7c8;font-size:12px;padding-bottom:4px}.mdw-bar-row{display:grid;grid-template-columns:110px 1fr 150px;align-items:center;gap:12px}.mdw-bar-label{color:#ccd6f6;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mdw-bar-track{background:#5f9fd61f;border-radius:999px;height:10px;overflow:hidden}.mdw-bar-track i{display:block;height:100%;background:linear-gradient(90deg,#5f9fd6,#3a78b8)}.mdw-bar-meta{color:#91a7c8;font-size:11px;text-align:right}.mdw-headcount-body{display:flex;flex-direction:column;gap:12px}.mdw-headcount-list{margin:0;display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:12px}.mdw-headcount-list dt{color:#91a7c8}.mdw-headcount-list dd{margin:0;color:#f0f5ff;text-align:right}.mdw-headcount-list .mdw-strong{color:#fff;font-weight:700;font-size:14px}.mdw-headcount-list .mdw-gap{color:#d6a75f}.mdw-formula{margin:0;color:#91a7c8;font-size:11px;cursor:help}.mdw-table-card{background:#0d1a32d9;border:1px solid rgba(95,159,214,.2);border-radius:8px;padding:14px 18px}.mdw-table-card header{margin-bottom:12px}.mdw-table-card h3{margin:0;font-size:14px;color:#5f9fd6;letter-spacing:.04em}.mdw-table-wrap{overflow-x:auto}.mdw-table{width:100%;border-collapse:collapse;font-size:12px;color:#ccd6f6}.mdw-table thead th{text-align:left;padding:8px 10px;border-bottom:1px solid rgba(95,159,214,.25);color:#91a7c8;font-weight:600}.mdw-table tbody td{padding:8px 10px;border-bottom:1px dashed rgba(95,159,214,.12)}.mdw-table tbody tr:hover{background:#5f9fd614}.mdw-empty,.mdw-error{color:#91a7c8;padding:16px;text-align:center}.mdw-error{color:#d65f5f}.vcd-page{display:flex;flex-direction:column;gap:18px}.vcd-toolbar{display:flex;flex-wrap:wrap;gap:16px;align-items:center}.vcd-label{display:flex;align-items:center;gap:8px;color:#ccd6f6;font-size:12px}.vcd-select{background:#0d1a32cc;color:#f0f5ff;border:1px solid rgba(95,159,214,.35);border-radius:4px;padding:4px 10px;min-width:140px}.vcd-btn{background:linear-gradient(135deg,#5f9fd6,#3a78b8);color:#fff;border:1px solid rgba(95,159,214,.65);border-radius:4px;padding:6px 14px;cursor:pointer;font-size:12px;letter-spacing:.04em}.vcd-btn:hover{filter:brightness(1.1)}.vcd-btn-secondary{background:transparent;color:#ccd6f6;border-color:#5f9fd659}.vcd-tip{margin-left:auto;font-size:12px;color:#91a7c8}.vcd-kpis{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.vcd-kpi{background:linear-gradient(160deg,#0d1a32f2,#081226e6);border:1px solid rgba(95,159,214,.25);border-radius:8px;padding:14px 18px;position:relative;overflow:hidden;display:flex;flex-direction:column;gap:6px;animation:vcd-fade-in .4s ease-out both}.vcd-kpi span{color:#91a7c8;font-size:12px;letter-spacing:.04em}.vcd-kpi strong{color:#fff;font-size:22px;font-weight:700}.vcd-kpi small{color:#91a7c8;font-size:11px}.vcd-kpi.tone-info{border-left:3px solid #5f9fd6}.vcd-kpi.tone-ok{border-left:3px solid #4aa866}.vcd-kpi.tone-warning{border-left:3px solid #d6a75f}.vcd-kpi.tone-danger{border-left:3px solid #d65f5f}@keyframes vcd-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.vcd-grid{display:grid;gap:16px;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}@media(max-width:960px){.vcd-grid{grid-template-columns:1fr}}.vcd-card{background:#0d1a32d9;border:1px solid rgba(95,159,214,.2);border-radius:8px;padding:14px 18px}.vcd-card header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px;gap:12px;flex-wrap:wrap}.vcd-card h3{margin:0;font-size:14px;color:#5f9fd6;letter-spacing:.04em}.vcd-card header small{color:#91a7c8;font-size:11px}.vcd-timeline{display:flex;flex-direction:column;gap:10px;max-height:480px;overflow-y:auto}.vcd-event{background:#08122699;border-left:3px solid rgba(95,159,214,.35);border-radius:4px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}.vcd-event.tone-ok{border-left-color:#4aa866}.vcd-event.tone-danger{border-left-color:#d65f5f}.vcd-event.tone-warning{border-left-color:#d6a75f}.vcd-event.tone-info{border-left-color:#5f9fd6}.vcd-event header{display:flex;gap:10px;align-items:center;margin:0}.vcd-event-badge{font-size:11px;padding:2px 8px;border-radius:999px;background:#5f9fd626;border:1px solid rgba(95,159,214,.3);color:#ccd6f6}.vcd-event-badge.tone-ok{background:#4aa86626;border-color:#4aa866;color:#b6f0c8}.vcd-event-badge.tone-danger{background:#d65f5f26;border-color:#d65f5f;color:#f3c2c2}.vcd-event-badge.tone-warning{background:#d6a75f26;border-color:#d6a75f;color:#f0d7b0}.vcd-event-badge.tone-info{background:#5f9fd626;border-color:#5f9fd6;color:#ccd6f6}.vcd-event header strong{color:#fff;font-size:13px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vcd-event header em{font-style:normal;color:#f0c97b;font-weight:700;font-size:13px}.vcd-event-meta{display:flex;gap:14px;font-size:11px;color:#91a7c8}.vcd-event-reason{margin:0;font-size:12px;color:#ccd6f6;opacity:.85}.vcd-bars{display:flex;flex-direction:column;gap:12px}.vcd-bar-row{display:grid;grid-template-columns:80px 1fr 180px;align-items:center;gap:10px}.vcd-bar-label{color:#ccd6f6;font-size:12px}.vcd-bar-stack{position:relative;height:14px;background:#5f9fd614;border-radius:999px;overflow:hidden}.vcd-bar-added,.vcd-bar-removed{position:absolute;top:0;bottom:0;border-radius:999px;transition:width .2s ease-out}.vcd-bar-added{left:0;background:linear-gradient(90deg,#4aa866,#67c486)}.vcd-bar-removed{right:0;background:linear-gradient(90deg,#d65f5f,#f08383)}.vcd-bar-meta{color:#91a7c8;font-size:11px;text-align:right}.vcd-empty{color:#91a7c8;font-size:13px;text-align:center;padding:30px 0}.vcd-error{color:#d65f5f;font-size:13px}.vcd-modal{position:fixed;inset:0;z-index:1000;background:#0000008c;display:flex;align-items:center;justify-content:center}.vcd-modal[hidden]{display:none}.vcd-modal-card{background:#0d1a32fa;border:1px solid rgba(95,159,214,.35);border-radius:8px;padding:18px 20px;width:min(420px,92vw);display:flex;flex-direction:column;gap:12px;box-shadow:0 12px 40px #00000073}.vcd-modal-card header{display:flex;justify-content:space-between;align-items:center}.vcd-modal-card h3{margin:0;color:#5f9fd6;font-size:15px}.vcd-modal-close{background:transparent;border:none;color:#91a7c8;font-size:20px;cursor:pointer;line-height:1}.vcd-modal-body{display:flex;flex-direction:column;gap:10px}.vcd-modal-body label{display:flex;flex-direction:column;gap:4px;color:#ccd6f6;font-size:12px}.vcd-modal-body input,.vcd-modal-body select,.vcd-modal-body textarea{background:#081226e6;color:#f0f5ff;border:1px solid rgba(95,159,214,.35);border-radius:4px;padding:6px 10px;font-size:13px;font-family:inherit}.vcd-modal-body textarea{resize:vertical;min-height:60px}.vcd-modal-error{margin:0;color:#d65f5f;font-size:12px;min-height:16px}.vcd-modal-card footer{display:flex;justify-content:flex-end;gap:10px}.ots-page{display:flex;flex-direction:column;gap:18px}.ots-banner{background:linear-gradient(90deg,#4cc4ff26,#4cc4ff0d);border-left:4px solid #4cc4ff;padding:12px 16px;border-radius:6px;font-size:14px;color:#cde7ff}.ots-banner a{color:#7dd3fc;text-decoration:underline}.ots-summary-wrap{display:flex;flex-direction:column;gap:14px}.ots-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.ots-summary-card{padding:14px 16px;border-radius:10px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08)}.ots-summary-card span{display:block;color:#94a3b8;font-size:13px;margin-bottom:6px}.ots-summary-card strong{font-size:24px}.ots-summary-card.primary{background:linear-gradient(135deg,#4cc4ff33,#3b82f61f);border-color:#4cc4ff57}.ots-summary-card.warning{background:#f59e0b24;border-color:#f59e0b4d}.ots-summary-card.danger{background:#ef444424;border-color:#ef44444d}.ots-distributions{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.ots-distribution,.ots-alert-group{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:12px 14px}.ots-distribution h3,.ots-alert-group h3{margin:0 0 10px;font-size:14px;color:#cbd5e1}.ots-distribution ul,.ots-alert-group ul{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}.ots-distribution li,.ots-alert-group li{display:flex;justify-content:space-between;gap:12px;font-size:13px}.ots-distribution li span,.ots-alert-group li span{min-width:0;word-break:break-word}.ots-distribution li strong{white-space:nowrap}.ots-alerts{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.ots-alert-group li em,.ots-muted{color:#94a3b8;font-style:normal}.ots-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 0}.ots-week-label{font-weight:600;padding:0 10px;min-width:200px}.ots-tip{flex:1;text-align:right;color:#94a3b8;font-size:13px}.ots-btn{min-height:44px;min-width:44px;padding:0 16px;border-radius:6px;border:1px solid rgba(255,255,255,.15);background:#ffffff0d;color:inherit;font-size:14px;cursor:pointer;transition:background .15s ease,transform .1s ease}.ots-btn:hover:not([disabled]){background:#ffffff1a}.ots-btn:active:not([disabled]){transform:scale(.97)}.ots-btn.primary{background:linear-gradient(135deg,#4cc4ff,#3b82f6);color:#fff;font-weight:600;border:none}.ots-btn[disabled]{opacity:.4;cursor:not-allowed}.ots-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.ots-card{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:14px;display:flex;flex-direction:column;gap:10px;transition:transform .12s ease,box-shadow .12s ease}.ots-card[data-timesheet-id]{cursor:pointer}.ots-card[data-timesheet-id]:hover{transform:translateY(-2px);box-shadow:0 4px 12px #4cc4ff26}.ots-card header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ots-card header strong{font-size:15px}.ots-weekday{color:#94a3b8;font-size:13px}.ots-card-body p{margin:0;display:flex;justify-content:space-between;font-size:13px}.ots-card-body em{color:#94a3b8;font-style:normal}.ots-card-body .ots-detail{display:block;font-size:13px;color:#cbd5e1;border-top:1px dashed rgba(255,255,255,.08);padding-top:8px;margin-top:4px;white-space:pre-wrap;word-break:break-word}.ots-card footer{margin-top:auto}.ots-card footer .ots-btn{width:100%}.badge.gray{background:#94a3b82e;color:#cbd5e1}.ots-dialog{position:fixed;inset:0;background:#0000008c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}.ots-dialog[hidden]{display:none}.ots-dialog-card{background:#0f172a;border-radius:10px;padding:18px 20px;width:min(420px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto}.ots-dialog-card header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.ots-close{background:none;border:none;font-size:22px;color:#94a3b8;cursor:pointer;min-width:44px;min-height:44px}.ots-form{display:flex;flex-direction:column;gap:12px}.ots-form label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:#94a3b8}.ots-form input,.ots-form select,.ots-form textarea{background:#ffffff0d;border:1px solid rgba(255,255,255,.15);color:inherit;padding:10px 12px;border-radius:6px;font-size:14px;min-height:44px}.ots-form textarea{min-height:80px;resize:vertical}.ots-form-hint{margin:0;color:#94a3b8;font-size:12px;line-height:1.5}.ots-form-error{margin:0;padding:8px 10px;border:1px solid rgba(248,113,113,.4);border-radius:6px;background:#f871711f;color:#fca5a5;font-size:12px;line-height:1.5}.ots-form-error[hidden]{display:none}.ots-form-buttons{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}.ots-admin-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-bottom:12px}.ots-admin-toolbar label{display:flex;flex-direction:column;font-size:13px;color:#94a3b8;gap:4px}.ots-admin-toolbar input{min-height:44px;background:#ffffff0d;border:1px solid rgba(255,255,255,.15);color:inherit;padding:8px 12px;border-radius:6px}.ots-admin-table .table-wrap{overflow-x:auto}.ots-empty{text-align:center;color:#94a3b8;padding:24px}.ots-admin-bar{display:flex;align-items:center;gap:16px;padding:12px 16px;background:linear-gradient(90deg,#f59e0b24,#f59e0b0a);border-left:4px solid #f59e0b;border-radius:6px}.ots-admin-label{font-weight:600;color:#fbbf24;font-size:14px}.ots-btn-import{background:linear-gradient(135deg,#f59e0b,#d97706);color:#1f2937;font-weight:600;border:none}.ots-btn-import:hover:not([disabled]){filter:brightness(1.05)}.ots-modal-backdrop{position:fixed;inset:0;background:#0000008c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1100}.ots-modal{background:#0f172a;width:min(600px,calc(100vw - 32px));max-height:calc(100vh - 48px);border-radius:10px;display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(255,255,255,.08)}.ots-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid rgba(255,255,255,.08)}.ots-modal-header h3{margin:0;font-size:16px}.ots-modal-body{padding:16px 18px;overflow-y:auto;flex:1}.ots-modal-footer{padding:12px 18px;border-top:1px solid rgba(255,255,255,.08);text-align:right}.ots-modal-close{min-width:44px;min-height:44px;padding:0}.ots-import-summary{display:flex;gap:12px;margin-bottom:16px}.ots-import-stat{flex:1;text-align:center;padding:14px 10px;border-radius:8px}.ots-import-stat-total{background:#94a3b82e;color:#cbd5e1}.ots-import-stat-success{background:#10b9812e;color:#6ee7b7}.ots-import-stat-failed{background:#ef44442e;color:#fca5a5}.ots-import-stat-num{font-size:28px;font-weight:700}.ots-import-stat-label{font-size:13px;margin-top:4px}.ots-import-success-banner{padding:14px;background:#10b9812e;border-radius:6px;text-align:center;color:#6ee7b7;font-weight:600}.ots-import-failures h4{margin:0 0 8px;font-size:14px;color:#fca5a5}.ots-import-failures-table{width:100%;border-collapse:collapse;font-size:13px}.ots-import-failures-table th,.ots-import-failures-table td{padding:8px 10px;border-bottom:1px solid rgba(255,255,255,.08);text-align:left;vertical-align:top;word-break:break-word}.ots-import-failures-table th{background:#ffffff0a;color:#94a3b8;font-weight:600}.ots-import-error{padding:14px;background:#ef44442e;border-radius:6px;color:#fca5a5}.ots-modal-wide{width:min(900px,calc(100vw - 32px))}.ots-items-meta{display:flex;gap:16px;align-items:center;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:14px;color:#cbd5e1;font-size:14px}.ots-items-table{width:100%;border-collapse:collapse;font-size:13px}.ots-items-table th,.ots-items-table td{padding:8px 10px;border-bottom:1px solid rgba(255,255,255,.08);text-align:left;vertical-align:top}.ots-items-table th{background:#ffffff0a;color:#94a3b8;font-weight:600}.ots-item-desc{max-width:420px;word-break:break-word;white-space:pre-wrap}@media(max-width:768px){.ots-cards{grid-template-columns:1fr}.ots-toolbar{flex-direction:column;align-items:stretch}.ots-toolbar .ots-btn{width:100%}.ots-week-label{text-align:center;padding:6px 0}.ots-tip{text-align:left}.ots-dialog-card{width:100vw;max-width:100vw;height:100vh;max-height:100vh;border-radius:0;padding:18px 16px env(safe-area-inset-bottom)}.ots-card header strong{font-size:16px}.ots-card-body p{font-size:14px}.ots-banner{font-size:13px;padding:10px 14px}.ots-admin-bar{flex-direction:column;align-items:stretch;gap:10px}.ots-import-summary{flex-direction:column}.ots-distribution li,.ots-alert-group li{flex-direction:column;gap:4px}.ots-modal{width:100vw;max-width:100vw;height:100vh;max-height:100vh;border-radius:0}.ots-modal-wide{width:100vw;max-width:100vw}.ots-import-failures-table,.ots-items-table{font-size:12px}.ots-item-desc{max-width:200px}}@media(max-width:375px){.ots-card{padding:12px}.ots-toolbar{gap:6px}}.crud-panel{padding:24px}.crud-panel-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.crud-panel-header h2{margin:0;font-size:18px}.crud-panel-toolbar{display:flex;gap:8px}.crud-panel-table-wrap{overflow-x:auto;border-radius:8px;border:1px solid rgba(255,255,255,.08)}.crud-panel-table{width:100%;min-width:720px;border-collapse:collapse;font-size:13px}.crud-panel-table thead th{text-align:left;padding:10px 12px;background:#ffffff0a;border-bottom:1px solid rgba(255,255,255,.08);font-weight:500;color:#cbd5e1;white-space:nowrap}.crud-panel-table tbody td{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.04);vertical-align:middle}.crud-panel-table tbody tr:hover{background:#ffffff08}.crud-panel-empty{text-align:center;color:#94a3b8;padding:32px 12px}.crud-col-actions{white-space:nowrap;width:1%}.crud-col-actions .crud-btn+.crud-btn{margin-left:4px}.crud-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:6px 14px;border-radius:6px;border:1px solid rgba(255,255,255,.12);background:#ffffff0a;color:#e2e8f0;font-size:13px;cursor:pointer;transition:background .15s ease,border-color .15s ease}.crud-btn:hover:not([disabled]){background:#ffffff14;border-color:#fff3}.crud-btn:active:not([disabled]){transform:translateY(1px)}.crud-btn[disabled]{opacity:.5;cursor:not-allowed}.crud-btn.primary{background:#2563eb;border-color:#2563eb;color:#fff}.crud-btn.primary:hover:not([disabled]){background:#1d4ed8;border-color:#1d4ed8}.crud-btn.danger{background:#ef444426;border-color:#ef444459;color:#fca5a5}.crud-btn.danger:hover:not([disabled]){background:#ef444440;border-color:#ef44448c}.crud-btn.small{min-height:26px;padding:3px 10px;font-size:12px}.crud-modal-backdrop{position:fixed;inset:0;background:#0000008c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1200}.crud-modal{background:#0f172a;width:min(600px,calc(100vw - 32px));max-height:calc(100vh - 48px);border-radius:10px;display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(255,255,255,.08);box-shadow:0 12px 40px #00000073}.crud-modal-narrow{width:min(420px,calc(100vw - 32px))}.crud-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid rgba(255,255,255,.08)}.crud-modal-header h3{margin:0;font-size:16px}.crud-modal-body{padding:16px 18px;overflow-y:auto;flex:1}.crud-modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid rgba(255,255,255,.08)}.crud-modal-close{min-width:36px;min-height:36px;padding:0;font-size:20px}.crud-form{display:flex;flex-direction:column;height:100%;min-height:0}.crud-form .crud-modal-body{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px}.crud-form-field{display:flex;flex-direction:column;gap:4px;font-size:13px}.crud-form-field input[type=text],.crud-form-field input[type=number],.crud-form-field input[type=date],.crud-form-field select,.crud-form-field textarea{background:#ffffff0a;border:1px solid rgba(255,255,255,.12);color:#e2e8f0;border-radius:6px;padding:7px 10px;font-size:13px;width:100%;box-sizing:border-box;font-family:inherit}.crud-form-field input:focus,.crud-form-field select:focus,.crud-form-field textarea:focus{outline:none;border-color:#2563eb;background:#ffffff0f}.crud-form-field textarea{resize:vertical;min-height:80px}.crud-form-field input[type=checkbox]{width:18px;height:18px;cursor:pointer}.crud-form-label{color:#94a3b8;font-weight:500}.crud-required{color:#f87171;margin-left:4px}.crud-confirm-message{margin:0;font-size:14px;color:#e2e8f0}.crud-confirm-modal{text-align:center;padding:28px 28px 22px;width:min(440px,calc(100vw - 32px));display:block;overflow:hidden}.crud-confirm-icon{font-size:44px;line-height:1;margin-bottom:14px;-webkit-user-select:none;user-select:none}.crud-confirm-title{margin:0 0 8px;font-size:18px;font-weight:600;color:#f1f5f9}.crud-confirm-modal .crud-confirm-message{margin:0 0 22px;font-size:14px;color:#94a3b8;line-height:1.6}.crud-modal-actions{display:flex;gap:12px;justify-content:center;border-top:0;padding:0}.crud-confirm-modal .crud-btn,.crud-btn-cancel,.crud-btn-danger{min-height:44px;min-width:110px;padding:10px 22px;font-size:14px;border-radius:8px;font-weight:500}.crud-btn-cancel{background:#ffffff0f;border:1px solid rgba(255,255,255,.14);color:#e2e8f0}.crud-btn-cancel:hover:not([disabled]){background:#ffffff1f;border-color:#ffffff40}.crud-btn-danger{background:#dc2626;border:1px solid #dc2626;color:#fff}.crud-btn-danger:hover:not([disabled]){background:#b91c1c;border-color:#b91c1c}.crud-modal-backdrop{animation:crud-fade-in .15s ease}.crud-confirm-modal{animation:crud-slide-up .2s ease}@keyframes crud-fade-in{0%{opacity:0}to{opacity:1}}@keyframes crud-slide-up{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}@media(max-width:640px){.crud-panel{padding:14px}.crud-panel-header{flex-direction:column;align-items:stretch}.crud-form .crud-modal-body{grid-template-columns:1fr}.crud-confirm-modal{padding:22px 18px 16px}.crud-modal-actions{flex-direction:column-reverse}.crud-confirm-modal .crud-btn,.crud-btn-cancel,.crud-btn-danger{width:100%}}.task-import-toolbar{display:flex;align-items:center;gap:12px;padding:12px 16px;margin:8px 0 12px;background:var(--surface-soft, #f8f9fc);border:1px solid var(--border, #e1e4ee);border-radius:8px;flex-wrap:wrap}.task-import-toolbar .btn--primary{padding:6px 16px;font-size:13px}.task-import-hint{color:var(--muted, #6b7280);font-size:12px;line-height:1.4}@media(max-width:720px){.task-import-toolbar{flex-direction:column;align-items:stretch}}.crud-toolbar{display:flex;gap:12px;align-items:center;padding:0 24px 12px;flex-wrap:wrap}.crud-toolbar-views,.crud-toolbar-search,.crud-toolbar-filters{display:contents}.crud-search{position:relative;display:inline-flex;align-items:center;min-width:320px;flex:1 1 320px;max-width:480px}.crud-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:14px;height:14px;color:var(--muted);pointer-events:none;line-height:1;display:inline-flex;align-items:center;justify-content:center}.crud-search-input{background:var(--panel-2);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:8px 38px;font-size:13px;font-family:inherit;width:100%;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.crud-search-input::placeholder{color:var(--muted)}.crud-search-input:hover{border-color:#2fb8a580}.crud-search-input:focus{outline:none;border-color:var(--primary);background:var(--panel-2);box-shadow:0 0 0 3px #2fb8a526}.crud-search-input::-webkit-search-cancel-button,.crud-search-input::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.crud-search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:#64748b59;color:#e2e8f0;border:0;border-radius:50%;width:22px;height:22px;cursor:pointer;font-size:16px;line-height:1;padding:0;display:inline-flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease}.crud-search-clear:hover{background:#64748b8c;color:#fff}.crud-search-clear.is-hidden{display:none}.crud-filter{display:inline-flex;align-items:center;gap:6px;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:4px 10px 4px 12px;font-size:13px;transition:border-color .15s ease}.crud-filter:focus-within{border-color:#3b82f6}.crud-filter-label{color:#94a3b8;white-space:nowrap}.crud-filter-select{background:transparent;border:0;color:#e2e8f0;font-size:13px;font-family:inherit;padding:4px 18px 4px 0;cursor:pointer;outline:none;min-width:80px;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path fill='%2394a3b8' d='M0 0l5 6 5-6z'/></svg>");background-repeat:no-repeat;background-position:right 2px center}.crud-filter-select option{background:#0f172a;color:#e2e8f0}.crud-filter-reset{background:none;border:0;color:#3b82f6;font-size:13px;font-family:inherit;cursor:pointer;padding:4px 8px;text-decoration:underline;text-underline-offset:2px;transition:color .15s ease}.crud-filter-reset:hover{color:#60a5fa}.crud-view-tabs{display:inline-flex;gap:4px;padding:2px;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:8px}.crud-view-tab{padding:6px 14px;background:transparent;border:0;border-radius:6px;cursor:pointer;color:#94a3b8;font-size:13px;font-family:inherit;transition:background .15s ease,color .15s ease}.crud-view-tab:hover:not(.active){background:#ffffff0a;color:#cbd5e1}.crud-view-tab.active{background:#2563eb;color:#fff}.crud-pagination{display:flex;justify-content:center;align-items:center;gap:16px;padding:16px 24px 18px;font-size:13px;color:#94a3b8}.crud-pagination-single{padding:10px 24px 14px}.crud-page-info{min-width:160px;text-align:center}.crud-page-btn{min-height:30px;padding:5px 14px}.crud-panel-custom-view{padding:0 24px 16px}@media(max-width:640px){.crud-toolbar{flex-direction:column;align-items:stretch;padding:0 14px 12px;gap:8px}.crud-search{min-width:auto;max-width:none;width:100%;flex:none}.crud-filter{flex:1;min-width:120px}.crud-filter-select{flex:1}.crud-view-tabs{align-self:flex-start}.crud-pagination{padding:14px;flex-wrap:wrap;gap:10px}.crud-panel-custom-view{padding:0 14px 14px}}.kanban-board{display:flex;flex-direction:row;gap:12px;padding:10px 4px 14px;overflow-x:auto;overflow-y:hidden}.kanban-column{flex:0 0 220px;width:220px;background:#081226e0;border-radius:12px;border:1px solid rgba(96,165,250,.22);box-shadow:0 14px 36px #0206173d;display:flex;flex-direction:column;max-height:720px;overflow:hidden}.kanban-column-header{position:sticky;top:0;z-index:1;background:linear-gradient(180deg,#0f2348f5,#0b1934f5);border-bottom:1px solid rgba(96,165,250,.24);padding:10px 12px;display:flex;align-items:center;justify-content:space-between;border-top-left-radius:12px;border-top-right-radius:12px}.kanban-column-label{font-size:13px;font-weight:600;color:#e5f2ff}.kanban-column-count{font-size:12px;color:#bfdbfe;background:#0ea5e91f;border:1px solid rgba(125,211,252,.28);border-radius:999px;padding:0 8px;min-width:20px;text-align:center;line-height:18px}.kanban-column-body{padding:8px;overflow-y:auto;flex:1 1 auto;display:flex;flex-direction:column;gap:8px}.kanban-chip{display:block;width:100%;text-align:left;background:linear-gradient(180deg,#0f172aeb,#0f172ac2);border:1px solid rgba(148,163,184,.22);border-radius:10px;padding:10px;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease,background .12s ease;font:inherit;color:#dbeafe}.kanban-chip:hover:not([disabled]){transform:translateY(-1px);box-shadow:0 8px 20px #0ea5e929;border-color:#7dd3fc75;background:linear-gradient(180deg,#132241fa,#0f172ad1)}.kanban-chip:focus-visible{outline:2px solid #38bdf8;outline-offset:2px}.kanban-chip[disabled]{cursor:not-allowed;opacity:.6}.kanban-chip-head{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:4px}.kanban-chip-code{font-size:11px;color:#93c5fd;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#2563eb29;padding:1px 6px;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px}.kanban-chip-owner{font-size:11px;color:#cbd5e1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:70px}.kanban-chip-title{font-size:13px;line-height:1.4;color:#f8fafc;margin-bottom:6px;word-break:break-all}.kanban-chip-progress{position:relative;display:flex;align-items:center;gap:6px}.kanban-chip-progress>i{display:block;height:8px;border-radius:4px;flex:1 1 auto;background:#475569b3;position:relative;overflow:hidden;min-width:0}.kanban-chip-progress>em{font-style:normal;font-size:11px;color:#cbd5e1;min-width:32px;text-align:right}.kanban-chip-progress-red>i{background:linear-gradient(90deg,#f5222d,#ff7875)}.kanban-chip-progress-green>i{background:linear-gradient(90deg,#52c41a,#95de64)}.kanban-chip-progress-blue>i{background:linear-gradient(90deg,#3370ff,#69b1ff)}.kanban-chip-progress-yellow>i{background:linear-gradient(90deg,#faad14,#ffd666)}.kanban-column-overflow{text-align:center;font-size:12px;color:#bfdbfe;padding:7px 0 0;border-top:1px dashed rgba(125,211,252,.24);margin-top:4px}.kanban-column-overflow>summary{cursor:pointer;list-style:none;border-radius:8px;padding:7px 8px;background:#0ea5e91a;border:1px solid rgba(125,211,252,.22)}.kanban-column-overflow>summary::-webkit-details-marker{display:none}.kanban-column-overflow>summary:hover,.kanban-column-overflow[open]>summary{color:#e0f2fe;background:#0ea5e92e;border-color:#7dd3fc66}.kanban-column-overflow-list{display:flex;flex-direction:column;gap:8px;padding-top:8px}.file-transfer-panel{margin:16px 24px;padding:16px 20px;background:var(--panel-2, #1e293b);border:1px solid var(--line, #334155);border-radius:10px}.file-transfer-panel .ft-head h2{margin:0;font-size:18px;color:var(--text, #e2e8f0);font-weight:600}.file-transfer-panel .ft-sub{margin:4px 0 12px;color:var(--muted, #94a3b8);font-size:13px}.file-transfer-panel .ft-upload{display:flex;align-items:center;gap:12px;margin-bottom:12px}.file-transfer-panel .ft-progress{color:var(--muted, #94a3b8);font-size:13px}.file-transfer-panel .ft-table{width:100%;border-collapse:collapse;font-size:13px}.file-transfer-panel .ft-table th,.file-transfer-panel .ft-table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line, #334155);color:var(--text, #e2e8f0)}.file-transfer-panel .ft-table th{color:var(--muted, #94a3b8);font-weight:500}.file-transfer-panel .ft-name{max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-transfer-panel .ft-ops{display:flex;gap:8px}.file-transfer-panel .ft-empty{padding:16px;color:var(--muted, #94a3b8);font-size:13px;text-align:center}.imports-header{padding:8px 24px 4px}.imports-header h2{margin:0;font-size:20px;color:#e2e8f0;font-weight:600}.imports-subtitle{margin:4px 0 0;color:#94a3b8;font-size:13px}.imports-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;padding:16px 24px}.import-card{background:linear-gradient(135deg,#1e293bd9,#0f172af2);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:20px;transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease;display:flex;flex-direction:column;gap:12px}.import-card:not(.is-disabled):hover{border-color:#3b82f680;transform:translateY(-2px);box-shadow:0 8px 24px #00000059}.import-card.is-disabled{opacity:.55;cursor:not-allowed}.import-card-header{display:flex;align-items:center;gap:10px}.import-card-icon{font-size:22px;line-height:1}.import-card-title{margin:0;font-size:16px;color:#e2e8f0;font-weight:600}.import-card-desc{margin:0;color:#94a3b8;font-size:13px;line-height:1.55;min-height:40px}.import-card-actions{display:flex;align-items:center;gap:8px;margin-top:auto}.import-card-btn{background:#2563eb;color:#fff;border:0;padding:8px 18px;border-radius:6px;min-height:36px;cursor:pointer;font-size:13px;font-family:inherit;transition:background .15s ease}.import-card-btn:hover{background:#1d4ed8}.import-card-btn:disabled{opacity:.55;cursor:wait}.import-card-disabled-hint{color:#64748b;font-size:12px;font-style:italic}.import-card-btn-ghost{background:transparent;color:#60a5fa;border:1px solid rgba(96,165,250,.6)}.import-card-btn-ghost:hover{background:#60a5fa1f;color:#93c5fd}.import-card-btn-ghost:disabled{opacity:.55;cursor:wait}.import-card.is-coming-soon{opacity:.7}.import-card-badge{display:inline-flex;align-items:center;height:20px;padding:0 10px;margin-left:8px;border-radius:10px;font-size:11px;line-height:1;background:#fa8c162e;color:#fa8c16;border:1px solid rgba(250,140,22,.35);white-space:nowrap}.import-card.is-coming-soon .import-card-btn[disabled]{background:#e5e6eb;color:#86909c;cursor:not-allowed;border:1px dashed #c0c4cc}.import-card-result{margin-top:2px}.import-card-info{color:#bfdbfe;background:#2563eb1f;border:1px solid rgba(96,165,250,.28);border-radius:6px;padding:8px 10px;font-size:12px;line-height:1.5}@media(max-width:720px){.imports-grid{grid-template-columns:1fr;padding:14px;gap:12px}.imports-header{padding:8px 14px 4px}}.po-page{--po-surface: rgba(23, 29, 33, .72);--po-surface-strong: rgba(31, 39, 44, .9);--po-surface-soft: rgba(38, 50, 56, .58);--po-line: rgba(51, 64, 71, .86);--po-line-soft: rgba(255, 255, 255, .07);--po-text-soft: #dbe4e4;display:flex;flex-direction:column;gap:18px;color:var(--text)}.po-panel{position:relative;overflow:hidden;border:1px solid var(--line);background:linear-gradient(145deg,#1f272cf5,#171d21f0);box-shadow:0 22px 70px #0000003d}.po-panel:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent,rgba(255,255,255,.035),transparent);transform:translate(-120%);animation:sweep 5s ease-in-out infinite}.po-panel>*{position:relative;z-index:1}.po-overview-panel{display:flex;flex-direction:column;gap:14px;padding:18px}.po-workbench-panel{overflow:hidden;padding:0}.po-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.po-header h2{margin:0;color:var(--text);font-size:18px;font-weight:600;line-height:1.3}.po-header p{max-width:620px;margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.55}.po-header-actions,.po-toolbar,.po-pagination,.po-preview-line{display:flex;align-items:center;gap:8px}.po-header-actions{justify-content:flex-end;flex-wrap:wrap}.po-role-chip,.po-subtle{display:inline-flex;align-items:center;min-height:32px;padding:0 10px;border:1px solid rgba(95,159,214,.24);border-radius:6px;background:#5f9fd614;color:#b7c7d7;font-size:12px;white-space:nowrap}.po-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.po-metric{position:relative;min-height:68px;padding:11px 13px 11px 16px;overflow:hidden;border:1px solid rgba(255,255,255,.07);border-radius:6px;background:#10141757}.po-metric:before{content:"";position:absolute;top:12px;bottom:12px;left:0;width:3px;border-radius:0 3px 3px 0;background:#2fb8a5d1}.po-metric span{display:block;color:var(--muted);font-size:12px;line-height:1.35}.po-metric strong{display:block;margin-top:7px;color:var(--text);font:650 20px DIN Alternate,Menlo,ui-monospace,monospace;line-height:1.15;word-break:break-word}.po-metric.is-danger:before{background:var(--danger)}.po-metric.is-warning:before{background:var(--warning)}.po-metric.is-info:before{background:var(--info)}.po-metric.is-money:before{background:var(--ok)}.po-metric.is-danger strong{color:#ef9a91}.po-metric.is-warning strong{color:#e7b45f}.po-metric.is-info strong{color:#8dbce2}.po-metric.is-money strong{color:#8ad18e}.po-input,.po-select,.po-field input,.po-field select,.po-field textarea{width:100%;min-height:36px;border:1px solid var(--line);border-radius:6px;background:var(--panel-2);color:var(--text);font:inherit;outline:none;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.po-input{width:min(300px,100%);padding:0 11px}.po-select{width:auto;min-width:132px;padding:0 30px 0 10px}.po-input::placeholder,.po-field input::placeholder,.po-field textarea::placeholder{color:#718181}.po-input:focus,.po-select:focus,.po-field input:focus,.po-field select:focus,.po-field textarea:focus{border-color:#2fb8a5b8;background:#1f272cf5;box-shadow:0 0 0 2px #2fb8a51f}@media(max-width:1080px){.po-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}.po-tabs{display:flex;gap:6px;min-height:42px;padding:8px 12px;overflow-x:auto;border-bottom:1px solid var(--po-line);background:#10141761}.po-tab{flex:0 0 auto;min-height:28px;padding:0 12px;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--muted);cursor:pointer;font-size:13px;line-height:1;transition:background .15s ease,border-color .15s ease,color .15s ease}.po-tab:hover{background:#ffffff0a;color:var(--text)}.po-tab.is-active{border-color:#2fb8a56b;background:#2fb8a524;color:#b7efe7;font-weight:600}.po-toolbar{min-height:50px;flex-wrap:wrap;padding:10px 12px;border-bottom:1px solid var(--po-line);background:#171d21ad}.po-toolbar-spacer{flex:1 1 auto}.po-btn,.po-icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;border:1px solid rgba(255,255,255,.12);border-radius:4px;background:#ffffff0a;color:#e2e8f0;cursor:pointer;font:inherit;font-size:13px;line-height:1;white-space:nowrap;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .12s ease}.po-btn{padding:0 12px}.po-btn:hover:not(:disabled),.po-icon-btn:hover:not(:disabled){border-color:#ffffff38;background:#ffffff14}.po-btn:active:not(:disabled),.po-icon-btn:active:not(:disabled){transform:translateY(1px)}.po-btn-primary{border-color:#2fb8a5d1;background:#2fb8a5e0;color:#061413;font-weight:600}.po-btn-primary:hover:not(:disabled){border-color:var(--primary);background:var(--primary);color:#061413}.po-btn-danger{border-color:#d65f4f6b;background:#d65f4f26;color:#efb0a8}.po-btn-danger:hover:not(:disabled){border-color:#d65f4fb8;background:#d65f4f3d}.po-btn-small{min-height:28px;padding:0 9px;font-size:12px}.po-btn:disabled,.po-icon-btn:disabled{cursor:not-allowed;opacity:.48;transform:none}.po-btn-icon{font-size:15px;line-height:1}.po-icon-btn{min-width:34px;height:34px;min-height:34px;padding:0 8px}.po-icon-btn.is-danger{border-color:#d65f4f52;background:#d65f4f14;color:#efb0a8}.po-table-wrap{overflow:auto;background:#1014175c}.po-table{width:100%;min-width:1120px;border-collapse:collapse}.po-table th,.po-table td{padding:10px 12px;border-bottom:1px solid var(--po-line-soft);vertical-align:top;text-align:left;font-size:13px}.po-table th{position:sticky;top:0;z-index:1;background:#263238f5;color:#b6c4c4;font-size:12px;font-weight:600;letter-spacing:.04em;white-space:nowrap}.po-table td{color:var(--po-text-soft);line-height:1.45}.po-table tbody tr:last-child td{border-bottom:0}.po-table tbody tr:hover{background:#26323861}.po-check-col{width:42px;text-align:center}.po-check-col input,.po-table input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary)}.po-actions-col{width:132px;text-align:right;white-space:nowrap}.po-actions-col .po-btn+.po-btn{margin-left:6px}.po-main{color:var(--text);font-weight:600}.po-muted{margin-top:4px;color:var(--muted);font-size:12px;line-height:1.45}.po-note-cell{max-width:340px;line-height:1.55;white-space:normal;word-break:break-word}.po-money-cell{min-width:150px;color:#8ad18e;font-family:Menlo,ui-monospace,monospace;font-size:12px;line-height:1.75}.po-badge{display:inline-flex;align-items:center;min-height:22px;padding:0 8px;border:1px solid rgba(95,159,214,.34);border-radius:4px;background:#5f9fd61f;color:#9fc5e8;font-size:12px;font-weight:600;line-height:1;white-space:nowrap}.po-badge.is-ok{border-color:#64b86a5c;background:#64b86a21;color:#9bd99f}.po-badge.is-warning{border-color:#d99a326b;background:#d99a3224;color:#e7bd73}.po-badge.is-danger{border-color:#d65f4f6b;background:#d65f4f24;color:#efaaa1}.po-badge.is-info{border-color:#5f9fd661;background:#5f9fd624;color:#9fc5e8}.po-empty,.po-loading{padding:28px 16px;color:var(--muted);text-align:center}.po-loading{margin:0;border-top:1px solid rgba(47,184,165,.2);background:#2fb8a50d}.po-pagination{justify-content:flex-end;padding:10px 12px;border-top:1px solid var(--po-line-soft);background:#171d21c7;color:var(--muted);font-size:13px}@media(max-width:960px){.po-header{align-items:stretch;flex-direction:column}.po-header-actions{justify-content:flex-start;width:100%}.po-toolbar{align-items:stretch}.po-input,.po-select,.po-toolbar .po-btn{width:100%}.po-toolbar-spacer{display:none}}.po-margin-badge{display:inline-block;margin-left:4px;padding:0 6px;border-radius:8px;font-size:12px;font-weight:600;line-height:18px}.po-margin-pos{color:#0a7d33;background:#0a7d331f}.po-margin-mid{color:#a86400;background:#a864001f}.po-margin-neg{color:#c0341d;background:#c0341d1f}.po-field input[type=file]{min-height:42px;padding:8px 10px}.po-preview{grid-column:1 / -1;min-height:120px;border:1px dashed rgba(95,159,214,.32);border-radius:8px;padding:12px;background:#10141775}.po-preview:empty:before{content:"选择文件后点击预览";display:flex;align-items:center;min-height:94px;color:var(--muted);font-size:13px}.po-preview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.po-preview .po-metric{min-height:66px;padding:10px 12px 10px 14px}.po-preview-line{flex-wrap:wrap;margin-top:10px;color:var(--muted);font-size:13px}.po-preview-line strong{color:var(--text)}.po-preview-errors{margin-top:10px;padding:10px 12px;border:1px solid rgba(214,95,79,.42);border-radius:6px;background:#d65f4f1f;color:#efaaa1;font-size:12px;line-height:1.55}.po-modal-backdrop{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:24px;background:#00000094;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.po-modal{width:min(880px,calc(100vw - 32px));max-height:min(86vh,920px);display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(255,255,255,.09);border-radius:8px;background:#0f1720;box-shadow:0 16px 48px #00000075}.po-modal-wide{width:min(960px,calc(100vw - 32px))}.po-modal-header,.po-modal-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid rgba(255,255,255,.08);background:#171d21f5}.po-modal-footer{justify-content:flex-end;border-top:1px solid rgba(255,255,255,.08);border-bottom:0}.po-modal-header h3{margin:0;color:var(--text);font-size:16px;font-weight:600;line-height:1.3}.po-modal-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;padding:18px;overflow:auto}.po-field{display:flex;flex-direction:column;gap:6px;min-width:0;color:var(--muted);font-size:13px}.po-field-full{grid-column:1 / -1}.po-required{margin-left:2px;color:#f87171;font-weight:700}.po-field input,.po-field select{padding:0 10px}.po-field textarea{min-height:76px;resize:vertical;padding:9px 10px;line-height:1.45}@media(max-width:720px){.po-page{gap:12px}.po-overview-panel{padding:14px}.po-header h2{font-size:18px}.po-metrics,.po-preview-grid,.po-modal-body{grid-template-columns:1fr}.po-tab{min-height:36px}.po-btn,.po-icon-btn,.po-input,.po-select,.po-field input,.po-field select{min-height:40px}.po-icon-btn{min-width:40px}.po-modal-backdrop{align-items:flex-end;padding:12px}.po-modal{max-height:92vh}.po-modal-header,.po-modal-footer{padding:12px 14px}.po-modal-body{padding:14px}}.calendar-grid{display:grid;gap:0;border:1px solid var(--line);border-radius:10px;background:transparent;max-height:600px;overflow:auto;position:relative;font-size:12px;color:var(--ink, #e3ecee)}.calendar-header-row,.calendar-row{display:contents}.calendar-header-corner,.calendar-header-cell{position:sticky;top:0;z-index:3;background:var(--panel-2, #1f272c);border-bottom:1px solid var(--line);height:40px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--ink, #e3ecee);letter-spacing:.2px}.calendar-header-corner{left:0;z-index:4;border-right:1px solid var(--line);background:var(--panel-2, #1f272c)}.calendar-header-cell{border-right:1px solid var(--grid)}.calendar-header-cell-weekend{background:#ffffff05;color:var(--ink-dim, #8fa3a7)}.calendar-row-label{position:sticky;left:0;z-index:2;background:var(--panel, #171d21);border-right:1px solid var(--line);border-bottom:1px solid var(--grid);height:60px;padding:6px 12px;display:flex;flex-direction:column;justify-content:center;gap:2px}.calendar-row-name{font-size:13px;font-weight:600;color:var(--ink, #e3ecee);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-row-group{font-size:11px;color:var(--ink-dim, #8fa3a7);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-cell{height:60px;border-right:1px solid var(--grid);border-bottom:1px solid var(--grid);padding:4px;display:flex;align-items:center;justify-content:center;gap:2px;flex-wrap:wrap;overflow:hidden;background:transparent}.calendar-cell-weekend{background:#ffffff05}.calendar-chip{display:inline-block;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-size:11px;padding:2px 6px;border-radius:4px;background:#2fb8a51f;border:1px solid rgba(47,184,165,.3);color:#5fd4c1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:56px;line-height:1.4;cursor:default;letter-spacing:.2px}.calendar-chip-more{font-size:10px;color:var(--ink-dim, #8fa3a7);background:transparent;border:none;padding:0 4px;max-width:none;font-family:inherit}.calendar-chip-green{background:#53c88224;border-color:#53c88252;color:#7adfa3}.calendar-chip-yellow{background:#e7b85829;border-color:#e7b85857;color:#f0c97a}.calendar-chip-red{background:#e45a5a29;border-color:#e45a5a57;color:#f08a8a}.calendar-count{font-size:13px;font-weight:600;color:#5fd4c1;cursor:pointer;padding:2px 8px;border-radius:4px;background:#2fb8a51f;border:1px solid rgba(47,184,165,.3);transition:background .12s ease,border-color .12s ease;-webkit-user-select:none;user-select:none}.calendar-count:hover{background:#2fb8a538;border-color:#2fb8a580}.calendar-count-empty{color:var(--ink-dim, #8fa3a7);cursor:default;background:transparent;border-color:transparent;font-weight:400}.calendar-empty{padding:32px 16px;text-align:center;font-size:13px;color:var(--ink-dim, #8fa3a7);background:transparent;border-radius:10px;border:1px dashed var(--line)}.calendar-grid-compact{max-height:360px;font-size:11px}.calendar-grid-compact .calendar-cell,.calendar-grid-compact .calendar-row-label{height:40px}.calendar-grid-compact .calendar-header-corner,.calendar-grid-compact .calendar-header-cell{height:30px}.calendar-modal-list{list-style:none;margin:0;padding:0;max-height:420px;overflow-y:auto}.calendar-modal-list li{padding:14px 18px;border-bottom:1px solid var(--grid);font-size:13px;color:var(--ink, #e3ecee);cursor:pointer;transition:background .12s ease}.calendar-modal-list li:hover{background:#2fb8a50f}.calendar-modal-list li:focus-visible{outline:2px solid rgba(47,184,165,.6);outline-offset:-2px}.calendar-modal-list li:last-child{border-bottom:none}.calendar-modal-list .calendar-modal-empty{cursor:default;padding:16px 18px;color:var(--ink-dim, #8fa3a7);text-align:center}.calendar-modal-list .calendar-modal-empty:hover{background:transparent}.calendar-modal-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px}.calendar-modal-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;font-weight:600;color:#5fd4c1;letter-spacing:.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.calendar-modal-status{font-size:11px;padding:2px 8px;border-radius:4px;background:#2fb8a51f;border:1px solid rgba(47,184,165,.3);color:#5fd4c1;white-space:nowrap;flex-shrink:0}.calendar-modal-title{margin:0 0 4px;font-size:13px;color:var(--ink, #e3ecee);line-height:1.5;word-break:break-word}.calendar-modal-meta{color:var(--ink-dim, #8fa3a7);font-size:11px;line-height:1.4}.calendar-grid::-webkit-scrollbar,.calendar-modal-list::-webkit-scrollbar{width:6px;height:6px}.calendar-grid::-webkit-scrollbar-track,.calendar-modal-list::-webkit-scrollbar-track{background:transparent}.calendar-grid::-webkit-scrollbar-thumb,.calendar-modal-list::-webkit-scrollbar-thumb{background:#b4cdcd2e;border-radius:3px}.calendar-grid::-webkit-scrollbar-thumb:hover,.calendar-modal-list::-webkit-scrollbar-thumb:hover{background:#b4cdcd52}.calendar-grid{scrollbar-width:thin;scrollbar-color:rgba(180,205,205,.18) transparent}.trc-page{display:grid;gap:18px;padding-bottom:32px}.trc-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:14px;border:1px solid rgba(180,205,205,.14);border-radius:8px;background:#171d21c7}.trc-toolbar label{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px}.trc-toolbar select,.trc-toolbar input{min-height:30px;max-width:190px;color:var(--text);background:#0a0f11b8;border:1px solid rgba(95,159,214,.3);border-radius:4px;padding:4px 8px}.trc-btn{min-height:30px;border:1px solid rgba(47,184,165,.34);border-radius:4px;padding:5px 11px;color:#dff8f5;background:#2fb8a51f}.trc-btn:hover{background:#2fb8a538}.trc-btn.ghost{color:#c8d7da;border-color:#b4cdcd2e;background:transparent}.trc-note{margin-left:auto;color:var(--muted);font-size:12px}.trc-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.trc-kpi{min-width:0;padding:14px 16px;border:1px solid rgba(180,205,205,.13);border-radius:8px;background:linear-gradient(180deg,#1f272ce6,#12181cdb)}.trc-kpi span,.trc-kpi small{display:block;color:var(--muted);font-size:12px}.trc-kpi strong{display:block;margin:7px 0 4px;color:#f2f7f7;font:700 26px DIN Alternate,Menlo,monospace}.trc-input-panel{padding:14px;border:1px solid rgba(180,205,205,.13);border-radius:8px;background:#171d21b8}.trc-input-grid{display:grid;grid-template-columns:minmax(170px,1.2fr) 144px minmax(180px,1.3fr) 126px 104px minmax(160px,1fr) auto auto;gap:10px;align-items:end}.trc-input-grid label{display:grid;gap:5px;color:var(--muted);font-size:12px}.trc-input-grid input,.trc-input-grid select{min-height:32px;min-width:0;color:var(--text);background:#0a0f11b8;border:1px solid rgba(95,159,214,.3);border-radius:4px;padding:5px 8px}.trc-btn.primary{background:#2fb8a538}.trc-input-table-wrap{margin-top:12px;max-height:260px;overflow:auto;border:1px solid rgba(180,205,205,.1);border-radius:6px}.trc-input-table{width:100%;min-width:760px;border-collapse:collapse;font-size:12px}.trc-input-table th,.trc-input-table td{padding:9px 10px;border-bottom:1px solid var(--grid);text-align:left;vertical-align:middle}.trc-input-table th{position:sticky;top:0;color:#dce8e8;background:var(--panel-2)}.trc-input-table small{display:block;margin-top:2px;color:var(--muted)}.trc-mini{min-height:24px;margin-right:6px;padding:3px 8px;border:1px solid rgba(95,159,214,.26);border-radius:4px;color:#dce8e8;background:#5f9fd61a}.trc-mini.danger{border-color:#d65f4f4d;color:#f1b8ae;background:#d65f4f1a}.trc-input-empty{margin-top:12px;padding:18px}.trc-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,310px);gap:16px;align-items:start}.trc-board,.trc-side,.trc-table-wrap{border:1px solid rgba(180,205,205,.13);border-radius:8px;background:#171d21b8}.trc-board{padding:14px;overflow-x:auto}.trc-side{display:grid;gap:14px;padding:14px}.trc-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.trc-section-title h2,.trc-bars h3{margin:0;color:var(--text);font-size:15px;letter-spacing:0}.trc-section-title span{color:var(--muted);font-size:12px}.trc-calendar{display:grid;grid-template-columns:repeat(7,minmax(86px,1fr));gap:6px;min-width:680px}.trc-week{color:var(--muted);text-align:center;font-size:12px;font-weight:600}.trc-day{min-height:78px;display:grid;align-content:space-between;gap:5px;padding:9px;border:1px solid rgba(180,205,205,.12);border-radius:6px;background:#0c1114b8}.trc-day em{color:var(--muted);font-style:normal;font-size:12px}.trc-day strong{color:var(--text);font:700 19px DIN Alternate,Menlo,monospace}.trc-day small{color:var(--muted);font-size:11px}.trc-day.tone-ok{border-color:#64b86a47;background:#64b86a14}.trc-day.tone-warn{border-color:#d99a3257;background:#d99a321f}.trc-day.tone-high{border-color:#d65f4f6b;background:#d65f4f26}.trc-day.tone-off{opacity:.54}.trc-day.is-blank{visibility:hidden}.trc-bars ul{display:grid;gap:9px;list-style:none;padding:0;margin:10px 0 0}.trc-bars li{display:grid;grid-template-columns:minmax(72px,1fr) minmax(70px,1fr) 54px;align-items:center;gap:8px;color:var(--muted);font-size:12px}.trc-bars i,.trc-member i{display:block;height:7px;border-radius:999px;background:linear-gradient(90deg,var(--primary) 0 var(--w),rgba(180,205,205,.1) var(--w) 100%)}.trc-bars b{color:var(--text);text-align:right;font:700 12px Menlo,monospace}.trc-muted{color:var(--muted)}.trc-members{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.trc-member{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(82px,.9fr) 56px;align-items:center;gap:10px;padding:11px 12px;border:1px solid rgba(180,205,205,.12);border-radius:6px;background:#12181cb8}.trc-member strong,.trc-member span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trc-member strong{color:var(--text);font-size:13px}.trc-member span{color:var(--muted);font-size:11px}.trc-member b{color:var(--text);text-align:right;font:700 12px Menlo,monospace}.trc-member.tone-warn i{background:linear-gradient(90deg,var(--warning) 0 var(--w),rgba(180,205,205,.1) var(--w) 100%)}.trc-member.tone-high i{background:linear-gradient(90deg,var(--danger) 0 var(--w),rgba(180,205,205,.1) var(--w) 100%)}.trc-table-wrap{overflow:auto}.trc-table{width:100%;min-width:820px;border-collapse:collapse;font-size:12px}.trc-table th,.trc-table td{padding:10px 12px;border-bottom:1px solid var(--grid);text-align:left;vertical-align:top}.trc-table th{position:sticky;top:0;color:#dce8e8;background:var(--panel-2);font-weight:600}.trc-table td{color:#d8e1e1}.trc-table small{display:block;margin-top:3px;color:var(--muted)}.trc-empty{padding:28px 16px;color:var(--muted);text-align:center;border:1px dashed rgba(180,205,205,.18);border-radius:8px;background:#171d2173}@media(max-width:980px){.trc-kpis,.trc-main,.trc-input-grid{grid-template-columns:1fr}.trc-note{width:100%;margin-left:0}}@media(max-width:640px){.trc-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.trc-toolbar label,.trc-toolbar select,.trc-toolbar input,.trc-btn{width:100%;max-width:none}}#toast-container{position:fixed;top:20px;right:20px;z-index:2000;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:center;gap:8px;padding:12px 16px;background:#0f172a;border:1px solid rgba(255,255,255,.15);border-radius:8px;color:#e2e8f0;min-width:240px;max-width:480px;box-shadow:0 8px 24px #0006;animation:toast-slide-in .2s ease;font-size:14px}.toast-error{border-left:4px solid #dc2626}.toast-success{border-left:4px solid #16a34a}.toast-info{border-left:4px solid #2563eb}.toast-icon{flex-shrink:0}.toast-message{flex:1;word-break:break-word}.toast-close{background:none;border:none;color:inherit;cursor:pointer;font-size:18px;padding:0 4px;margin-left:auto;opacity:.7;line-height:1}.toast-close:hover{opacity:1}@keyframes toast-slide-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.crud-panel-loading,.crud-panel-error{text-align:center;padding:32px 16px;color:#94a3b8;font-size:14px}.crud-panel-error{color:#fca5a5}.crud-panel-error .crud-btn{margin-left:8px}.crud-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(148,163,184,.3);border-top-color:#94a3b8;border-radius:50%;margin-right:8px;vertical-align:middle;animation:crud-spin .8s linear infinite}@keyframes crud-spin{to{transform:rotate(360deg)}}@media(max-width:640px){#toast-container{top:12px;right:12px;left:12px}.toast{min-width:auto}}.vr-page{display:flex;flex-direction:column;gap:18px;padding:16px 24px;color:#e2e8f0}.vr-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.vr-kpi-card{position:relative;display:flex;flex-direction:column;gap:8px;padding:16px 18px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:linear-gradient(135deg,#1e293bd9,#0f172af2);box-shadow:0 8px 24px #00000040;min-height:96px;overflow:hidden;transition:border-color .2s ease,transform .2s ease}.vr-kpi-card:hover{border-color:#3b82f680;transform:translateY(-1px)}.vr-kpi-card:before{content:"";position:absolute;top:16px;bottom:16px;left:0;width:3px;border-radius:0 3px 3px 0;background:#2fb8a5d1}.vr-kpi-label{color:#94a3b8;font-size:12px;font-weight:500;letter-spacing:.04em}.vr-kpi-value{margin-top:4px;color:#e2e8f0;font:650 26px DIN Alternate,Menlo,ui-monospace,monospace;line-height:1.1}.vr-kpi-sub{margin-top:2px;color:#cbd5e1;font-size:13px;line-height:1.45;word-break:break-word}.vr-kpi-card.vr-kpi-danger:before{background:#ef4444}.vr-kpi-card.vr-kpi-danger .vr-kpi-value{color:#ef9a91}.vr-tabs{margin:4px 0 0}.vr-panel-host{margin-top:4px}.vr-toolbar{display:flex;align-items:center;gap:12px;padding:12px 16px;border:1px solid rgba(255,255,255,.07);border-radius:8px;background:#171d21ad}.vr-toolbar-label{display:inline-flex;align-items:center;gap:8px;color:#cbd5e1;font-size:13px}.vr-product-line{min-width:160px;min-height:34px;padding:0 28px 0 10px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:#1f272cf5;color:#e2e8f0;font:inherit;font-size:13px;outline:none;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.vr-product-line:focus{border-color:#2fb8a5b8;box-shadow:0 0 0 2px #2fb8a51f}.vr-list-wrap{overflow:auto;border:1px solid rgba(255,255,255,.07);border-radius:8px;background:#1014176b}.vr-table{width:100%;min-width:760px;border-collapse:collapse}.vr-table th,.vr-table td{padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.06);vertical-align:middle;text-align:left;font-size:13px}.vr-table th{position:sticky;top:0;z-index:1;background:#263238f5;color:#b6c4c4;font-size:12px;font-weight:600;letter-spacing:.04em;white-space:nowrap}.vr-table td{color:#dbe4e4;line-height:1.5}.vr-list-body tr:last-child td{border-bottom:0}.vr-list-body tr:hover{background:#26323861}.vr-list-empty{padding:28px 16px;color:#94a3b8;text-align:center;font-size:13px}.vr-pagination{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:10px 14px;border-top:1px solid rgba(255,255,255,.06);background:#171d21c7;color:#94a3b8;font-size:13px}.vr-pagination button{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:0 12px;border:1px solid rgba(255,255,255,.12);border-radius:4px;background:#ffffff0a;color:#e2e8f0;cursor:pointer;font:inherit;font-size:12px;transition:background .15s ease,border-color .15s ease}.vr-pagination button:hover:not(:disabled){border-color:#ffffff38;background:#ffffff14}.vr-pagination button:disabled{cursor:not-allowed;opacity:.45}.vr-pagi-info{color:#b6c4c4;font-size:12px}@media(max-width:1080px){.vr-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.vr-page{padding:12px 14px;gap:12px}.vr-kpis{grid-template-columns:1fr;gap:10px}.vr-toolbar{flex-wrap:wrap}}
