:root{--navy: #0a2540;--navy-700: #123150;--navy-600: #1c4068;--blue: #2563eb;--blue-soft: #e8f0fe;--ink: #0f172a;--muted: #64748b;--line: #e2e8f0;--bg: #f4f6f9;--card: #ffffff;--green: #16a34a;--green-soft: #dcfce7;--amber: #d97706;--amber-soft: #fef3c7;--red: #dc2626;--red-soft: #fee2e2;--radius: 12px;--shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 24px rgba(15, 23, 42, .06);font-family:Inter,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}h1,h2,h3{font-family:"Source Serif 4",Georgia,serif;letter-spacing:-.01em;margin:0}.mono{font-family:JetBrains Mono,monospace}.shell{display:flex;min-height:100vh}.sidebar{width:248px;background:var(--navy);color:#cdd9e8;flex-shrink:0;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{padding:22px 22px 16px;border-bottom:1px solid rgba(255,255,255,.08)}.brand .logo{font-family:"Source Serif 4",serif;font-size:19px;font-weight:700;color:#fff}.brand .sub{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#6f8bab;margin-top:4px}.nav{padding:12px;flex:1;overflow-y:auto}.nav a{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:9px;color:#b6c6da;font-size:14px;font-weight:500;margin-bottom:2px;transition:background .12s,color .12s}.nav a:hover{background:#ffffff0f;color:#fff}.nav a.active{background:var(--blue);color:#fff}.nav a .ic{width:18px;text-align:center;opacity:.9}.nav .group-label{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#5d77a0;padding:16px 12px 6px}.sidebar .who{padding:14px 18px;border-top:1px solid rgba(255,255,255,.08);font-size:13px}.sidebar .who .name{color:#fff;font-weight:600}.sidebar .who .role{color:#7d97b8;font-size:12px;margin-top:2px}.sidebar .who button{margin-top:10px;background:transparent;border:1px solid rgba(255,255,255,.18);color:#cdd9e8;padding:7px 10px;border-radius:8px;font-size:12px;cursor:pointer;width:100%}.sidebar .who button:hover{background:#ffffff14}.main{flex:1;min-width:0}.topbar{padding:24px 36px 8px}.topbar .eyebrow{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.topbar h1{font-size:27px;margin-top:4px;color:var(--navy)}.content{padding:18px 36px 56px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card .card-head{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.card .card-head h3{font-size:16px;color:var(--navy)}.card .card-body{padding:20px}.grid{display:grid;gap:18px}.cols-4{grid-template-columns:repeat(4,1fr)}.cols-3{grid-template-columns:repeat(3,1fr)}.cols-2{grid-template-columns:repeat(2,1fr)}.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow)}.stat .label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.stat .value{font-family:JetBrains Mono,monospace;font-size:30px;font-weight:600;color:var(--navy);margin-top:8px}.stat .value.accent{color:var(--blue)}.stat .hint{font-size:12px;color:var(--muted);margin-top:4px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);padding:12px 16px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:13px 16px;border-bottom:1px solid var(--line);color:var(--ink)}tr:last-child td{border-bottom:none}tbody tr:hover{background:#fafbfd}.row-link{cursor:pointer}.badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;white-space:nowrap}.badge .dot{width:7px;height:7px;border-radius:50%}.badge.pending{background:var(--amber-soft);color:var(--amber)}.badge.pending .dot{background:var(--amber)}.badge.approved{background:var(--green-soft);color:var(--green)}.badge.approved .dot{background:var(--green)}.badge.rejected{background:var(--red-soft);color:var(--red)}.badge.rejected .dot{background:var(--red)}.stepper{display:flex;align-items:stretch;gap:0}.step{flex:1;position:relative;padding:14px 14px 14px 18px}.step+.step{border-left:none}.step .ring{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;border:2px solid var(--line);color:var(--muted);background:#fff}.step .s-role{font-size:13px;font-weight:600;color:var(--ink);margin-top:8px}.step .s-meta{font-size:12px;color:var(--muted);margin-top:2px}.step .connector{position:absolute;top:27px;left:44px;right:-6px;height:2px;background:var(--line)}.step:last-child .connector{display:none}.step.done .ring{background:var(--green);border-color:var(--green);color:#fff}.step.done .connector{background:var(--green)}.step.current .ring{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 0 0 4px var(--blue-soft)}.step.rejected .ring{background:var(--red);border-color:var(--red);color:#fff}.step.skipped .ring{background:#f1f5f9;border-color:var(--line);color:var(--muted)}.field{margin-bottom:16px}.field label{display:block;font-size:13px;font-weight:600;color:var(--ink);margin-bottom:6px}.field .opt{color:var(--muted);font-weight:400}input,select,textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:9px;font-size:14px;font-family:inherit;color:var(--ink);background:#fff}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}textarea{resize:vertical;min-height:72px}.checkbox{display:flex;align-items:center;gap:9px;font-size:14px}.checkbox input{width:auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:9px;font-size:14px;font-weight:600;cursor:pointer;border:1px solid transparent;font-family:inherit}.btn.primary{background:var(--blue);color:#fff}.btn.primary:hover{background:#1d4ed8}.btn.ghost{background:#fff;border-color:var(--line);color:var(--ink)}.btn.ghost:hover{background:#f8fafc}.btn.success{background:var(--green);color:#fff}.btn.danger{background:var(--red);color:#fff}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-sm{padding:7px 12px;font-size:13px}.calc-line{background:var(--blue-soft);border:1px solid #c7dafe;border-radius:9px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between}.calc-line .n{font-family:JetBrains Mono,monospace;font-size:22px;font-weight:600;color:var(--navy)}.notice{padding:11px 14px;border-radius:9px;font-size:13px;margin-bottom:14px}.notice.error{background:var(--red-soft);color:#991b1b;border:1px solid #fecaca}.notice.ok{background:var(--green-soft);color:#166534;border:1px solid #bbf7d0}.notice.info{background:var(--blue-soft);color:var(--navy-700);border:1px solid #c7dafe}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a254066;display:flex;align-items:flex-start;justify-content:center;padding:48px 16px;z-index:50;overflow-y:auto}.modal{background:#fff;border-radius:14px;width:100%;max-width:620px;box-shadow:0 24px 64px #0a254047}.modal .m-head{padding:18px 22px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.modal .m-head h3{font-size:18px;color:var(--navy)}.modal .m-head .x{cursor:pointer;color:var(--muted);font-size:22px;line-height:1;background:none;border:none}.modal .m-body{padding:22px}.modal .m-foot{padding:16px 22px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:10px}.kv{display:grid;grid-template-columns:130px 1fr;gap:8px 16px;font-size:14px}.kv .k{color:var(--muted)}.kv .v{color:var(--ink);font-weight:500}.trail{margin-top:4px}.trail-item{display:flex;gap:12px;padding:12px 0;border-top:1px solid var(--line)}.trail-item .ti-dot{width:22px;height:22px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:12px;color:#fff}.trail-item.approved .ti-dot{background:var(--green)}.trail-item.rejected .ti-dot{background:var(--red)}.trail-item.skipped .ti-dot{background:#94a3b8}.trail-item .ti-role{font-weight:600;font-size:14px}.trail-item .ti-comment{font-size:13px;color:var(--muted);margin-top:3px}.trail-item .ti-time{font-size:12px;color:var(--muted);margin-top:3px}.empty{text-align:center;padding:56px 20px;color:var(--muted)}.empty .big{font-size:32px;margin-bottom:8px}.pill-tag{font-size:12px;padding:3px 9px;border-radius:999px;background:#f1f5f9;color:var(--navy-700);font-weight:600}.login-wrap{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr}.login-art{position:relative;overflow:hidden;background:linear-gradient(150deg,#0a2540,#0e3a66 55%,#14508c);color:#fff;padding:56px;display:flex;flex-direction:column;justify-content:center}.login-art .art-blob{position:absolute;border-radius:50%;filter:blur(8px);opacity:.35;pointer-events:none}.login-art .art-blob-1{width:360px;height:360px;right:-90px;top:-80px;background:radial-gradient(circle at 30% 30%,#4c8dff,transparent 70%)}.login-art .art-blob-2{width:300px;height:300px;left:-70px;bottom:-90px;background:radial-gradient(circle at 50% 50%,#2563eb,transparent 70%);opacity:.25}.login-art .art-inner{position:relative;z-index:1}.login-art .brand{display:flex;align-items:center;gap:16px}.login-art .brand-mark{flex:none;filter:drop-shadow(0 8px 20px rgba(0,0,0,.25))}.login-art .brand-kicker{font-family:JetBrains Mono,monospace;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:#8fb4e6;margin-bottom:2px}.login-art .logo{font-family:"Source Serif 4",serif;font-size:34px;font-weight:700;line-height:1.05}.login-art p{color:#b9cbe2;max-width:380px;line-height:1.6;margin-top:22px}.login-art .chain{margin-top:36px;display:flex;flex-direction:column;gap:14px}.login-art .chain .ch{display:flex;align-items:center;gap:12px;color:#cdd9e8;font-size:14px}.login-art .chain .ch .n{width:26px;height:26px;border-radius:50%;background:#ffffff24;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}.login-art .art-foot{margin-top:48px;font-size:12.5px;color:#7f9dc4;letter-spacing:.03em}.login-form{display:flex;align-items:center;justify-content:center;padding:40px}.login-form .box{width:100%;max-width:360px}.login-form .form-brand{display:none;align-items:center;gap:10px;font-weight:700;color:var(--navy);margin-bottom:22px}.login-form .form-brand svg{width:34px;height:34px}.login-form h2{font-size:24px;color:var(--navy);margin-bottom:6px}.login-form .lead{color:var(--muted);font-size:14px;margin-bottom:26px}@media (max-width: 880px){.cols-4,.cols-3,.cols-2,.login-wrap{grid-template-columns:1fr}.login-art{display:none}.login-form .form-brand{display:flex}.sidebar{position:fixed;z-index:40;transform:translate(-100%);transition:transform .2s}.sidebar.open{transform:translate(0)}.content,.topbar{padding-left:18px;padding-right:18px}}.muted{color:var(--muted)}.email-list{display:flex;flex-direction:column;gap:8px}.email-row{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border:1px solid var(--line);border-radius:9px;background:#fff}.email-row .x{cursor:pointer;color:var(--muted);font-size:20px;line-height:1;background:none;border:none;padding:0 4px}.email-row .x:hover{color:var(--red)}.boot{display:flex;align-items:center;justify-content:center;min-height:100vh;color:var(--muted);font-size:14px}.balance-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}.bal{border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:var(--panel, #f8fafc)}.bal .bl{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.bal .bn{font-family:JetBrains Mono,monospace;font-size:22px;font-weight:600;color:var(--navy);margin-top:2px}.seg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden}.seg button{border:none;background:#fff;padding:9px 20px;font-size:14px;cursor:pointer;color:var(--muted)}.seg button+button{border-left:1px solid var(--line)}.seg button.on{background:var(--navy);color:#fff;font-weight:600}.calc-line.subtle{background:#f8fafc;border-color:var(--line);margin-top:10px}.calc-line.subtle .n{font-size:18px}.calc-line .n.neg{color:var(--red)}.multiselect{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:13.5px;color:var(--ink, #1f2937);cursor:pointer;transition:all .12s}.chip:hover{border-color:var(--blue, #2563eb)}.chip .tick{font-weight:700;color:var(--muted)}.chip.on{background:var(--navy);border-color:var(--navy);color:#fff}.chip.on .tick{color:#fff}.danger-card{border-color:#f3c9c9}.danger-card .card-head h3{color:var(--red)}.confirm-box{border:1px solid #f3c9c9;background:var(--red-soft);border-radius:10px;padding:16px}.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}.legend span{display:inline-flex;align-items:center;gap:6px}.legend .sw{width:14px;height:14px;border-radius:3px;display:inline-block;border:1px solid rgba(0,0,0,.06)}.sw.approved{background:#1d4ed8}.sw.pending{background:#f59e0b}.sw.ov2{background:#fde68a}.sw.ov3{background:#fca5a5}.cal-scroll{overflow-x:auto}table.cal{border-collapse:separate;border-spacing:0;font-size:12px}table.cal th,table.cal td{border-right:1px solid #eef1f5;border-bottom:1px solid #eef1f5}table.cal .corner,table.cal .rowhead{position:sticky;left:0;z-index:2;background:#fff;min-width:150px;max-width:150px;width:150px;text-align:left;padding:0 12px;font-weight:600;color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-right:1px solid var(--line)}table.cal thead .corner{z-index:3;background:#f8fafc}table.cal .month{background:#f8fafc;color:var(--navy);font-weight:700;text-align:center;padding:7px 4px;letter-spacing:.02em;border-bottom:1px solid var(--line)}table.cal .day{width:26px;min-width:26px;max-width:26px;text-align:center;padding:3px 0;background:#fff;color:var(--muted);line-height:1.1}table.cal .day .dn{font-weight:600;color:var(--navy);font-size:11px}table.cal .day .dw{font-size:9px;opacity:.7}table.cal td.cell{height:26px}table.cal .we{background:#f4f6f9}table.cal td.cell.on{cursor:pointer}table.cal td.cell.on.approved{background:#1d4ed8}table.cal td.cell.on.approved.we{background:#1e40af}table.cal td.cell.on.pending{background:#f59e0b}table.cal td.cell.on.pending.we{background:#e0900b}table.cal td.cell.on:hover{filter:brightness(1.12)}table.cal .rowhead{font-weight:500;color:#1f2937}table.cal .ov-row .rowhead{font-weight:700;color:var(--navy)}table.cal td.ovcell{text-align:center;font-weight:700;color:#7c2d12;height:22px}table.cal td.ovcell.ov1{background:#fef9c3}table.cal td.ovcell.ov2{background:#fde68a}table.cal td.ovcell.ov3{background:#fca5a5;color:#7f1d1d}.clash-list{display:flex;flex-direction:column}.clash{display:flex;gap:18px;align-items:center;padding:12px 20px;border-bottom:1px solid var(--line)}.clash:last-child{border-bottom:none}.clash-when{min-width:200px}.clash-when .cd{font-weight:600;color:var(--navy)}.clash-people{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.clash .person{background:#f1f5f9;border:1px solid var(--line);border-radius:8px;padding:6px 11px;cursor:pointer;font-size:13px;color:var(--navy);display:inline-flex;align-items:center;gap:7px}.clash .person:hover{background:#e7eef7}.clash .vs{color:var(--muted);font-size:12px}.dotst{width:9px;height:9px;border-radius:50%;display:inline-block}.dotst.approved{background:#1d4ed8}.dotst.pending_fna,.dotst.pending_services,.dotst.pending_director{background:#f59e0b}.notify-block{padding:16px 0;border-top:1px solid var(--line)}.notify-block:first-of-type{border-top:none}.notify-block .nb-title{font-weight:600;color:var(--navy);font-size:14.5px}.notify-block .nb-help{font-size:12.5px;line-height:1.5;margin:2px 0 12px}.ms{position:relative}.ms-control{min-height:42px;display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:6px 30px 6px 10px;border:1px solid var(--line);border-radius:9px;background:#fff;cursor:text;position:relative}.ms-control:hover{border-color:#c7d2e0}.ms-ph{color:#9aa6b4;font-size:14px;padding:2px}.ms-tag{display:inline-flex;align-items:center;gap:6px;background:var(--navy);color:#fff;border-radius:7px;padding:4px 8px;font-size:13px}.ms-tag .ms-x{background:none;border:none;color:#cfe0f5;font-size:15px;line-height:1;cursor:pointer;padding:0}.ms-tag .ms-x:hover{color:#fff}.ms-caret{position:absolute;right:11px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:12px;pointer-events:none}.ms-panel{position:absolute;z-index:30;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 16px 40px #0a254029;overflow:hidden}.ms-search{width:100%;border:none;border-bottom:1px solid var(--line);padding:11px 14px;font-size:14px;outline:none;border-radius:0}.ms-list{max-height:240px;overflow-y:auto;padding:6px}.ms-option{width:100%;display:flex;align-items:center;gap:10px;padding:9px 10px;border:none;background:none;border-radius:7px;cursor:pointer;font-size:14px;color:#1f2937;text-align:left}.ms-option:hover{background:#f1f5f9}.ms-option.on{color:var(--navy);font-weight:600}.ms-option .ms-check{width:18px;height:18px;flex:none;border:1.5px solid var(--line);border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:12px;color:#fff}.ms-option.on .ms-check{background:var(--navy);border-color:var(--navy)}.ms-none{padding:14px;color:var(--muted);font-size:13px}.ms-foot{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;border-top:1px solid var(--line);font-size:12.5px;color:var(--muted)}.ms-clear{background:none;border:none;color:var(--blue, #2563eb);cursor:pointer;font-size:12.5px}td.num,th.num{text-align:right}.bal-wrap{display:grid;grid-template-columns:300px 1fr;gap:18px;align-items:start}.bal-picker{padding:0;overflow:hidden}.bal-search{padding:12px 14px;border-bottom:1px solid var(--line)}.bal-search input{width:100%}.bal-list{max-height:620px;overflow-y:auto}.bal-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;border:none;border-bottom:1px solid var(--line);background:#fff;cursor:pointer;text-align:left}.bal-item:hover{background:#f6f9fd}.bal-item.on{background:#eef4fc;box-shadow:inset 3px 0 0 var(--navy)}.bi-name{font-weight:600;color:var(--navy);font-size:14px}.bi-sub{font-size:12px;color:var(--muted);margin-top:1px}.bi-rem{font-family:JetBrains Mono,monospace;font-weight:700;font-size:16px}.bi-rem.pos{color:#16a34a}.bi-rem.low{color:#d97706}.bi-rem.neg{color:var(--red)}.bal-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.bcard{border:1px solid var(--line);border-radius:11px;padding:14px 16px;background:#fbfcfe}.bcard .bl{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.bcard .bv{font-family:JetBrains Mono,monospace;font-size:24px;font-weight:600;color:var(--navy);margin-top:4px}.bcard.hero{background:var(--navy);border-color:var(--navy)}.bcard.hero .bl{color:#9db4cf}.bcard.hero .bv{color:#fff}.bcard.hero.pos .bv{color:#7ee2a8}.bcard.hero.low .bv{color:#fcd34d}.bcard.hero.neg{background:#7f1d1d;border-color:#7f1d1d}.bcard.hero.neg .bv{color:#fecaca}.bal-formula{margin-top:14px;font-size:12.5px}@media (max-width: 880px){.bal-wrap{grid-template-columns:1fr}.bal-cards{grid-template-columns:1fr 1fr}}.filter-bar{display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap;margin-bottom:14px}.field.inline{margin-bottom:0;min-width:200px}.field.inline label{display:block;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}tr.muted-row td{color:var(--muted)}.dash-filters{display:flex;gap:18px;align-items:flex-end;flex-wrap:wrap;padding:16px 20px}.dash-filters .field.inline{min-width:170px}.dash-filters .range-note{margin-left:auto;align-self:center;font-size:12.5px}.pw-wrap{position:relative}.pw-wrap input{padding-right:44px;width:100%}.pw-eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;padding:4px;cursor:pointer;color:var(--muted);display:flex;align-items:center}.pw-eye:hover{color:var(--navy)}.linkbtn{display:block;width:100%;margin-top:14px;background:none;border:none;color:var(--blue, #2563eb);font-size:13.5px;cursor:pointer;text-align:center}.linkbtn:hover{text-decoration:underline}.login-art .brand{gap:20px}.login-art .logo{font-size:40px;line-height:1.1}.toast-wrap{position:fixed;right:24px;bottom:24px;z-index:60;max-width:380px}.toast{display:flex;align-items:flex-start;gap:13px;background:var(--navy);color:#fff;border-radius:13px;padding:16px 16px 15px;box-shadow:0 18px 44px #0a254057;animation:toast-in .28s ease-out}@keyframes toast-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.toast-icon{font-size:19px;line-height:1.2;flex:none}.toast-body{flex:1}.toast-title{font-weight:600;font-size:14.5px;line-height:1.45}.toast-link{margin-top:7px;background:none;border:none;padding:0;color:#8fc0ff;font-size:13.5px;font-weight:600;cursor:pointer}.toast-link:hover{color:#fff;text-decoration:underline}.toast-x{background:none;border:none;color:#9db4cf;font-size:19px;line-height:1;cursor:pointer;padding:0 2px;flex:none}.toast-x:hover{color:#fff}@media (max-width: 600px){.toast-wrap{left:16px;right:16px;bottom:16px;max-width:none}}.band-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.band-card{text-align:left;border:1px solid var(--line);border-radius:12px;padding:16px;background:#fbfcfe;cursor:pointer;transition:all .12s}.band-card:hover{border-color:var(--blue, #2563eb)}.band-card.on{border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy);background:#eef4fc}.band-card .bc-count{font-family:JetBrains Mono,monospace;font-size:30px;font-weight:700;color:var(--navy)}.band-card .bc-label{font-size:13px;color:var(--muted);margin:2px 0 10px}.band-card .bc-bar{height:7px;background:#e5ecf5;border-radius:4px;overflow:hidden}.band-card .bc-bar span{display:block;height:100%;background:var(--blue, #2563eb);border-radius:4px}.band-card .bc-pct{font-size:12px;color:var(--navy);font-weight:600;margin-top:6px}.highlight .hl-label{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.highlight .hl-name{font-family:"Source Serif 4",serif;font-size:26px;font-weight:700;color:var(--navy);margin-top:4px}.highlight .hl-sub{color:var(--muted);font-size:13.5px;margin-top:3px}@media (max-width: 700px){.band-cards{grid-template-columns:1fr}}.home{max-width:1100px;margin:0 auto}.home-hero{margin-bottom:26px}.home-hero .home-kicker{font-family:JetBrains Mono,monospace;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--blue, #2563eb)}.home-hero h1{font-family:"Source Serif 4",serif;font-size:34px;color:var(--navy);margin:6px 0 8px}.home-hero p{color:var(--muted);font-size:15px;max-width:620px;line-height:1.6}.home-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}.home-card{text-align:left;background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;cursor:pointer;transition:transform .12s,box-shadow .12s,border-color .12s;position:relative;overflow:hidden}.home-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--accent, #2563eb)}.home-card:hover{transform:translateY(-3px);box-shadow:0 16px 40px #0a254024;border-color:var(--accent, #2563eb)}.home-card .hc-icon{font-size:30px}.home-card .hc-title{font-size:18px;font-weight:700;color:var(--navy);margin-top:12px}.home-card .hc-desc{color:var(--muted);font-size:13.5px;line-height:1.55;margin-top:6px}.home-card .hc-go{margin-top:16px;font-weight:600;font-size:13.5px;color:var(--accent, #2563eb)}.nav a.home-link{background:#ffffff12;border:1px solid rgba(255,255,255,.14);color:#fff;font-weight:600;margin-bottom:6px}.nav a.home-link .ic{opacity:1;display:flex;align-items:center;justify-content:center}.nav a.home-link:hover{background:#ffffff21}.nav a.home-link.active{background:var(--blue);border-color:var(--blue)}.nav a.vac-main{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:9px;color:#b6c6da;font-size:14px;font-weight:500;margin-bottom:2px;transition:background .12s,color .12s}.nav a.vac-main:hover,.nav a.vac-main.vac-open{background:#ffffff0f;color:#fff}.nav a.vac-main .ic{width:18px;text-align:center}.nav .subnav{margin:2px 0 6px 10px;padding-left:10px;border-left:1px solid rgba(255,255,255,.12);display:flex;flex-direction:column;gap:2px}.nav a.subnav-link{padding:8px 12px;font-size:13px;color:#93a9c6}.nav a.subnav-link:hover{background:#ffffff0f;color:#fff}.nav a.subnav-link.active{background:var(--blue);color:#fff}.nav a.subnav-link .ic{width:16px;text-align:center;opacity:.85}.jira{--bg: #f5f7fa;--bg-card: #ffffff;--bg-elevated: #fafbfc;--border: #e3e8ef;--border-strong: #cbd5e1;--text: #0f172a;--text-dim: #475569;--text-faint: #94a3b8;--primary: #0a2540;--primary-soft: #e6edf5;--primary-strong: #1e40af;--accent: #2563eb;--accent-soft: #dbeafe;--success: #059669;--success-soft: #d1fae5;--warn: #d97706;--warn-soft: #fef3c7;--danger: #dc2626;--danger-soft: #fee2e2;--font-display: "Source Serif 4", Georgia, serif;--font-body: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", monospace;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .04);--shadow: 0 1px 3px rgba(15, 23, 42, .06), 0 1px 2px rgba(15, 23, 42, .04);--shadow-lg: 0 10px 25px rgba(15, 23, 42, .08), 0 4px 10px rgba(15, 23, 42, .04)}.jira{box-sizing:border-box}.jira,.jira #root{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.jira{min-height:100vh}.jira .shell{max-width:1440px;margin:0 auto;padding:32px 32px 80px}.jira .header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);padding-bottom:24px;margin-bottom:32px}.jira .header-left{display:flex;align-items:center;gap:20px}.jira .logo{width:44px;height:44px;background:var(--primary);border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--font-display);font-weight:700;font-size:22px;letter-spacing:-.04em}.jira .header h1{font-family:var(--font-display);font-weight:600;font-size:28px;line-height:1.1;letter-spacing:-.02em;margin:0;color:var(--primary)}.jira .header h1 .light{color:var(--text-dim);font-weight:400}.jira .header .meta{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);text-align:right}.jira .header .meta .status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--success);margin-right:6px;box-shadow:0 0 0 3px var(--success-soft)}.jira .filterbar{display:flex;gap:2px;margin-bottom:24px;padding:3px;background:#fff;border:1px solid var(--border);border-radius:8px;width:fit-content;box-shadow:var(--shadow-sm)}.jira .filterbar button{background:transparent;border:none;color:var(--text-dim);font-family:var(--font-body);font-size:13px;font-weight:500;padding:7px 14px;border-radius:5px;cursor:pointer;transition:all .15s ease}.jira .filterbar button:hover{color:var(--primary)}.jira .filterbar button.active{background:var(--primary);color:#fff}.jira .kpi-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-bottom:32px}.jira .kpi{background:#fff;border:1px solid var(--border);border-radius:10px;padding:20px;box-shadow:var(--shadow-sm);transition:box-shadow .15s}.jira .kpi:hover{box-shadow:var(--shadow)}.jira .kpi .label{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);margin-bottom:12px}.jira .kpi .value{font-family:var(--font-display);font-weight:600;font-size:32px;line-height:1;letter-spacing:-.02em;color:var(--primary)}.jira .kpi .sub{margin-top:8px;font-size:12px;color:var(--text-dim)}.jira .kpi.alert .value,.jira .kpi.alert .sub{color:var(--danger)}.jira .grid{display:grid;gap:20px}.jira .grid-2{grid-template-columns:1fr 1fr}.jira .grid-3{grid-template-columns:1fr 1fr 1fr}.jira .card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:24px;margin-bottom:20px;box-shadow:var(--shadow-sm)}.jira .card-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:18px}.jira .card h2{font-family:var(--font-display);font-weight:600;font-size:20px;margin:0;color:var(--primary);letter-spacing:-.01em}.jira .card .subtitle{font-size:12px;color:var(--text-faint);font-weight:400}.jira .hint{margin-top:10px;font-size:12px;color:var(--accent);font-weight:500}.jira .hint:before{content:"→ ";color:var(--accent)}.jira table{width:100%;border-collapse:collapse;font-size:13.5px}.jira th{text-align:left;padding:10px 12px;border-bottom:2px solid var(--border);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);font-weight:600}.jira td{padding:12px;border-bottom:1px solid var(--border);color:var(--text);font-variant-numeric:tabular-nums}.jira tr:last-child td{border-bottom:none}.jira td.num{font-family:var(--font-mono);text-align:right;font-size:12.5px}.jira td.name{font-weight:500;color:var(--primary)}.jira tr.clickable{cursor:pointer;transition:background .1s}.jira tr.clickable:hover td{background:var(--primary-soft)}.jira tr.clickable:hover td.name{color:var(--primary-strong)}.jira td .pill{display:inline-block;padding:2px 9px;border-radius:100px;font-size:11px;font-weight:600;background:var(--primary-soft);color:var(--primary);font-variant-numeric:tabular-nums}.jira td .pill.danger{background:var(--danger-soft);color:var(--danger)}.jira td .pill.warn{background:var(--warn-soft);color:var(--warn)}.jira td .pill.success{background:var(--success-soft);color:var(--success)}.jira .modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a66;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;display:flex;align-items:flex-start;justify-content:center;padding:32px;overflow-y:auto;animation:fade .15s ease-out}@keyframes fade{0%{opacity:0}to{opacity:1}}.jira .modal{background:var(--bg);border-radius:14px;max-width:1200px;width:100%;box-shadow:var(--shadow-lg);animation:slide .2s ease-out}@keyframes slide{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.jira .modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px 28px;background:#fff;border-radius:14px 14px 0 0;border-bottom:1px solid var(--border)}.jira .modal-header h2{font-family:var(--font-display);font-weight:600;font-size:26px;margin:0;color:var(--primary);letter-spacing:-.02em}.jira .modal-header .org-meta{font-size:12px;color:var(--text-faint);margin-top:4px}.jira .modal-close{background:#fff;border:1px solid var(--border);width:36px;height:36px;border-radius:8px;cursor:pointer;font-size:18px;color:var(--text-dim);display:flex;align-items:center;justify-content:center;transition:all .15s}.jira .modal-close:hover{background:var(--bg);border-color:var(--border-strong);color:var(--text)}.jira .modal-body{padding:24px 28px 28px}.jira .insights-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.jira .insight{background:#fff;border:1px solid var(--border);border-radius:10px;padding:16px}.jira .insight .label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);font-weight:500;margin-bottom:8px}.jira .insight .value{font-family:var(--font-display);font-weight:600;font-size:24px;color:var(--primary);line-height:1}.jira .insight .sub{margin-top:6px;font-size:11px;color:var(--text-dim)}.jira .insight.alert .value{color:var(--danger)}.jira .nature-pill{display:inline-block;padding:3px 10px;border-radius:100px;font-size:11px;font-weight:500}.jira .ticket-row{display:grid;grid-template-columns:80px 1fr 130px 100px 80px 100px;gap:12px;padding:10px 12px;border-bottom:1px solid var(--border);align-items:center;font-size:13px}.jira .ticket-row:last-child{border-bottom:none}.jira .ticket-row .ticket-key{font-family:var(--font-mono);font-size:11.5px;color:var(--primary);font-weight:600}.jira .ticket-row .ticket-summary{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jira .loading,.jira .empty{padding:60px;text-align:center;color:var(--text-faint);font-size:13px}.jira .loading:after{content:"";display:inline-block;width:14px;height:14px;margin-left:10px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;vertical-align:middle}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 1100px){.jira .kpi-grid{grid-template-columns:repeat(3,1fr)}.jira .insights-row{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.jira .shell{padding:20px 16px 48px}.jira .header{flex-direction:column;align-items:flex-start;gap:12px}.jira .kpi-grid{grid-template-columns:repeat(2,1fr)}.jira .grid-2,.jira .grid-3{grid-template-columns:1fr}.jira .ticket-row{grid-template-columns:1fr;gap:4px;padding:12px}.jira .modal-backdrop{padding:0}.jira .modal{border-radius:0;min-height:100vh}}.jira .tabbar{display:flex;gap:0;margin-bottom:28px;border-bottom:1px solid var(--border)}.jira .tabbar button{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-dim);font-family:var(--font-body);font-size:15px;font-weight:500;padding:12px 24px;margin-bottom:-1px;cursor:pointer;transition:all .15s ease}.jira .tabbar button:hover{color:var(--primary)}.jira .tabbar button.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.jira .upload-strip{background:#fff;border:1px solid var(--border);border-radius:10px;padding:20px;margin-bottom:24px;box-shadow:var(--shadow-sm)}.jira .upload-strip-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.jira .upload-strip-title{font-family:var(--font-display);font-weight:600;font-size:17px;color:var(--primary)}.jira .upload-strip-sub{font-size:12px;color:var(--text-faint);margin-top:2px}.jira .upload-status{padding:6px 12px;border-radius:6px;font-size:12px;font-weight:500}.jira .upload-status.ok{background:var(--success-soft);color:var(--success)}.jira .upload-status.err{background:var(--danger-soft);color:var(--danger)}.jira .upload-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.jira .upload-tile{display:block;padding:16px;background:var(--bg-elevated);border:1.5px dashed var(--border-strong);border-radius:8px;cursor:pointer;transition:all .15s ease}.jira .upload-tile:hover{background:var(--primary-soft);border-color:var(--primary)}.jira .upload-tile.uploading{opacity:.6;cursor:wait}.jira .upload-tile.stale{border-color:var(--warn);background:var(--warn-soft)}.jira .upload-tile-label{font-weight:600;font-size:13.5px;color:var(--primary);margin-bottom:4px}.jira .upload-tile-hint{font-size:11.5px;color:var(--text-dim);margin-bottom:10px;line-height:1.4}.jira .upload-tile-meta{font-size:11px;color:var(--text-faint);font-family:var(--font-mono)}.jira .upload-tile-meta strong{color:var(--primary);font-family:var(--font-body)}.jira .kpi-grid-6{grid-template-columns:repeat(6,1fr)}@media (max-width: 1200px){.jira .kpi-grid-6{grid-template-columns:repeat(3,1fr)}}@media (max-width: 700px){.jira .kpi-grid-6{grid-template-columns:repeat(2,1fr)}.jira .upload-tiles{grid-template-columns:1fr}}.jira .fuzai-launcher-wrap{position:fixed;bottom:24px;right:24px;z-index:1000;display:flex;flex-direction:column;align-items:flex-end;gap:12px;pointer-events:none}.jira .fuzai-launcher-wrap>*{pointer-events:auto}.jira .fuzai-peek{background:#fff;border:1px solid var(--border);border-radius:12px;padding:14px 16px 14px 18px;box-shadow:0 8px 24px #0f172a1f,0 2px 6px #0f172a0d;max-width:260px;cursor:pointer;position:relative;animation:fuzaiPeekIn .6s cubic-bezier(.34,1.56,.64,1) 1s both,fuzaiBob 3s ease-in-out 1.6s infinite;transition:transform .15s ease}.jira .fuzai-peek:hover{transform:translateY(-2px);animation-play-state:paused}.jira .fuzai-peek-title{font-family:var(--font-display);font-weight:600;font-size:16px;color:var(--primary);margin-bottom:4px;letter-spacing:-.01em}.jira .fuzai-peek-title span{background:linear-gradient(135deg,#2563eb,#7c3aed,#db2777);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-weight:700}.jira .fuzai-peek-sub{font-size:12px;color:var(--text-dim);line-height:1.4}.jira .fuzai-peek-arrow{position:absolute;bottom:-7px;right:28px;width:14px;height:14px;background:#fff;border-right:1px solid var(--border);border-bottom:1px solid var(--border);transform:rotate(45deg)}@keyframes fuzaiPeekIn{0%{opacity:0;transform:translateY(20px) scale(.85)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fuzaiBob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.jira .fuzai-launcher{background:linear-gradient(135deg,#0a2540,#1e3a8a,#0a2540);background-size:200% 200%;border:none;cursor:pointer;color:#fff;display:flex;align-items:center;gap:10px;padding:12px 18px 12px 14px;border-radius:100px;font-family:var(--font-body);font-weight:600;font-size:14px;box-shadow:0 8px 24px #0a254059,0 2px 8px #2563eb40,inset 0 1px #ffffff26;transition:all .25s cubic-bezier(.34,1.56,.64,1);animation:fuzaiGradient 8s ease-in-out infinite}.jira .fuzai-launcher:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 12px 32px #0a254066,0 4px 12px #7c3aed4d,inset 0 1px #fff3}.jira .fuzai-launcher:active{transform:translateY(0) scale(.98)}.jira .fuzai-launcher.open{padding:0;width:48px;height:48px;justify-content:center;background:var(--text-dim);animation:none}.jira .fuzai-launcher-label{letter-spacing:.01em}.jira .fuzai-close-x{font-size:28px;font-weight:300;line-height:1}@keyframes fuzaiGradient{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.jira .fuzai-orb{position:relative;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px}.jira .fuzai-orb-sm{width:22px;height:22px}.jira .fuzai-orb-core{position:absolute;top:4px;right:4px;bottom:4px;left:4px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#93c5fd,#2563eb 40%,#7c3aed 75%,#4c1d95);box-shadow:0 0 12px #7c3aed99,inset 0 0 6px #ffffff4d;animation:fuzaiOrbPulse 2.5s ease-in-out infinite}.jira .fuzai-orb-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:1.5px solid rgba(147,197,253,.5);animation:fuzaiRingExpand 2.5s ease-out infinite}.jira .fuzai-orb-ring-1{animation-delay:0s}.jira .fuzai-orb-ring-2{animation-delay:1.25s}.jira .fuzai-orb-sparkle{position:relative;z-index:2;font-size:14px;color:#fff;text-shadow:0 0 8px rgba(255,255,255,.8);animation:fuzaiSparkle 1.8s ease-in-out infinite}.jira .fuzai-orb-sm .fuzai-orb-sparkle{font-size:11px}@keyframes fuzaiOrbPulse{0%,to{transform:scale(1);box-shadow:0 0 12px #7c3aed99,inset 0 0 6px #ffffff4d}50%{transform:scale(1.08);box-shadow:0 0 18px #7c3aedcc,inset 0 0 8px #fff6}}@keyframes fuzaiRingExpand{0%{transform:scale(.6);opacity:.9}to{transform:scale(1.6);opacity:0}}@keyframes fuzaiSparkle{0%,to{transform:rotate(0) scale(1)}50%{transform:rotate(180deg) scale(1.1)}}.jira .chat-panel{position:fixed;bottom:92px;right:24px;width:420px;max-width:calc(100vw - 32px);height:600px;max-height:calc(100vh - 120px);background:#fff;border-radius:16px;box-shadow:0 16px 48px #0f172a33,0 4px 12px #0f172a14;display:flex;flex-direction:column;z-index:999;overflow:hidden;border:1px solid var(--border);animation:chatSlideIn .25s cubic-bezier(.34,1.2,.64,1)}@keyframes chatSlideIn{0%{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.jira .chat-header{padding:16px 18px;background:linear-gradient(135deg,#0a2540,#1e3a8a 60%,#4c1d95);color:#fff;display:flex;justify-content:space-between;align-items:center;position:relative;overflow:hidden}.jira .chat-header:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 80% 50%,rgba(147,197,253,.18) 0%,transparent 60%);pointer-events:none}.jira .chat-header-brand{display:flex;align-items:center;gap:12px;z-index:1}.jira .chat-title{font-family:var(--font-display);font-weight:600;font-size:17px;letter-spacing:-.01em}.jira .chat-subtitle{font-size:11.5px;opacity:.75;margin-top:2px}.jira .chat-header-actions{display:flex;gap:8px;z-index:1}.jira .chat-reset,.jira .chat-close{background:#ffffff1f;border:none;color:#fff;width:28px;height:28px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;transition:background .15s}.jira .chat-reset:hover,.jira .chat-close:hover{background:#ffffff38}.jira .chat-messages{flex:1;overflow-y:auto;padding:16px;background:var(--bg);display:flex;flex-direction:column;gap:12px}.jira .chat-messages::-webkit-scrollbar{width:8px}.jira .chat-messages::-webkit-scrollbar-track{background:transparent}.jira .chat-messages::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:4px}.jira .chat-welcome{padding:4px}.jira .chat-welcome-title{font-family:var(--font-display);font-weight:500;font-size:17px;color:var(--primary);margin-bottom:6px;display:flex;align-items:center;gap:8px}.jira .chat-welcome-title strong{font-weight:700;background:linear-gradient(135deg,#2563eb,#7c3aed,#db2777);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.jira .fuzai-wave{display:inline-block;animation:fuzaiWave 2.4s ease-in-out infinite;transform-origin:70% 70%}@keyframes fuzaiWave{0%,60%,to{transform:rotate(0)}10%,30%,50%{transform:rotate(14deg)}20%,40%{transform:rotate(-8deg)}}.jira .chat-welcome-sub{font-size:13px;color:var(--text-dim);margin-bottom:14px;line-height:1.5}.jira .chat-suggestions{display:flex;flex-direction:column;gap:6px}.jira .chat-suggestion{background:#fff;border:1px solid var(--border);text-align:left;padding:10px 12px;border-radius:8px;cursor:pointer;font-size:13px;color:var(--text);transition:all .15s;font-family:var(--font-body)}.jira .chat-suggestion:hover{background:var(--primary-soft);border-color:var(--primary);color:var(--primary);transform:translate(2px)}.jira .chat-msg{display:flex}.jira .chat-msg.user{justify-content:flex-end}.jira .chat-msg.assistant{justify-content:flex-start}.jira .chat-bubble{max-width:85%;padding:10px 14px;border-radius:14px;font-size:13.5px;line-height:1.5}.jira .chat-msg.user .chat-bubble{background:linear-gradient(135deg,#0a2540,#1e3a8a);color:#fff;border-bottom-right-radius:4px;box-shadow:0 2px 8px #0a254033}.jira .chat-msg.assistant .chat-bubble{background:#fff;color:var(--text);border:1px solid var(--border);border-bottom-left-radius:4px}.jira .chat-bubble.error{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.jira .chat-content p{margin:0 0 8px}.jira .chat-content p:last-child{margin-bottom:0}.jira .chat-content code{background:#0f172a0f;padding:1px 5px;border-radius:4px;font-family:var(--font-mono);font-size:12px}.jira .chat-msg.user .chat-content code{background:#ffffff2e}.jira .chat-content strong{font-weight:600}.jira .chat-list{margin:6px 0;padding-left:20px}.jira .chat-list li{margin-bottom:4px}.jira .chat-sql-toggle{margin-top:10px;padding-top:8px;border-top:1px dashed var(--border)}.jira .chat-sql-toggle button{background:transparent;border:none;color:var(--accent);font-size:11px;font-weight:600;cursor:pointer;padding:0;text-transform:uppercase;letter-spacing:.05em}.jira .chat-sql-toggle button:hover{text-decoration:underline}.jira .chat-sql{margin:8px 0 0;padding:10px;background:var(--bg-elevated);border-radius:6px;font-family:var(--font-mono);font-size:11px;white-space:pre-wrap;word-break:break-word;color:var(--text-dim)}.jira .chat-bubble.loading{padding:14px 18px;display:flex;gap:4px}.jira .chat-bubble.loading span{width:6px;height:6px;background:var(--text-faint);border-radius:50%;animation:chatDot 1.4s infinite ease-in-out both}.jira .chat-bubble.loading span:nth-child(2){animation-delay:.2s}.jira .chat-bubble.loading span:nth-child(3){animation-delay:.4s}@keyframes chatDot{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}.jira .chat-input-row{padding:12px 14px;background:#fff;border-top:1px solid var(--border);display:flex;gap:8px;align-items:flex-end}.jira .chat-input{flex:1;resize:none;border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-family:var(--font-body);font-size:13.5px;outline:none;max-height:120px;transition:border-color .15s,box-shadow .15s}.jira .chat-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1f}.jira .chat-input:disabled{background:var(--bg-elevated);color:var(--text-faint)}.jira .chat-send{width:38px;height:38px;background:linear-gradient(135deg,#0a2540,#1e3a8a);border:none;border-radius:8px;color:#fff;font-size:18px;font-weight:700;cursor:pointer;transition:all .15s;box-shadow:0 2px 6px #0a254033}.jira .chat-send:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 10px #0a25404d}.jira .chat-send:disabled{background:var(--border-strong);cursor:not-allowed;box-shadow:none}.jira .chat-footer{padding:8px 14px 10px;background:#fff;border-top:1px solid var(--border);font-size:10.5px;color:var(--text-faint);text-align:center}@media (max-width: 600px){.jira .chat-panel{width:100%;max-width:100%;bottom:0;right:0;height:100vh;max-height:100vh;border-radius:0}.jira .fuzai-launcher-wrap{bottom:16px;right:16px}.jira .fuzai-peek{max-width:220px;font-size:12px}}.jira .alloc-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.jira .alloc-toolbar-actions{display:flex;gap:8px}.jira .alloc-btn{background:#fff;border:1px solid var(--border);color:var(--text);padding:7px 14px;border-radius:7px;font-family:var(--font-body);font-size:13px;font-weight:500;cursor:pointer;transition:all .12s}.jira .alloc-btn:hover:not(:disabled){background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}.jira .alloc-btn.primary{background:var(--primary);color:#fff;border-color:var(--primary)}.jira .alloc-btn.primary:hover:not(:disabled){background:var(--primary-strong);color:#fff}.jira .alloc-btn.danger{background:#dc2626;color:#fff;border-color:#dc2626}.jira .alloc-btn.danger:hover:not(:disabled){background:#b91c1c;color:#fff}.jira .alloc-btn:disabled{opacity:.5;cursor:not-allowed}.jira .alloc-grid-wrap{overflow:auto;max-height:70vh;border:1px solid var(--border);border-radius:8px;margin-top:12px;background:#fff}.jira .alloc-card.fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;z-index:900;border-radius:0;margin:0;padding:12px 16px;display:flex;flex-direction:column;background:#fff;box-shadow:0 0 40px #0f172a26}.jira .alloc-card.fullscreen .card-header{flex-shrink:0;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--border)}.jira .alloc-card.fullscreen .alloc-grid-wrap{flex:1;max-height:none;margin-top:0;border-radius:6px}.jira .alloc-fullscreen-btn{background:var(--primary);color:#fff;border-color:var(--primary);font-size:12.5px;padding:7px 12px}.jira .alloc-fullscreen-btn:hover:not(:disabled){background:var(--primary-strong);color:#fff;border-color:var(--primary-strong)}.jira .alloc-grid{border-collapse:separate;border-spacing:0;font-family:var(--font-body);font-size:12px;width:max-content;min-width:100%}.jira .alloc-grid-wrap.fullscreen .alloc-grid{width:100%;table-layout:fixed}.jira .alloc-grid th,.jira .alloc-grid td{border-right:1px solid #e3e8ef;border-bottom:1px solid #e3e8ef;padding:0;margin:0;vertical-align:middle;text-align:center}.jira .alloc-corner,.jira .alloc-corner-project{position:sticky;left:0;z-index:4;background:#fff;border-right:2px solid var(--border-strong)!important}.jira .alloc-corner{top:0;z-index:6;background:var(--primary)}.jira .alloc-corner-project{z-index:5;background:#fff;font-family:var(--font-display);font-weight:600;text-align:left;color:var(--primary);border-bottom:2px solid var(--border-strong)!important}.jira .alloc-country-header{position:sticky;top:0;z-index:3;padding:6px 8px;font-family:var(--font-display);font-weight:600;color:var(--primary);border-bottom:2px solid var(--border-strong)!important;box-sizing:border-box}.jira .alloc-country-inner{position:relative;display:flex;align-items:center;justify-content:center;gap:6px}.jira .alloc-project-header{position:sticky;z-index:2;background:#fff;padding:4px;vertical-align:middle;border-bottom:2px solid var(--border-strong)!important}.jira .alloc-project-header.country-start{border-left:2px solid var(--border-strong)}.jira .alloc-project-header.col-hover{background:#fef9c3}.jira .alloc-project-inner{position:relative;display:flex;align-items:center;justify-content:center;height:100%;padding:2px;min-height:32px}.jira .alloc-project-inner .project-name{font-size:inherit;font-weight:500;color:var(--text);line-height:1.2;white-space:normal;overflow-wrap:break-word;word-break:break-word;-webkit-hyphens:auto;hyphens:auto;text-align:center;padding:0 4px}.jira .alloc-header-delete{position:absolute;top:2px;right:2px;background:transparent;border:none;color:#94a3b8;cursor:pointer;width:16px;height:16px;border-radius:3px;font-size:12px;line-height:1;padding:0;opacity:0;transition:opacity .12s,background .12s,color .12s;z-index:2}.jira .alloc-country-header:hover .alloc-header-delete,.jira .alloc-project-header:hover .alloc-header-delete,.jira .alloc-consultant-cell:hover .alloc-header-delete{opacity:1}.jira .alloc-header-delete:hover{background:#fee2e2;color:#dc2626}.jira .alloc-consultant-cell{position:sticky;left:0;z-index:1;background:#fff;text-align:left;font-weight:500;color:var(--text);border-right:2px solid var(--border-strong)!important}.jira .alloc-row.hover .alloc-consultant-cell{background:#fef9c3}.jira .alloc-consultant-inner{position:relative;display:flex;align-items:center;gap:6px}.jira .consultant-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jira .consultant-count{background:var(--primary-soft);color:var(--primary);font-size:10px;font-weight:600;padding:1px 5px;border-radius:100px;font-family:var(--font-mono);flex-shrink:0}.jira .alloc-cell{cursor:pointer;transition:background .1s;position:relative;-webkit-user-select:none;user-select:none;box-sizing:border-box}.jira .alloc-cell.country-start{border-left:2px solid var(--border-strong)}.jira .alloc-cell:hover{background:#dbeafe!important}.jira .alloc-cell.row-hover,.jira .alloc-cell.col-hover{background:#fef9c3!important}.jira .alloc-cell.row-hover.col-hover{background:#fde68a!important}.jira .alloc-cell.checked{background:#d1fae5!important}.jira .alloc-cell.checked:hover{background:#a7f3d0!important}.jira .alloc-cell.checked .check{color:#059669;font-weight:700;font-size:1.15em;display:inline-block;line-height:1}.jira .alloc-divider td{background:var(--primary);color:#fff;padding:6px 12px;font-family:var(--font-display);font-weight:500;font-size:11px;text-align:left;letter-spacing:.05em;text-transform:uppercase;position:sticky;left:0}.jira .alloc-row.mentor-row .alloc-consultant-cell{font-style:italic;color:var(--text-dim);background:#f8fafc}.jira .kpi.clickable{transition:transform .12s,box-shadow .12s}.jira .kpi.clickable:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0f172a14}.jira .alloc-modal{max-width:480px}.jira .alloc-form{display:flex;flex-direction:column;gap:16px}.jira .alloc-form label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.03em}.jira .alloc-form input[type=text],.jira .alloc-form input:not([type]),.jira .alloc-form select{padding:9px 12px;border:1px solid var(--border);border-radius:7px;font-family:var(--font-body);font-size:14px;font-weight:400;color:var(--text);text-transform:none;letter-spacing:normal;outline:none;transition:border-color .12s,box-shadow .12s}.jira .alloc-form input:focus,.jira .alloc-form select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.jira .alloc-form label.checkbox-label{flex-direction:row;align-items:center;gap:8px;text-transform:none;letter-spacing:normal;font-weight:400;font-size:13px;color:var(--text);cursor:pointer}.jira .alloc-form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.jira .alloc-error{background:#fee2e2;color:#991b1b;padding:8px 12px;border-radius:6px;font-size:12.5px;border:1px solid #fecaca}.jira .alloc-btn.alloc-edit-locked{background:#fef3c7;color:#92400e;border-color:#fde68a}.jira .alloc-btn.alloc-edit-locked:hover:not(:disabled){background:#fde68a;color:#78350f;border-color:#fcd34d}.jira .alloc-btn.alloc-edit-active{background:#d1fae5;color:#065f46;border-color:#a7f3d0}.jira .alloc-btn.alloc-edit-active:hover:not(:disabled){background:#a7f3d0;color:#064e3b;border-color:#6ee7b7}
