.stack{gap:calc(var(--u) * 3);flex-direction:column;display:flex}.stack--tight{gap:calc(var(--u) * 2)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:calc(var(--u) * 5)}.muted{color:var(--ink-muted)}.subnav{gap:calc(var(--u) * 1);margin-bottom:calc(var(--u) * 4);display:flex}.dt-wrap+.page-header,.panel+.page-header,.kpis+.page-header{margin-top:calc(var(--u) * 6)}.btn{align-items:center;gap:calc(var(--u) * 1.5);height:var(--row-h);padding:0 calc(var(--u) * 3);border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);color:var(--ink);font:500 var(--text-base) var(--font-ui);cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s;display:inline-flex}.btn:hover{background:var(--surface-sunken)}.btn:disabled{opacity:.55;cursor:default}.btn--primary{background:var(--ember);border-color:var(--ember);color:var(--on-accent)}.btn--primary:hover{background:var(--ember-hover)}.btn--ember{background:var(--ember);border-color:var(--ember);color:var(--on-accent)}.btn--ember:hover{background:var(--ember-hover)}.btn--danger{background:var(--surface);border-color:var(--danger);color:var(--danger)}.btn--danger:hover{background:var(--danger-soft)}.btn--ghost{border-color:var(--line);background:var(--surface);color:var(--ink-soft);box-shadow:0 1px 1px #14232d08}.btn--ghost:hover{background:var(--surface-sunken);border-color:var(--line-strong);color:var(--ink)}.btn--sm{height:24px;padding:0 calc(var(--u) * 2);font-size:var(--text-sm)}.pill{height:18px;padding:0 calc(var(--u) * 2);border-radius:var(--radius-pill);font:600 var(--text-label) var(--font-data);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;align-items:center;display:inline-flex}.pill--neutral{background:var(--neutral-soft);color:var(--neutral)}.pill--active{background:var(--cobalt-soft);color:var(--cobalt)}.pill--ok{background:var(--ok-soft);color:var(--ok)}.pill--warn{background:var(--warn-soft);color:var(--warn)}.pill--danger{background:var(--danger-soft);color:var(--danger)}.search{align-items:center;display:inline-flex;position:relative}.search input{height:var(--row-h);width:260px;padding:0 calc(var(--u) * 7) 0 calc(var(--u) * 2);border:1px solid var(--line-strong);border-radius:var(--radius);font:inherit;background:var(--surface);color:var(--ink)}.search input::placeholder{color:var(--ink-faint)}.search-clear{right:calc(var(--u) * 1);border-radius:var(--radius);width:22px;height:22px;color:var(--ink-faint);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;font-size:14px;display:inline-flex;position:absolute}.search-clear:hover{background:var(--surface-sunken);color:var(--ink)}.page{padding:calc(var(--u) * 6);max-width:1400px}.page--wide{max-width:none}.page-header{align-items:center;gap:calc(var(--u) * 3);margin-bottom:calc(var(--u) * 4);display:flex}.page-header h1{font:700 19px var(--display,var(--font-ui));letter-spacing:.01em;margin:0}.page-header .page-count{color:var(--ink-faint);font-size:var(--text-sm)}.page-header .page-actions{gap:calc(var(--u) * 2);margin-left:auto;display:flex}.tf-theme-grid{gap:calc(var(--u) * 2);grid-template-columns:repeat(auto-fill,minmax(148px,1fr));display:grid}.tf-theme-card{gap:calc(var(--u) * 1);padding:calc(var(--u) * 2.5);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer;display:grid;position:relative}.tf-theme-card:hover{border-color:var(--line-strong);background:var(--cobalt-soft)}.tf-theme-card.active{border-color:var(--teal);box-shadow:0 0 0 1px var(--teal)}.tf-theme-swatch{gap:4px;height:22px;display:flex}.tf-theme-swatch span{border:1px solid color-mix(in srgb, var(--ink) 14%, transparent);border-radius:4px;flex:1}.tf-theme-name{font-weight:600;font-size:var(--text-sm)}.tf-theme-mode{font:500 9px var(--font-data);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint)}.tf-theme-check{top:calc(var(--u) * 2);right:calc(var(--u) * 2);color:var(--teal);position:absolute}.dt-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:auto}.dt{border-collapse:collapse;width:100%}.dt th{z-index:1;text-align:left;font-size:var(--text-label);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);padding:0 calc(var(--u) * 3);height:var(--row-h);border-bottom:1px solid var(--line-strong);background:var(--surface-sunken);white-space:nowrap;-webkit-user-select:none;user-select:none;font-weight:500;position:sticky;top:0}.dt th.dt-sortable{cursor:pointer}.dt th.dt-sortable:hover{color:var(--ink)}.dt th .dt-sort{color:var(--cobalt);margin-left:4px}.dt td{padding:0 calc(var(--u) * 3);height:var(--row-h);border-bottom:1px solid var(--line);white-space:nowrap;text-overflow:ellipsis;max-width:340px;overflow:hidden}.dt tbody tr:last-child td{border-bottom:none}.dt tbody tr.dt-clickable{cursor:pointer}.dt tbody tr.dt-clickable:hover td,.dt tbody tr.dt-focused td{background:var(--cobalt-soft)}.dt .dt-right{text-align:right}.dt-empty{padding:calc(var(--u) * 10)}.state{align-items:center;gap:calc(var(--u) * 2);padding:calc(var(--u) * 10);text-align:center;color:var(--ink-muted);flex-direction:column;display:flex}.state-title{color:var(--ink);font-weight:600}.state--error .state-title{color:var(--danger)}.modal-overlay{z-index:100;background:#16191d66;place-items:center;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:min(480px,100vw - 32px);box-shadow:var(--shadow-pop);flex-direction:column;display:flex}.modal-title{padding:calc(var(--u) * 4) calc(var(--u) * 5) 0;font:600 var(--text-lg) var(--font-ui);margin:0}.modal-body{padding:calc(var(--u) * 4) calc(var(--u) * 5)}.modal-foot{justify-content:flex-end;gap:calc(var(--u) * 2);padding:0 calc(var(--u) * 5) calc(var(--u) * 4);display:flex}.toasts{bottom:calc(var(--u) * 5);right:calc(var(--u) * 5);gap:calc(var(--u) * 2);z-index:200;pointer-events:none;flex-direction:column;display:flex;position:fixed}.toast{align-items:center;gap:calc(var(--u) * 2);min-width:260px;max-width:420px;padding:calc(var(--u) * 3) calc(var(--u) * 4);background:var(--ink);color:var(--paper);border-radius:var(--radius);box-shadow:var(--shadow-pop);font-size:var(--text-base);display:flex}.toast--error{background:var(--danger);color:var(--on-accent)}.toast--success:before{content:"✓";color:var(--ok);font-weight:700}.field{gap:calc(var(--u) * 1);flex-direction:column;display:flex}.field>span{font-size:var(--text-label);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted)}.field input,.field select,.field textarea{height:var(--row-h);padding:0 calc(var(--u) * 2);border:1px solid var(--line-strong);border-radius:var(--radius);font:inherit;background:var(--surface);color:var(--ink)}.field textarea{height:auto;padding:calc(var(--u) * 2)}.pay-notes{resize:vertical;width:100%;min-height:calc(var(--u) * 18);max-height:40vh;line-height:1.45;overflow-y:auto}.kpis{gap:calc(var(--u) * 3);margin-bottom:calc(var(--u) * 4);flex-wrap:wrap;display:flex}.kpi{min-width:140px;padding:calc(var(--u) * 3) calc(var(--u) * 4);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex:1}.kpi-label{font-size:var(--text-label);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted)}.kpi-value{font:600 var(--text-title) var(--font-data);margin-top:calc(var(--u) * 1)}.rail,.rail-step{align-items:center;display:flex}.rail-node{border:2px solid var(--line-strong);background:var(--surface);border-radius:50%;flex-shrink:0;width:10px;height:10px}.rail-step--done .rail-node{background:var(--cobalt);border-color:var(--cobalt)}.rail-step--current .rail-node{background:var(--ember);border-color:var(--ember);box-shadow:0 0 0 3px var(--ember-soft)}.rail-link{background:var(--line-strong);width:26px;height:2px}.rail-step--done .rail-link{background:var(--cobalt)}.rail-label{margin-left:calc(var(--u) * 2);font:600 var(--text-label) var(--font-data);text-transform:uppercase;letter-spacing:.05em;color:var(--ember);white-space:nowrap}.rail--mini .rail-node{border-width:1px;width:6px;height:6px}.rail--mini .rail-link{width:8px;height:1px}.rail--mini .rail-step--current .rail-node{box-shadow:0 0 0 2px var(--ember-soft)}.picker-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);max-height:240px;box-shadow:var(--shadow-pop);z-index:10;flex-direction:column;display:flex;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow:auto}.picker-group{z-index:1;padding:calc(var(--u) * 1.5) calc(var(--u) * 2.5) calc(var(--u) * .75);background:var(--surface);border-top:1px solid var(--line);color:var(--text-muted,#6b7280);font-size:var(--text-xs,11px);letter-spacing:.06em;text-transform:uppercase;font-weight:600;position:sticky;top:0}.picker-group:first-child{border-top:none}.picker-empty{padding:calc(var(--u) * 2) calc(var(--u) * 2.5);font-size:var(--text-sm)}.picker-opt{gap:calc(var(--u) * 2);padding:calc(var(--u) * 1.5) calc(var(--u) * 2.5);font:inherit;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:none;align-items:baseline;display:flex}.picker-opt.is-hi{background:var(--cobalt-soft)}.cat-fav{color:var(--warn);cursor:pointer;background:0 0;border:none;padding:0;font-size:15px}.ps-map{border-collapse:collapse;font-size:var(--text-sm);width:100%}.ps-map th,.ps-map td{border-bottom:1px solid var(--line);white-space:nowrap;text-overflow:ellipsis;max-width:180px;padding:2px 8px;overflow:hidden}.ps-map tbody tr{cursor:pointer}.ps-map tbody tr:hover td{background:var(--cobalt-soft)}.ps-map tbody tr.is-header td{background:var(--cobalt-soft);font-weight:600}.ps-map select{font-size:var(--text-sm);max-width:130px}.input{height:var(--row-h);padding:0 calc(var(--u) * 2);border:1px solid var(--line-strong);border-radius:var(--radius);font:inherit;background:var(--surface);color:var(--ink)}.tm-cell{font:inherit;color:inherit;cursor:pointer;border-radius:var(--radius);text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;max-width:100%;padding:2px 4px;overflow:hidden}.tm-cell:hover{background:var(--cobalt-soft)}.modal-body{overflow-x:hidden}.modal-body input:not([type=checkbox]):not([type=radio]),.modal-body select,.modal-body textarea{box-sizing:border-box;width:100%;min-width:0}.modal-body .field,.modal-body .stack>*{min-width:0}.modal-body{overflow-wrap:anywhere}.modal-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}
