@import "https://fonts.googleapis.com/css2?family=Literata:opsz,wght@9..144,500;9..144,700&family=Source+Sans+3:wght@400;500;600;700&display=swap";:root{--ink:#0b1520;--ink-soft:#1a2a3a;--panel:#f4f7fa;--panel-elev:#fff;--line:#d3dde6;--muted:#5d6f80;--accent:#1e6a8a;--accent-ink:#0f3d52;--accent-soft:#d6ebf3;--danger:#9b2c3a;--p0:#b42318;--p1:#b54708;--p2:#475467;--shadow:0 18px 50px #0b152014;--radius:12px;color:var(--ink);background:var(--panel);font-synthesis:none;text-rendering:optimizelegibility;font-family:"Source Sans 3",Segoe UI,sans-serif;line-height:1.45}*{box-sizing:border-box}body{background:radial-gradient(1200px 600px at 0% -10%, #1e6a8a1f, transparent 55%), radial-gradient(900px 500px at 100% 0%, #1a2a3a14, transparent 45%), linear-gradient(180deg, #eef3f7 0%, var(--panel) 40%);min-height:100vh;margin:0}#root{min-height:100vh}h1,h2,.brand-title,.login-card h1{letter-spacing:-.02em;font-family:Literata,Georgia,serif;font-weight:700}a{color:var(--accent-ink);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}.boot{min-height:100vh;color:var(--muted);place-items:center;display:grid}.app-shell{grid-template-columns:250px 1fr;min-height:100vh;display:grid}.sidebar{background:linear-gradient(180deg, var(--ink) 0%, var(--ink-soft) 100%);color:#e8eef4;border-right:1px solid #ffffff0f;flex-direction:column;gap:1.5rem;height:100vh;padding:1.4rem 1rem;display:flex;position:sticky;top:0}.brand-block{align-items:center;gap:.85rem;padding:.35rem .4rem;display:flex}.brand-mark{background:var(--accent);color:#fff;letter-spacing:.04em;border-radius:10px;place-items:center;width:2.6rem;height:2.6rem;font-family:Literata,Georgia,serif;font-size:.85rem;font-weight:700;display:grid}.brand-title{margin:0;font-size:1.25rem}.brand-sub{color:#e8eef49e;margin:.1rem 0 0;font-size:.82rem}.side-nav{flex-direction:column;gap:.35rem;display:flex}.nav-link{color:#e8eef4d1;border-radius:10px;justify-content:space-between;align-items:center;padding:.7rem .85rem;text-decoration:none;transition:background .16s,color .16s,transform .16s;display:flex}.nav-link:hover{color:#fff;background:#ffffff0f;text-decoration:none}.nav-link.active{color:#fff;background:#1e6a8a47;box-shadow:inset 0 0 0 1px #1e6a8a73}.nav-link kbd{opacity:.55;border:1px solid #ffffff26;border-radius:5px;padding:.1rem .35rem;font-size:.72rem}.side-foot{border-top:1px solid #ffffff14;flex-direction:column;gap:.6rem;margin-top:auto;padding-top:1rem;display:flex}.user-chip{color:#e8eef4c7;margin:0;font-size:.9rem}.content{min-width:0;padding:1.75rem 2rem 2.5rem}.page-head{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.page-head h1{margin:.2rem 0 .25rem;font-size:clamp(1.7rem,2.4vw,2.2rem)}.muted{color:var(--muted)}.crumb{font-size:.9rem}.head-actions{align-items:center;gap:.6rem;display:flex}.saved-flash{color:var(--accent-ink);font-size:.9rem;font-weight:600}.toolbar{flex-wrap:wrap;gap:.6rem;margin-bottom:1rem;display:flex}.search{flex:1;min-width:200px}.btn{cursor:pointer;background:#e7eef4;border:1px solid #0000;border-radius:10px;padding:.55rem .95rem;font-weight:600;transition:transform .12s,background .12s,border-color .12s}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--accent);color:#fff}.btn.primary:hover{background:#185a75}.btn.ghost{border-color:var(--line);background:0 0}.sidebar .btn.ghost{color:#e8eef4e6;border-color:#ffffff2e}.btn.danger{color:var(--danger);border-color:#9b2c3a40}.btn.sm{padding:.25rem .55rem;font-size:.85rem}.btn.wide{width:100%}.btn:disabled{opacity:.6;cursor:wait;transform:none}input,select,textarea{border:1px solid var(--line);background:var(--panel-elev);border-radius:10px;outline:none;width:100%;padding:.55rem .7rem}input:focus,select:focus,textarea:focus{border-color:#1e6a8a8c;box-shadow:0 0 0 3px #1e6a8a1f}textarea{resize:vertical}label{color:var(--ink-soft);flex-direction:column;gap:.35rem;font-size:.88rem;font-weight:600;display:flex}.check-label{flex-direction:row;align-items:center;gap:.55rem;font-weight:500}.check-label input{width:auto}.table-wrap{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffb8;overflow:auto}.data-table{border-collapse:collapse;width:100%;font-size:.95rem}.data-table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--line);background:#f4f7fae6;padding:.85rem 1rem;font-size:.78rem;position:sticky;top:0}.data-table td{vertical-align:top;border-bottom:1px solid #d3dde6b3;padding:.85rem 1rem}.click-row{cursor:pointer;transition:background .12s}.click-row:hover{background:#1e6a8a0d}.pill{letter-spacing:.02em;border-radius:999px;align-items:center;padding:.15rem .55rem;font-size:.75rem;font-weight:700;display:inline-flex}.prio-P0{color:var(--p0);background:#fde8e6}.prio-P1{color:var(--p1);background:#fef0c7}.prio-P2{color:var(--p2);background:#eaecf0}.status-open{color:#175cd3;background:#e8f1ff}.status-in_progress{background:var(--accent-soft);color:var(--accent-ink)}.status-done{color:#1b7a3d;background:#e8f5e9}.status-parked{color:#667085;background:#f2f4f7}.tag{color:var(--accent-ink);background:#1e6a8a1f;border-radius:6px;margin-left:.45rem;padding:.1rem .4rem;font-size:.7rem;font-weight:700}.mono{font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88rem}.truncate{white-space:nowrap;text-overflow:ellipsis;max-width:28rem;overflow:hidden}.empty{text-align:center;color:var(--muted);padding:2rem!important}.detail-form{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#ffffffc7;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.25rem;padding:1.25rem;display:grid}.span-2{grid-column:span 2}.form-actions{gap:.6rem;display:flex}.form-error{color:var(--danger);margin:.4rem 0}.attachments{border:1px solid var(--line);border-radius:var(--radius);background:#ffffffb3;padding:1rem 1.15rem}.attachments-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.attachments-head h2{margin:0;font-size:1.15rem}.file-list{flex-direction:column;gap:.55rem;margin:0;padding:0;list-style:none;display:flex}.file-list li{align-items:center;gap:.75rem;display:flex}.linkish{color:var(--accent-ink);cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.login-page{place-items:center;min-height:100vh;padding:1.5rem;display:grid}.login-card{border:1px solid var(--line);width:min(400px,100%);box-shadow:var(--shadow);background:#ffffffe6;border-radius:18px;flex-direction:column;gap:.85rem;padding:1.75rem;display:flex}.login-eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--accent-ink);margin:0;font-size:.72rem;font-weight:700}.login-card h1{margin:0;font-size:2.1rem}.password-field{align-items:center;display:flex;position:relative}.password-field input{width:100%;padding-right:3.25rem}.password-toggle{color:var(--accent-ink);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.25rem .4rem;font-size:.82rem;font-weight:600;position:absolute;right:.45rem}.password-toggle:hover{background:#0f4c8114}.password-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}@media (width<=900px){.app-shell{grid-template-columns:1fr}.sidebar{height:auto;position:relative}.detail-form{grid-template-columns:1fr}.span-2{grid-column:span 1}.content{padding:1.1rem}}.dash-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.dash-panel{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#ffffffc7;padding:1rem 1.15rem}.dash-panel.span-full{grid-column:1/-1}.dash-panel h2{margin:0 0 .75rem;font-size:1.15rem}.dash-panel h3{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:.85rem 0 .4rem;font-family:"Source Sans 3",sans-serif;font-size:.78rem;font-weight:700}.danger-panel{background:#fde8e659;border-color:#9b2c3a47}.dash-list{flex-direction:column;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.dash-list li{flex-wrap:wrap;align-items:center;gap:.5rem .65rem;font-size:.92rem;display:flex}.dash-split{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.empty-inline{color:var(--muted);margin:0;font-size:.9rem}.muted-link{color:var(--muted);font-size:.85rem}.date{min-width:5.5rem}.subpanel{margin-top:1.25rem}.subpanel-head{justify-content:space-between;align-items:center;margin-bottom:.65rem;display:flex}.subpanel h2{margin:0 0 .65rem;font-size:1.2rem}.type-renewal{color:#b54708;background:#fff4e5}.type-invoice{color:#175cd3;background:#e8f1ff}.type-payment{color:#1b7a3d;background:#e8f5e9}.type-note{color:#475467;background:#f2f4f7}.type-outage{color:#b42318;background:#fde8e6}.type-handoff{color:#5925dc;background:#efe8fd}.status-active{background:var(--accent-soft);color:var(--accent-ink)}.status-inactive{color:#667085;background:#f2f4f7}.status-pending{color:#b54708;background:#fef0c7}.status-unknown{color:#475467;background:#eaecf0}.status-paused{color:#b54708;background:#fef0c7}.status-later{color:#667085;background:#f2f4f7}.list-toolbar{flex-wrap:wrap;align-items:center;gap:.65rem;margin-bottom:.75rem;display:flex}.search-autocomplete{flex:280px;min-width:220px;max-width:520px;position:relative}.search-autocomplete .search{width:100%;padding-right:2rem}.search-clear{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:.2rem .35rem;font-size:1.2rem;line-height:1;position:absolute;top:50%;right:.45rem;transform:translateY(-50%)}.suggest-panel{z-index:40;border:1px solid var(--line);max-height:360px;box-shadow:var(--shadow);background:#fff;border-radius:10px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto}.suggest-group{border-bottom:1px solid var(--line);padding:.45rem 0}.suggest-group:last-child{border-bottom:0}.suggest-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0;padding:.25rem .85rem;font-size:.7rem;font-weight:700}.suggest-item{text-align:left;cursor:pointer;width:100%;font:inherit;background:0 0;border:0;justify-content:space-between;gap:.75rem;padding:.45rem .85rem;display:flex}.suggest-item:hover{background:#1e6a8a14}.check-inline{color:var(--ink-soft);white-space:nowrap;align-items:center;gap:.4rem;font-size:.9rem;font-weight:500;display:inline-flex}.check-inline input{width:auto}.hint-line{color:var(--muted);margin:0 0 .65rem;font-size:.82rem}.th-stack{flex-direction:column;gap:.35rem;width:100%;display:flex}.th-stack span,.th-sort{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:.72rem}.th-sort{text-align:left;cursor:pointer;font:inherit;color:var(--ink-soft);background:0 0;border:0;margin:0;padding:0;font-size:.72rem;font-weight:700}.th-sort:hover{color:var(--accent-ink)}.th-stack input{border:1px solid var(--line);background:#fff;border-radius:6px;width:100%;padding:.28rem .4rem;font-size:.78rem;font-weight:500}.th-filter-spacer{box-sizing:border-box;visibility:hidden;pointer-events:none;border:1px solid #0000;width:100%;padding:.28rem .4rem;font-size:.78rem;line-height:1.2;display:block}.tasks-table th{text-transform:none;letter-spacing:0;padding:.55rem .65rem}.tasks-table td{vertical-align:middle;padding:.55rem .65rem}.col-drag{width:2rem;padding-left:.4rem!important;padding-right:.2rem!important}.col-order{text-align:right;width:3.5rem}.table-wrap.is-refreshing{opacity:.72;transition:opacity .15s}.drag-handle{cursor:grab;color:var(--muted);letter-spacing:-.12em;-webkit-user-select:none;user-select:none;padding:.15rem .25rem;display:inline-flex}.drag-handle:active{cursor:grabbing}.drag-spacer{width:1rem;display:inline-block}.kind-event{background:#f4f7faa6}.kind-task-pill{background:var(--accent-soft);color:var(--accent-ink)}.table-pager{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.85rem;margin-top:.75rem;display:flex}.table-pager label{flex-direction:row;align-items:center;gap:.45rem;font-weight:500}.pager-btns{gap:.4rem;display:flex}.kb-stats{flex-wrap:wrap;gap:1rem;margin-bottom:.85rem;display:flex}.kb-stat{border:1px solid var(--line);background:#fff;border-radius:10px;flex-direction:column;gap:.15rem;min-width:120px;padding:.65rem 1rem;display:flex}.kb-stat-n{color:var(--accent-ink);font-size:1.35rem;font-weight:700}.kb-toolbar{flex-direction:column;align-items:stretch}.kb-tier-tabs{flex-wrap:wrap;gap:.4rem;display:flex}.kb-tier-tabs .btn{align-items:center;gap:.45rem;display:inline-flex}.kb-tier-count{opacity:.85;font-size:.75rem;font-weight:600}.kb-table{table-layout:fixed;width:100%;font-size:.86rem}.kb-table th{text-transform:none;letter-spacing:0;vertical-align:middle;padding:.32rem .5rem}.kb-table td{vertical-align:middle;padding:.28rem .5rem}.kb-table .pill{padding:.06rem .38rem;font-size:.68rem;line-height:1.35}.kb-table .th-sort{font-size:.68rem;line-height:1.2}.kb-col-head{position:relative;overflow:hidden}.kb-col-resize{cursor:col-resize;-webkit-user-select:none;user-select:none;touch-action:none;width:6px;height:100%;position:absolute;top:0;right:0}.kb-col-resize:hover,.kb-col-resize:active{background:#1e6a8a40}.kb-cell-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kb-table .col-score{width:4rem}.kb-table .col-ticket-id{width:5.5rem}.kb-table .col-category{width:9rem}.kb-table .col-created{width:6.75rem}.kb-created{white-space:nowrap;font-variant-numeric:tabular-nums}.kb-excerpt{max-width:none;color:var(--muted);font-size:.78rem;line-height:1.3}.kb-score-priority{color:#b42318;background:#fde8e6;font-weight:700}.kb-score-shortlist{color:#b54708;background:#fef0c7}.kb-score-review{color:#175cd3;background:#e8f1ff}.kb-score-low{color:#667085;background:#f2f4f7}.kb-cat{color:#475467;text-transform:capitalize;background:#f2f4f7}.kb-detail-grid{grid-template-columns:1fr 1fr;gap:.85rem;margin-bottom:.85rem;display:grid}.kb-body{white-space:pre-wrap;margin:0;font-family:inherit;font-size:.9rem;line-height:1.45}.kb-conversations{flex-direction:column;gap:.75rem;display:flex}.kb-conv{border:1px solid var(--line);background:#fafbfc;border-radius:8px;padding:.65rem .75rem}.kb-conv.private{background:#fff8e6}.kb-conv header{align-items:center;gap:.5rem;margin-bottom:.35rem;display:flex}@media (width<=900px){.dash-grid,.dash-split,.kb-detail-grid,.admin-grid{grid-template-columns:1fr}}.admin-grid{grid-template-columns:minmax(280px,380px) 1fr;align-items:start;gap:1rem;display:grid}.admin-page .subpanel h2{margin:0 0 .85rem;font-size:1.05rem}.admin-users-table th,.admin-users-table td{padding:.35rem .55rem;font-size:.88rem}.admin-users-panel{min-width:0}
