:root{--ink: #17212b;--ink-soft: #46535f;--muted: #6d7a86;--rule: #dde3e9;--rule-strong: #b6c2cd;--accent: #2f5d8a;--accent-deep: #27506f;--accent-ink: #ffffff;--accent-wash: #eaf1f8;--bg: #eef1f4;--login-plate: #1d2023;--surface: #ffffff;--stripe: #f5f8f5;--error: #a4281f;--error-wash: #fbeceb;--success: #1e6b3a;--warn: #8a5a12;--warn-wash: #fbf3e4;--gap: 1rem;--radius: 5px;font-family:"Source Sans 3",Segoe UI,system-ui,-apple-system,Helvetica Neue,sans-serif;font-size:15px;line-height:1.5;color:var(--ink)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}h1,h2,h3{font-weight:600;letter-spacing:-.01em;color:var(--ink)}h2{font-size:1.25rem;margin:0 0 .75rem}h3{font-size:1.05rem;margin:1.75rem 0 .6rem}p{margin:0 0 .6rem}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}button{font:inherit;font-weight:500;cursor:pointer;border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);border-radius:var(--radius);padding:.42rem .85rem;transition:background-color .12s ease,border-color .12s ease}button:hover:not(:disabled){background:#27506f;border-color:#27506f}button:disabled{opacity:.45;cursor:default}.btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--rule-strong)}.btn-secondary:hover:not(:disabled){background:var(--accent-wash);border-color:var(--accent);color:var(--accent)}.btn-quiet{background:transparent;border-color:transparent;color:var(--ink-soft);padding:.3rem .5rem}.btn-quiet:hover:not(:disabled){background:var(--rule);border-color:transparent;color:var(--ink)}.btn-destructive{background:var(--error);border-color:var(--error)}.btn-destructive:hover:not(:disabled){background:#8b211a;border-color:#8b211a}.btn-icon{line-height:1;padding:.35rem .5rem}.btn-menu{padding:.3rem .6rem;white-space:nowrap}input,textarea,select{font:inherit;padding:.42rem .6rem;border:1px solid var(--rule-strong);border-radius:var(--radius);background:var(--surface);color:var(--ink);max-width:100%}input:focus,textarea:focus,select:focus{border-color:var(--accent);outline-offset:0}input[type=number],input[inputmode=decimal]{font-variant-numeric:tabular-nums}label{display:flex;flex-direction:column;gap:.25rem;font-size:.88rem;color:var(--ink-soft)}.field-note{font-size:.85rem;color:var(--muted)}.field-warning{font-size:.85rem;color:var(--warn);background:var(--warn-wash);border-left:3px solid var(--warn);padding:.5rem .7rem;border-radius:0 var(--radius) var(--radius) 0}.data-table .cell-sub{display:block;margin-top:.2rem;font-size:.78rem;color:var(--muted);max-width:30rem;text-wrap:pretty}.nested-table td:first-child{white-space:nowrap}.optional{font-weight:400;color:var(--muted);font-size:.82em}.error{color:var(--error)}.success{color:var(--success)}.hint,.muted{color:var(--muted)}.hint{font-size:.92rem}.login-bg{position:fixed;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%;pointer-events:none;z-index:0}.login-page,.auth-page{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem;background:var(--login-plate)}.login-form,.auth{position:relative;z-index:1}.auth,.login-form{background:#1013178c;-webkit-backdrop-filter:blur(18px) saturate(140%);backdrop-filter:blur(18px) saturate(140%);border:1px solid rgba(255,255,255,.16);border-radius:var(--radius);box-shadow:0 24px 60px #00000073;padding:2rem;width:100%;color:#f2f5f8}.auth{max-width:26rem}.auth form{display:flex;flex-direction:column;gap:.9rem;margin-top:1.1rem}.login-form{max-width:22rem;display:flex;flex-direction:column;gap:.9rem}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.auth,.login-form{background:#101317eb}}@media (prefers-reduced-transparency: reduce){.auth,.login-form{background:#101317f5;-webkit-backdrop-filter:none;backdrop-filter:none}}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}.auth h1,.login-form h1{color:#fff;letter-spacing:.01em}.auth label,.login-form label{color:#ffffffb8}.auth .hint,.login-form .hint,.auth p{color:#ffffff9e}.auth code,.login-form code{color:#ffffffd1}.auth input,.login-form input{background:#ffffff12;border:1px solid rgba(255,255,255,.22);color:#f2f5f8}.auth input::placeholder,.login-form input::placeholder{color:#ffffff61}.auth input:-webkit-autofill,.login-form input:-webkit-autofill,.auth input:-webkit-autofill:hover,.login-form input:-webkit-autofill:hover,.auth input:-webkit-autofill:focus,.login-form input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 100px #23282e inset;box-shadow:0 0 0 100px #23282e inset;-webkit-text-fill-color:#f2f5f8;caret-color:#f2f5f8}.auth input:focus,.login-form input:focus{outline:none;border-color:#fff9;box-shadow:0 0 0 3px #ffffff1f}.auth button,.login-form button{background:#3d7cb4;border-color:#3d7cb4;color:#fff}.auth button:hover:not(:disabled),.login-form button:hover:not(:disabled){background:#4a8cc6;border-color:#4a8cc6}.auth .error,.login-form .error{color:#ff9f94}.auth a,.login-form a{color:#9ecbf0}.dashboard header{display:flex;align-items:center;gap:1rem;padding:.7rem 1.5rem;background:var(--surface);border-bottom:1px solid var(--rule)}.dashboard header h1{font-size:1.05rem;margin:0;flex:1;letter-spacing:-.015em}.role-badge{font-size:.78rem;background:var(--accent-wash);border:1px solid #cfdeed;border-radius:999px;padding:.15rem .6rem;color:var(--accent)}.crumb{display:flex;align-items:center;gap:.5rem;padding:.85rem 1.5rem 0;background:var(--surface);font-size:.95rem}.crumb strong{font-weight:600}.crumb-sep{color:var(--rule-strong)}.crumb .btn-quiet{padding-left:0;padding-right:.25rem}.tabs{display:flex;gap:1.25rem;padding:.75rem 1.5rem 0;border-bottom:1px solid var(--rule);background:var(--surface);overflow-x:auto}.tabs button{background:transparent;color:var(--muted);border:none;border-bottom:2px solid transparent;border-radius:0;padding:.35rem 0 .55rem;white-space:nowrap;font-weight:500}.logout{white-space:nowrap}.tabs button:hover:not(:disabled){background:transparent;color:var(--ink)}.tabs button.active{color:var(--accent);border-bottom-color:var(--accent)}main{padding:1.5rem;max-width:96rem}.data-table .date-cell{white-space:nowrap}.table-scroll{overflow-x:auto;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius)}.data-table{width:100%;border-collapse:collapse;background:var(--surface);font-variant-numeric:tabular-nums}.data-table th{text-align:left;font-weight:600;font-size:.82rem;color:var(--ink-soft);padding:.6rem .85rem;border-bottom:2px solid var(--rule-strong);white-space:nowrap;position:sticky;top:0;background:var(--surface);z-index:1}.data-table td{text-align:left;padding:.55rem .85rem;border-bottom:1px solid var(--rule);vertical-align:middle}.data-table tbody tr:nth-child(2n) td{background:var(--stripe)}.data-table tbody tr:hover td{background:var(--accent-wash)}.data-table tbody tr:last-child td{border-bottom:none}.data-table .num,.data-table th.num{text-align:right;white-space:nowrap}.data-table .actions,.data-table th.actions{text-align:right;width:1%;white-space:nowrap}.data-table .primary-cell{font-weight:600}.data-table .negative{color:var(--error)}.row-inactive td{color:var(--muted)}.table-caption{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin:0 0 .6rem}.table-count{color:var(--muted);font-size:.9rem;font-variant-numeric:tabular-nums}.pill{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;padding:.1rem .55rem .1rem .45rem;border-radius:999px;border:1px solid var(--rule-strong);color:var(--ink-soft);background:var(--surface);white-space:nowrap}.pill-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.pill-good{color:var(--success);border-color:#b9d8c4;background:#f0f7f2}.pill-ended{color:var(--muted);border-color:var(--rule-strong);background:var(--bg)}.pill-waiting{color:var(--warn);border-color:#e6d3ad;background:var(--warn-wash)}.pill-bad{color:var(--error);border-color:#e7bfbc;background:var(--error-wash)}.row-menu{margin:0;padding:.25rem;min-width:14rem;border:1px solid var(--rule-strong);border-radius:var(--radius);background:var(--surface);box-shadow:0 8px 24px #17212b24;display:flex;flex-direction:column;inset:auto}.row-menu:not([popover]){z-index:50}.row-menu-item{background:transparent;border:none;border-radius:3px;color:var(--ink);text-align:left;padding:.42rem .6rem;font-weight:400}.row-menu-item:hover:not(:disabled){background:var(--accent-wash);color:var(--accent)}.row-menu-item-destructive{color:var(--error)}.row-menu-item-destructive:hover:not(:disabled){background:var(--error-wash);color:var(--error)}.row-menu-divider{border:none;border-top:1px solid var(--rule);margin:.25rem 0}.modal{border:1px solid var(--rule-strong);border-radius:7px;padding:0;width:min(30rem,calc(100vw - 2rem));box-shadow:0 20px 48px #17212b38;color:var(--ink)}.modal-wide{width:min(44rem,calc(100vw - 2rem))}.modal::backdrop{background:#17212b6b}.modal-body{display:flex;flex-direction:column;max-height:min(80vh,44rem)}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1rem 1.1rem .75rem;border-bottom:1px solid var(--rule)}.modal-header h3{margin:0;font-size:1.05rem}.modal-subtitle{margin:.15rem 0 0;color:var(--muted);font-size:.9rem}.modal-content{padding:1rem 1.1rem;overflow-y:auto;display:flex;flex-direction:column;gap:.85rem}.modal-footer{padding:.75rem 1.1rem 1rem;border-top:1px solid var(--rule)}.modal-actions{display:flex;justify-content:flex-end;gap:.6rem}.modal-error{margin:0 0 .6rem;background:var(--error-wash);border:1px solid #e7bfbc;border-radius:var(--radius);padding:.5rem .65rem;font-size:.92rem}.field-current{display:flex;align-items:baseline;gap:.6rem;margin:0;padding:.5rem .7rem;background:var(--bg);border-radius:var(--radius)}.field-current-label{color:var(--muted);font-size:.88rem}.field-current-value{font-weight:600;font-variant-numeric:tabular-nums}.confirm-consequence{margin:0}.field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:.85rem}.inline-form{display:flex;gap:.75rem;align-items:flex-end;flex-wrap:wrap;margin-bottom:1.1rem;padding:.9rem 1rem;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius)}.details-form{display:flex;flex-direction:column;gap:.9rem;max-width:44rem;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);padding:1.1rem}.review-card{background:var(--surface);border:1px solid var(--rule);border-left:3px solid var(--rule-strong);border-radius:var(--radius);padding:.9rem 1.1rem;margin-bottom:.85rem}.review-card textarea{width:100%;min-height:5rem;margin:.5rem 0}.notice{border:1px solid var(--rule);border-left:3px solid var(--accent);background:var(--surface);border-radius:var(--radius);padding:.75rem 1rem;margin-bottom:1rem}.notice-warn{border-left-color:var(--warn);background:var(--warn-wash)}.notice-error{border-left-color:var(--error);background:var(--error-wash)}.notice-success{border-left-color:var(--success);background:#eef5f0;color:var(--success)}.empty-state{padding:2rem 1rem;text-align:center;color:var(--muted);background:var(--surface);border:1px dashed var(--rule-strong);border-radius:var(--radius)}@media (max-width: 40rem){main{padding:1rem}.dashboard header,.tabs{padding-inline:1rem}.dashboard header{flex-wrap:wrap;gap:.6rem;row-gap:.4rem}.dashboard header>.tabs{order:3;flex-basis:100%;border-bottom:none}.inline-form{flex-direction:column;align-items:stretch}}.table-caption h2{margin:0}.table-caption-actions{display:flex;align-items:center;gap:.9rem}.panel{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);padding:.25rem 1rem .1rem;margin-bottom:1rem}.panel h3{margin:.8rem 0 .6rem}.panel .inline-form{border:none;padding:0;background:transparent}.panel-details{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);margin-bottom:1.1rem}.panel-details>summary{cursor:pointer;padding:.6rem 1rem;font-weight:500;color:var(--accent);list-style-position:inside}.panel-details>summary:hover{background:var(--accent-wash)}.panel-details[open]>summary{border-bottom:1px solid var(--rule)}.panel-details .inline-form{border:none;background:transparent;margin-bottom:.3rem}.panel-details .field-note{padding:0 1rem .9rem;max-width:68ch}.expanded-cell{background:var(--bg);padding:.6rem .85rem .9rem}.data-table tfoot td{border-top:2px solid var(--rule-strong);font-weight:600;padding:.55rem .85rem;background:var(--surface)}.tree-branch:before{content:"└ ";color:var(--rule-strong);font-weight:400}.kv-table td:first-child{width:60%;color:var(--ink-soft)}.kv-table td:last-child{text-align:right;font-variant-numeric:tabular-nums;font-weight:500}.grant-form{max-width:52rem;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);padding:1.1rem 1.25rem 1.25rem;display:flex;flex-direction:column;gap:.9rem}.grant-form>button{align-self:flex-start}.permission-group{border:1px solid var(--rule);border-radius:var(--radius);padding:.5rem .9rem .8rem;margin:0}.permission-group legend{font-size:.82rem;font-weight:600;color:var(--ink-soft);padding:0 .35rem}.permission-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.15rem 1rem}.check{flex-direction:row;align-items:center;gap:.45rem;font-weight:400;color:var(--ink);padding:.15rem 0}.check input{margin:0}.strong-cell{font-weight:600}.detail-group{border:1px solid var(--rule);border-radius:var(--radius);padding:.5rem .9rem .9rem;margin:0}.detail-group legend{font-size:.82rem;font-weight:600;color:var(--ink-soft);padding:0 .35rem}.detail-group .field-note{margin-top:.35rem}.import-panel{margin-top:1.75rem;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius)}.import-panel>summary{cursor:pointer;padding:.7rem 1rem;font-weight:500;color:var(--accent);list-style-position:inside}.import-panel>summary:hover{background:var(--accent-wash)}.import-panel[open]>summary{border-bottom:1px solid var(--rule)}.import-panel>:not(summary){margin:0 1rem}.import-section{padding:.25rem 0 1rem;border-bottom:1px solid var(--rule)}.import-section:last-of-type{border-bottom:none}.import-section h3{margin-top:1rem}.import-section .inline-form{background:var(--bg);border-color:var(--rule)}.import-panel .hint{max-width:62ch}.nested-table{border:1px solid var(--rule);border-radius:var(--radius);margin:.25rem 0}.review-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.5rem}.review-head .hint{margin:.1rem 0 0}.review-head h3{margin:0;font-size:.98rem}.review-rating{margin:.15rem 0 0;color:var(--ink-soft);font-size:.86rem}.review-head-actions{display:flex;align-items:center;gap:.6rem}.quoted{border-left:2px solid var(--rule-strong);padding-left:.85rem;margin:0}.quoted p:last-child{margin-bottom:0}.row-buttons{display:inline-flex;gap:.4rem}.row-buttons button{padding:.3rem .7rem}.run-inputs h4{margin:0;font-size:.95rem}.run-inputs .inline-form{align-items:flex-end;margin-top:.5rem}.run-inputs .field-note{margin-top:.45rem}.data-table .cell-sub-warning{color:var(--warn)}.checkbox-cell,.checkbox-field{display:flex;flex-direction:row;align-items:center;gap:.4rem;font-weight:400;cursor:pointer}.checkbox-cell input,.checkbox-field input{width:auto;margin:0;cursor:pointer}.inline-form .checkbox-field{align-self:end;padding-bottom:.5rem}.data-table .cell-sub-error{color:var(--error)}.data-table .cell-sub-caution{color:var(--warn)}.field-note-error{color:var(--error);background:var(--error-wash);border-left:3px solid var(--error);padding:.5rem .7rem;border-radius:0 var(--radius) var(--radius) 0}.field-note-caution{color:var(--warn);background:var(--warn-wash);border-left:3px solid var(--warn);padding:.5rem .7rem;border-radius:0 var(--radius) var(--radius) 0}.table-note{margin:0 0 .6rem;font-size:.85rem;color:var(--warn)}
