:root{--bui-orange: #D9861C;--bui-orange-dark: #b96f13;--bui-orange-tint: #fbf1e2;--bui-grey: #535657;--bui-grey-2: #6f7273;--bui-white: #ffffff;--bui-black: #000000;--bg: #f5f6f6;--surface: #ffffff;--border: #e3e5e5;--text: #2b2d2e;--text-muted: #6f7273;--amber-tint: #fff3cd;--amber-text: #856404;--green: #2e7d32;--green-dark: #1b5e20;--red: #c62828;--red-tint: #fdecea;--grey-na: #b6b9ba;--grey-na-tint: #eceded;--blue: #1565c0;--blue-tint: #e8f0fc;--radius: 8px;--shadow: 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .04);--font: "Calibri", "Segoe UI", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}a{color:var(--bui-orange-dark)}.shell{display:flex;flex-direction:column;height:100vh;overflow:hidden}.pov-banner{background:var(--amber-tint);color:var(--amber-text);text-align:center;font-size:12px;font-weight:600;padding:5px 8px;letter-spacing:.3px;border-bottom:1px solid #f0e0a8}.shell-body{flex:1;display:flex;min-height:0}.sidebar{width:224px;flex-shrink:0;background:var(--bui-grey);color:#e6e7e7;display:flex;flex-direction:column;padding:18px 0;overflow-y:auto}.sidebar-brand{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:4px 18px 18px;border-bottom:1px solid #63686a}.sidebar-brand .brand-logo{height:44px;width:auto;max-width:100%}.sidebar-brand .app-name{font-size:17px;font-weight:700;color:#fff;letter-spacing:.2px;line-height:1.2;text-shadow:0 0 10px rgba(217,134,28,.65),0 0 2px rgba(217,134,28,.5)}.sidebar-nav{display:flex;flex-direction:column;gap:2px;padding:14px 10px;flex:1}.sidebar-item{display:flex;align-items:center;gap:10px;background:none;border:none;text-align:left;cursor:pointer;color:#d3d5d5;font-family:var(--font);font-size:14px;padding:9px 12px;border-radius:6px;width:100%}.sidebar-item:hover{background:#63686a;color:#fff}.sidebar-item.active{background:var(--bui-orange);color:#fff;font-weight:600}.sidebar-icon{font-size:15px;width:18px;text-align:center;flex-shrink:0;opacity:.9}.sidebar-icon svg{display:inline-block;vertical-align:middle}.sidebar-item:hover .jira-icon{color:#2684ff}.sidebar-label{flex:1}.sidebar-soon{font-size:9px;text-transform:uppercase;letter-spacing:.4px;background:#ffffff1f;color:#cfd1d1;padding:2px 6px;border-radius:999px;flex-shrink:0}.sidebar-item.active .sidebar-soon{background:#ffffff40;color:#fff}.sidebar-divider{height:1px;background:#63686a;margin:8px 6px}.sidebar-foot{padding:10px 18px 0;font-size:10.5px;color:#9a9d9e;border-top:1px solid #63686a;margin-top:8px}@media(max-width:720px){.shell-body{flex-direction:column}.sidebar{width:100%;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px}.sidebar-brand{border-bottom:none;padding:0 6px 0 2px}.sidebar-nav{flex-direction:row;flex-wrap:wrap;padding:0;gap:4px;flex:1 1 100%}.sidebar-item{width:auto}.sidebar-divider,.sidebar-foot{display:none}.content-area{padding:16px 14px}.content-topbar{padding:12px 16px}}.auth-gate{--gate-bg: #16171d;--gate-surface: rgba(255, 255, 255, .04);--gate-border: rgba(255, 255, 255, .12);--gate-heading: #f3f4f6;--gate-text: #9ca3af;--gate-accent: #f0a94a;position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--gate-bg);color:var(--gate-text);font-family:var(--font)}.auth-gate:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse 70% 50% at 50% 0%,rgba(240,169,74,.1),transparent 70%)}.auth-card{position:relative;width:100%;max-width:440px;box-sizing:border-box;padding:48px 40px 40px;text-align:center;background:var(--gate-surface);border:1px solid var(--gate-border);border-radius:14px;box-shadow:0 10px 15px -3px #0006,0 4px 6px -2px #00000040}.auth-logo{display:block;height:56px;width:auto;max-width:78%;margin:0 auto 32px}.auth-card h2{margin:0 0 10px;font-size:26px;font-weight:500;line-height:1.25;letter-spacing:-.24px;color:var(--gate-heading)}.auth-msg{margin:0;font-size:15.5px;line-height:1.5;letter-spacing:.18px;color:var(--gate-text)}.auth-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;width:100%;box-sizing:border-box;margin-top:28px;padding:13px 22px;font:inherit;font-size:16px;font-weight:600;letter-spacing:.2px;color:var(--gate-bg);background:var(--bui-orange);border:1px solid transparent;border-radius:8px;cursor:pointer;transition:background .15s ease,transform .15s ease,box-shadow .15s ease}.auth-btn:hover{background:var(--gate-accent);transform:translateY(-1px);box-shadow:0 6px 14px -4px #d9861c8c}.auth-btn:active{transform:translateY(0)}.auth-btn:focus-visible{outline:2px solid var(--gate-accent);outline-offset:3px}.auth-btn-ghost{background:none;border:1px solid rgba(255,255,255,.3);color:var(--gate-text);margin-top:12px}.auth-btn-ghost:hover{background:#ffffff0f;color:#fff;transform:none;box-shadow:none}.auth-foot{margin:24px 0 0;font-size:12.5px;letter-spacing:.2px;color:#9ca3afa6}.auth-identity{margin:8px 0 0;font-size:13px;color:var(--gate-text)}.auth-identity code{color:var(--gate-heading)}@media(max-width:480px){.auth-card{padding:36px 24px 28px}.auth-card h2{font-size:23px}}.shell-main{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0}.content-topbar{flex-shrink:0;padding:16px 28px;border-bottom:1px solid var(--border);background:var(--surface);display:flex;align-items:center;justify-content:space-between;gap:16px}.content-topbar h1{margin:0;font-size:19px;color:var(--bui-grey)}.topbar-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.notif-bell{position:relative;background:none;border:none;cursor:pointer;font-size:18px;padding:6px;border-radius:6px;color:var(--bui-grey);line-height:1}.notif-bell:hover{background:var(--bg)}.feedback-btn{position:relative;padding:7px;display:inline-flex;align-items:center}.feedback-btn .notif-badge{top:-2px;right:-2px}.notif-badge{position:absolute;top:2px;right:2px;min-width:15px;height:15px;padding:0 3px;border-radius:999px;background:var(--bui-orange);color:#fff;font-size:10px;font-weight:700;line-height:15px;text-align:center}.topbar-menu{position:relative}.cost-btn,.status-btn{position:relative;font-size:13px;padding:6px 14px 6px 12px}.status-dot{display:inline-block;width:8px;height:8px;border-radius:999px;margin-right:6px;background:var(--text-muted)}.status-dot.ok{background:var(--green)}.status-dot.down{background:var(--red)}.user-dropdown.cost-dropdown{min-width:260px}.user-dropdown.status-dropdown{min-width:340px}.cost-dropdown dl,.status-dropdown dl{margin:0}.cost-dropdown dt,.status-dropdown dt{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;margin-top:10px}.cost-dropdown dt:first-child,.status-dropdown dt:first-child{margin-top:0}.cost-dropdown dd,.status-dropdown dd{margin:2px 0 0;font-size:13.5px;color:var(--text);font-weight:600}.status-dropdown .freshness-row{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;padding:4px 0;border-bottom:1px solid var(--border)}.status-dropdown .freshness-row:last-child{border-bottom:none}.status-dropdown .freshness-label{color:var(--text-muted)}.status-dropdown .freshness-value{font-family:Cascadia Code,Consolas,monospace;color:var(--text)}.cost-chart-tooltip{position:absolute;bottom:100%;transform:translate(-50%);margin-bottom:6px;background:var(--bui-grey);color:#fff;border-radius:6px;padding:5px 8px;font-size:11.5px;line-height:1.3;white-space:nowrap;pointer-events:none;text-align:center;z-index:1}.cost-chart-tooltip strong{font-weight:700}.cost-chart-tooltip div{color:#ffffffbf;font-size:10.5px}.user-menu{position:relative}.user-avatar{width:32px;height:32px;border-radius:999px;background:var(--bui-grey);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;border:none;cursor:pointer}.user-avatar:hover{background:var(--bui-orange)}.user-dropdown{position:absolute;top:calc(100% + 8px);right:0;z-index:200;min-width:220px;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow);padding:12px}.user-dropdown .user-email{font-size:13px;font-weight:600;color:var(--text);word-break:break-all}.user-dropdown .user-role{margin:6px 0 12px}.user-dropdown .btn{width:100%}.content-area{flex:1;min-height:0;overflow-y:auto;padding:22px 28px;width:100%;box-sizing:border-box}.page-layout{display:grid;grid-template-columns:1fr;gap:20px}@media(min-width:960px){.page-layout.has-detail{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}}.customerdb-shell{display:flex;flex-direction:column;gap:14px}@media(min-width:960px){.customerdb-shell{height:100%;min-height:0}.customerdb-shell>.stats{flex-shrink:0;margin-bottom:0}.customerdb-shell>.page-layout{flex:1;min-height:0}.page-layout>.card{min-height:0;display:flex;flex-direction:column;overflow:hidden}.page-layout>.card>.table-wrap{flex:1;min-height:0;overflow-y:auto}.page-layout>.card.detail{overflow-y:auto}}.stats{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:4px}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 18px;min-width:130px;box-shadow:var(--shadow)}.stat .value{font-size:24px;font-weight:700;color:var(--bui-grey)}.stat .value.accent{color:var(--bui-orange)}.stat .label{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.card-head{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:2px solid var(--bui-orange)}.card-head h2{margin:0;font-size:16px;color:var(--bui-grey)}.card-head .count{font-size:13px;color:var(--text-muted)}.card-head .spacer{flex:1}.tier-toggle{display:inline-flex;border:1px solid var(--border);border-radius:999px;padding:2px;background:#fafbfb}.tier-toggle button{border:none;background:none;font-family:var(--font);font-size:12.5px;font-weight:600;padding:5px 13px;border-radius:999px;cursor:pointer;color:var(--text-muted)}.tier-toggle button.active{background:var(--bui-orange);color:#fff}.search{width:100%;padding:9px 12px;font-family:var(--font);font-size:14px;border:1px solid var(--border);border-radius:6px;outline:none}.search:focus{border-color:var(--bui-orange);box-shadow:0 0 0 3px var(--bui-orange-tint)}.combobox{position:relative}.combobox-suggestions{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:200;max-height:220px;overflow-y:auto;margin:0;padding:6px;list-style:none;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow)}.combobox-suggestions li{padding:0}.combobox-suggestions button{display:flex;flex-direction:column;width:100%;text-align:left;padding:7px 10px;border:none;background:none;cursor:pointer;border-radius:6px;font-family:var(--font)}.combobox-suggestions button:hover,.combobox-suggestions button[aria-selected=true]{background:var(--bui-orange-tint)}.combobox-name{font-size:13.5px;font-weight:600;color:var(--text)}.combobox-email{font-size:12px;color:var(--text-muted)}.toolbar{display:flex;gap:10px;align-items:center;padding:12px 18px}.toolbar select{padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-family:var(--font);font-size:13px;background:#fff}.btn{font-family:var(--font);font-weight:600;cursor:pointer;border:1px solid transparent;border-radius:6px}.btn:disabled{opacity:.6;cursor:default}.btn-primary{background:var(--bui-orange);color:#fff;border-color:var(--bui-orange);font-size:14px;padding:8px 16px}.btn-primary:hover:not(:disabled){background:var(--bui-orange-dark);border-color:var(--bui-orange-dark)}.btn-danger{background:none;color:var(--red);border-color:var(--border);font-size:12px;padding:4px 10px}.btn-danger:hover:not(:disabled){border-color:var(--red);background:#fdecea}.btn-ghost{background:none;color:var(--text);border-color:var(--border);font-size:14px;padding:8px 16px}.btn-ghost:hover:not(:disabled){background:#f0f1f1}.btn-accent-hover:hover:not(:disabled),.btn-accent-hover:active:not(:disabled){background:var(--bui-orange);border-color:var(--bui-orange);color:#fff}.btn-danger-solid{background:var(--red);color:#fff;border-color:var(--red);font-size:14px;padding:8px 16px}.btn-danger-solid:hover:not(:disabled){background:#a91f1f;border-color:#a91f1f}.icon-btn{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;background:none;border:1px solid var(--border);border-radius:6px;font-size:14px;line-height:1;cursor:pointer;color:var(--text)}.icon-btn:hover:not(:disabled){background:#f0f1f1}.icon-btn:disabled{opacity:.5;cursor:default}.icon-btn.icon-btn-danger{color:var(--red)}.icon-btn.icon-btn-danger:hover:not(:disabled){background:#fdecea;border-color:var(--red)}.icon-btn.icon-btn-primary{color:var(--bui-orange-dark)}.icon-btn.icon-btn-primary:hover:not(:disabled){background:var(--bui-orange-tint);border-color:var(--bui-orange)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#2b2d2e73;display:flex;align-items:center;justify-content:center;padding:20px}.modal{background:var(--surface);border-radius:var(--radius);box-shadow:0 10px 40px #00000040;max-width:440px;width:100%;padding:22px 24px;border-top:3px solid var(--bui-orange);max-height:90vh;overflow-y:auto;box-sizing:border-box}.modal-wide{max-width:900px}.modal-board{max-width:700px;max-height:85vh;overflow-y:auto}.modal-title{margin:0 0 8px;font-size:17px;color:var(--bui-grey)}.modal-message{margin:0 0 20px;color:var(--text);font-size:14px;line-height:1.5}.modal-actions{display:flex;justify-content:flex-end;gap:10px}.task-board-progress{display:flex;align-items:center;gap:10px;margin-bottom:10px}.task-board-progress-bar{flex:1;height:8px;border-radius:999px;background:#eef0f0;overflow:hidden}.task-board-progress-fill{height:100%;background:var(--bui-orange);border-radius:999px;transition:width .2s ease}.task-board-progress-label{font-size:12.5px;color:var(--text-muted);white-space:nowrap}.task-board-list{list-style:none;margin:8px 0 0;padding:0}.task-board-item{border-bottom:1px solid var(--border);padding:10px 0}.task-board-item:last-child{border-bottom:none}.task-board-row{display:flex;align-items:center;gap:10px}.task-board-title{flex:1;text-align:left;background:none;border:none;cursor:pointer;font-family:var(--font);font-size:14px;font-weight:600;color:var(--bui-grey);padding:4px 0;display:flex;align-items:center;gap:8px}.task-board-title:hover{color:var(--bui-orange-dark);text-decoration:underline}.task-board-comment-count{font-size:11px;font-weight:700;background:#eef0f0;color:var(--text-muted);border-radius:999px;padding:1px 7px}.task-board-row select{padding:6px 8px;border:1px solid var(--border);border-radius:6px;font-family:var(--font);font-size:13px;background:#fff}.task-board-comments{margin:10px 0 0 4px;padding:10px 0 0 12px;border-left:2px solid var(--border)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}thead th{text-align:left;background:#fafbfb;color:var(--bui-grey);font-weight:600;padding:10px 14px;border-bottom:1px solid var(--border);position:sticky;top:0;white-space:nowrap}tbody td{padding:9px 14px;border-bottom:1px solid #f0f1f1}tbody tr{cursor:pointer}tbody tr:hover{background:var(--bui-orange-tint)}tbody tr.selected{background:var(--bui-orange-tint);box-shadow:inset 3px 0 0 var(--bui-orange)}tbody tr.unresolved td:first-child{color:var(--amber-text);font-style:italic}.name-cell{font-weight:600;color:var(--bui-grey)}.freeze-first-col th:first-child,.freeze-first-col td:first-child{position:sticky;left:0;z-index:1;background:var(--surface);box-shadow:1px 0 0 var(--border)}.freeze-first-col thead th:first-child{z-index:2}.freeze-first-col tbody tr:hover td:first-child,.freeze-first-col tbody tr.selected td:first-child{background:var(--bui-orange-tint)}.freeze-last-col th:last-child,.freeze-last-col td:last-child{position:sticky;right:0;z-index:1;background:var(--surface);box-shadow:-1px 0 0 var(--border)}.freeze-last-col thead th:last-child{z-index:2}.freeze-last-col tbody tr:hover td:last-child{background:var(--bui-orange-tint)}.freeze-last-col tbody tr.selected td:last-child{background:var(--bui-orange-tint)}.mono{font-family:Cascadia Code,Consolas,monospace;font-size:12px;color:var(--text-muted)}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap}.badge.pc{background:#e8f0fe;color:#1a56b8}.badge.lh{background:#e6f4ea;color:var(--green)}.badge.both{background:var(--bui-orange-tint);color:var(--bui-orange-dark)}.badge.none{background:#eee;color:#888}.badge.pal-active{background:#e6f4ea;color:var(--green)}.badge.pal-not{background:#fdecea;color:var(--red)}.badge.premium{background:var(--bui-orange);color:#fff}.badge.standard{background:#eef0f0;color:var(--text-muted)}.badge.tier-other{background:var(--bui-grey);color:#fff}.services-toggle{display:inline-flex;gap:4px}.service-btn{padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;border:1px solid transparent;white-space:nowrap}.service-btn.active{background:var(--bui-orange);color:#fff}.service-btn.inactive{background:#eef0f0;color:var(--text-muted)}.service-btn:not(:disabled){cursor:pointer}.service-btn:not(:disabled):hover{border-color:var(--bui-orange-dark)}.service-btn:disabled{cursor:default}.tier-select{font-size:12px;padding:2px 6px;border-radius:6px;border:1px solid #d7d7d7;background:#fff;color:var(--bui-grey)}.badge.role-admin{background:var(--bui-grey);color:#fff}.badge.role-standard{background:#eef0f0;color:var(--text-muted)}.badge.health-ok{background:#e6f4ea;color:var(--green)}.badge.health-warn{background:var(--amber-tint);color:var(--amber-text)}.badge.health-crit{background:#fdecea;color:var(--red)}.badge.health-unknown{background:#eef0f0;color:var(--text-muted)}.badge.proj-planned{background:var(--bui-orange-tint);color:var(--bui-orange-dark)}.badge.proj-active{background:var(--blue-tint);color:var(--blue)}.badge.proj-blocked{background:#fdecea;color:var(--red)}.badge.proj-done{background:#e6f4ea;color:var(--green)}.badge.esc-logged{background:#eef0f0;color:var(--text-muted)}.badge.esc-raised{background:var(--bui-orange-tint);color:var(--bui-orange-dark)}.badge.esc-resolved{background:#e6f4ea;color:var(--green)}esc-*. Production is bold/red on purpose (handle with care); Development is quiet grey (the common case). */ .badge.env-dev{background:#eef0f0;color:var(--text-muted)}.badge.env-prod{background:#fdecea;color:var(--red);font-weight:700}esc-*. See task #81's lesson in the comment above esc-*. */
.badge.fb-bug{background:#fdecea;color:var(--red)}.badge.fb-idea{background:#eef0f0;color:var(--text-muted)}.badge.fb-question{background:var(--blue-tint);color:var(--blue)}.badge.fb-new{background:var(--bui-orange-tint);color:var(--bui-orange-dark)}.badge.fb-planned{background:var(--blue-tint);color:var(--blue)}.badge.fb-done{background:#e6f4ea;color:var(--green)}.badge.fb-declined{background:#eef0f0;color:var(--text-muted)}.badge.placeholder{background:#f1efec;color:var(--amber-text);border:1px dashed #d8c896}.advisor-trend{display:inline-block;margin-left:5px;font-size:10px;cursor:default}.advisor-trend.trend-up{color:var(--green)}.advisor-trend.trend-down{color:var(--red)}.advisor-trend.trend-same{color:var(--text-muted)}.tenant-flags{display:inline-flex;gap:4px}.chip{font-size:10px;padding:1px 6px;border-radius:4px;background:#eef0f0;color:var(--bui-grey)}.chip.on{background:var(--bui-grey);color:#fff}.detail .field{display:flex;padding:7px 0;border-bottom:1px solid #f0f1f1}.detail .field .k{width:150px;color:var(--text-muted);font-size:13px;flex-shrink:0}.detail .field .v{color:var(--text);font-size:14px;word-break:break-word}.detail .close{background:none;border:none;font-size:20px;cursor:pointer;color:var(--text-muted)}.detail .close:hover{color:var(--bui-orange)}.empty,.loading{padding:40px;text-align:center;color:var(--text-muted)}.footer{flex-shrink:0;text-align:center;padding:16px;color:var(--text-muted);font-size:12px}.home-hero{margin-bottom:24px}.home-hero h1{margin:0 0 6px;font-size:26px;color:var(--bui-grey);text-wrap:balance}.home-hero p{margin:0;color:var(--text-muted);font-size:15px;max-width:60ch}.module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}.module-card{text-align:left;cursor:pointer;font-family:var(--font);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;display:flex;flex-direction:column;gap:8px;border-top:3px solid var(--border)}.module-card.live{border-top-color:var(--bui-orange)}.module-card.live:hover{box-shadow:0 2px 6px #00000014,0 8px 22px #00000014}.module-card.soon{cursor:default;opacity:.72}.module-card:disabled{cursor:default}.module-top{display:flex;align-items:center;justify-content:space-between}.module-icon{font-size:20px;color:var(--bui-grey-2);display:inline-flex}.module-card:hover .jira-icon{color:#2684ff}.module-status{font-size:10.5px;text-transform:uppercase;letter-spacing:.4px;font-weight:700;padding:2px 8px;border-radius:999px}.module-status.live{background:var(--bui-orange-tint);color:var(--bui-orange-dark)}.module-status.soon{background:#eef0f0;color:var(--text-muted)}.module-status.in-progress{background:#fdf1da;color:#92600b}.module-status.demo{background:#eef0f0;color:var(--text-muted)}.module-status-edit{border:none;background:none;cursor:pointer;padding:0 2px;font-size:12px;line-height:1;color:var(--text-muted)}.module-status-edit:hover{color:var(--bui-orange-dark)}.module-card[role=button]:focus-visible{outline:2px solid var(--bui-orange);outline-offset:2px}.module-name{font-size:15px;font-weight:700;color:var(--bui-grey)}.module-figure{font-size:30px;font-weight:700;color:var(--bui-orange);line-height:1.1}.module-figure-of{font-size:12px;font-weight:400;color:var(--text-muted);margin-left:6px}.module-desc{font-size:12.5px;color:var(--text-muted);line-height:1.45}.tools-group{margin-bottom:26px}.tools-group-head{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-weight:700;margin:0 0 12px;padding-bottom:6px;border-bottom:1px solid var(--border)}.tools-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.tool-card{display:flex;flex-direction:column;gap:6px;text-decoration:none;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;border-top:3px solid var(--border);transition:box-shadow .12s ease,border-top-color .12s ease}.tool-card:hover{border-top-color:var(--bui-orange);box-shadow:0 2px 6px #00000014,0 8px 22px #00000014}.tool-card-top{display:flex;align-items:center;justify-content:space-between}.tool-icon{font-size:20px;color:var(--bui-grey-2)}.tool-open{color:var(--text-muted);font-size:14px}.tool-card:hover .tool-open{color:var(--bui-orange)}.tool-name{font-size:15px;font-weight:700;color:var(--bui-grey)}.tool-desc{font-size:12.5px;color:var(--text-muted);line-height:1.45}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:4px}.form-grid label{display:flex;flex-direction:column;gap:4px}.form-grid label>span{font-size:12px;font-weight:600;color:var(--text-muted)}.form-grid .form-wide{grid-column:1 / -1}.form-grid select{padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-family:var(--font);font-size:13px;background:#fff}@media(max-width:560px){.form-grid{grid-template-columns:1fr}}.tool-card-wrap{display:flex;flex-direction:column}.tool-card-wrap .tool-card{flex:1}.tool-card-admin{display:flex;gap:6px;justify-content:flex-end;padding:6px 2px 0}.coming-soon{max-width:60ch;padding:60px 0}.coming-soon-badge{display:inline-block;font-size:11px;text-transform:uppercase;letter-spacing:.4px;font-weight:700;background:#eef0f0;color:var(--text-muted);padding:3px 10px;border-radius:999px;margin-bottom:12px}.coming-soon h1{margin:0 0 8px;font-size:22px;color:var(--bui-grey)}.coming-soon p{margin:0;color:var(--text-muted);font-size:14.5px;line-height:1.5}.cell-editable{position:relative}.cell-editable:hover{text-decoration:underline dotted var(--bui-orange-dark);text-underline-offset:3px}.review-strip{display:inline-flex;gap:2px;cursor:pointer;vertical-align:middle}.review-cell{width:10px;height:10px;border-radius:2px;display:inline-block}.review-cell.verified{background:var(--green)}.review-cell.manual{background:var(--bui-orange)}.review-cell.gap{background:var(--red)}.review-cell.na{background:var(--grey-na)}.review-cell.current{background:#fff;border:2px solid var(--bui-orange)}.review-cell.future{background:none;border:1px solid var(--border)}.review-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:4px}.review-grid-cell{border-radius:6px;padding:8px 6px;text-align:center;border:1px solid var(--border)}.review-grid-cell.verified{background:#e6f4ea;border-color:#cfe8d6}.review-grid-cell.manual{background:var(--bui-orange-tint);border-color:#efd9b4}.review-grid-cell.gap{background:var(--red-tint);border-color:#f3c8c3}.review-grid-cell.na{background:var(--grey-na-tint);border-color:#d3d5d6}.review-grid-cell.current{background:#fff;border:2px solid var(--bui-orange)}.review-grid-cell.future{background:#fafbfb}.review-grid-month{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase}.review-grid-mark{font-size:15px;font-weight:700;margin-top:2px}.review-grid-cell.verified .review-grid-mark{color:var(--green)}.review-grid-cell.manual .review-grid-mark{color:var(--bui-orange-dark)}.review-grid-cell.gap .review-grid-mark{color:var(--red)}.review-grid-cell.na .review-grid-mark{color:var(--bui-grey-2)}.review-grid-cell.current .review-grid-mark{color:var(--bui-orange-dark)}.review-grid-cell.future .review-grid-mark{color:var(--border)}.month-panel{margin-top:8px;border:1px solid var(--border);border-radius:8px;background:var(--bui-grey-1, #f7f8f8);padding:10px 12px}.month-panel-header{display:flex;align-items:center;justify-content:space-between;font-size:13px;margin-bottom:8px}.month-panel-body{font-size:13px}.review-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:10px;font-size:12px;color:var(--text-muted)}.review-legend span{display:inline-flex;align-items:center;gap:6px}.review-legend i{flex-shrink:0}.review-table tbody tr{cursor:default}.review-table tbody tr:hover{background:none}.merged-review-table tr.row-muted td{color:var(--text-muted)}
