:root{--color-brand:#23468c;--color-success:#238c33;--color-accent:#d9cf4a;--color-danger:#f24141;--color-ink:#0d0d0d;--color-bg:#f7f8fa;--color-surface:#fff;--color-border:#e5e7eb;--color-text-2:#4b5563;--color-text-3:#6b7280;--color-hover:#f3f4f6;--color-brand-soft:#e9edf5;--color-brand-hover:#19376f;--color-brand-on-soft:#23468c;--color-success-soft:#e9f4eb;--color-success-on-soft:#185f23;--color-danger-soft:#feeced;--color-danger-on-soft:#ac2121;--color-accent-soft:#f8f5d7;--color-accent-on-soft:#625a14;--color-veil:#0d0d0d66;--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--radius-sm:8px;--radius-md:10px;--radius-lg:14px;--radius-pill:999px;--shadow-card:0 1px 3px #0000000f;--size-target:40px;--size-nav:240px;--size-content:1280px;--size-login:448px;--size-dialog:640px;--text-small:13px;--text-body:15px;--text-h3:16px;--text-h2:20px;--text-h1:26px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:var(--text-body);color:var(--color-ink);background:var(--color-bg);line-height:1.55}*{box-sizing:border-box}body{margin:0}h1,h2,h3,p{overflow-wrap:anywhere;margin:0}h1{font-size:var(--text-h1);font-weight:700;line-height:1.25}h2{font-size:var(--text-h2);font-weight:700;line-height:1.35}h3{font-size:var(--text-h3);font-weight:700}a{color:var(--color-brand);text-underline-offset:3px}button,.button{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--size-target);padding:var(--space-2) var(--space-4);font:inherit;color:var(--color-ink);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;text-decoration:none;transition:background .15s ease-out;display:inline-flex}button:hover,.button:hover{background:var(--color-hover)}button:disabled{color:var(--color-text-3);cursor:default;background:var(--color-bg)}button.primary,.button.primary{background:var(--color-brand);color:var(--color-surface);border-color:var(--color-brand)}button.primary:hover,.button.primary:hover{background:var(--color-brand-hover)}button.danger{color:var(--color-danger-on-soft);border-color:var(--color-danger)}button.danger:hover{background:var(--color-danger-soft)}button:disabled{opacity:.65}svg{stroke-width:2px;flex:none;width:20px;height:20px}:focus-visible{outline:2px solid var(--color-brand);outline-offset:3px}input,textarea,select{width:100%;font:inherit;color:var(--color-ink);min-height:var(--size-target);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);background:var(--color-surface)}textarea{resize:vertical}input[type=checkbox]{width:24px;height:24px;min-height:24px;accent-color:var(--color-brand)}input[readonly]{background:var(--color-bg);cursor:default}small,.muted{color:var(--color-text-2)}small{font-size:var(--text-small)}.mono{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-family:ui-monospace,monospace}.field{gap:var(--space-1);min-width:0;display:grid}.field label{font-size:var(--text-small);color:var(--color-text-2)}.check{align-items:center;gap:var(--space-2);min-height:var(--size-target);cursor:pointer;display:flex}.actions{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.stack{gap:var(--space-4);display:grid}.form-grid{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.notice{gap:var(--space-3);border-radius:var(--radius-sm);padding:var(--space-4);overflow-wrap:anywhere;align-items:flex-start;display:flex}.notice svg{margin-top:var(--space-1)}.notice.error{background:var(--color-danger-soft);color:var(--color-danger-on-soft)}.notice.success{background:var(--color-success-soft);color:var(--color-success-on-soft)}.notice.error a{color:inherit;font-weight:600}.login-page{min-height:100dvh;padding:var(--space-6);place-items:center;display:grid}.login-card{width:min(100%,var(--size-login));border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-8);background:var(--color-surface);box-shadow:var(--shadow-card);gap:var(--space-6);display:grid}.brand{gap:var(--space-3);align-items:center;font-weight:700;display:flex}.brand img{width:40px;height:40px}.brand small{font-weight:400;display:block}.login-card .button{width:100%}.sidebar{width:var(--size-nav);background:var(--color-surface);border-right:1px solid var(--color-border);padding:var(--space-6) var(--space-4);gap:var(--space-8);z-index:2;flex-direction:column;display:flex;position:fixed;inset:0 auto 0 0}.sidebar nav a{gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-sm);min-height:var(--size-target);align-items:center;text-decoration:none;display:flex}.sidebar nav a[aria-current=page]{background:var(--color-brand-soft);color:var(--color-brand-on-soft);border-left:4px solid var(--color-brand);font-weight:700}.sidebar footer{gap:var(--space-3);margin-top:auto;display:grid}.sidebar footer p{overflow-wrap:anywhere}.shell{margin-left:var(--size-nav)}.topbar{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-8);border-bottom:1px solid var(--color-border);background:var(--color-surface);min-height:72px;display:flex}.mobile-menu,.close-nav{display:none}main{max-width:var(--size-content);padding:var(--space-8);min-width:0;margin:auto}.page-title{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-6);display:flex}.page-title p{color:var(--color-text-2);margin-top:var(--space-2)}.page-title>div{min-width:0}.breadcrumb{gap:var(--space-2);margin-bottom:var(--space-4);font-size:var(--text-small);flex-wrap:wrap;display:flex}.breadcrumb>*{overflow-wrap:anywhere;min-width:0}.panel{padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);background:var(--color-surface);margin-bottom:var(--space-6);min-width:0}.section-heading{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.entity-list{margin:0;padding:0;list-style:none}.entity-list li{border-top:1px solid var(--color-border);padding:var(--space-4) 0;gap:var(--space-4);justify-content:space-between;align-items:center;min-width:0;display:flex}.entity-list li:first-child{border-top:0}.entity-list li>div{min-width:0}.entity-list a{overflow-wrap:anywhere;font-weight:600}.entity-list p{color:var(--color-text-2);overflow-wrap:anywhere}.empty{padding:var(--space-6) 0;color:var(--color-text-2)}.facts{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.facts dt{font-size:var(--text-small);color:var(--color-text-2)}.facts dd{margin:var(--space-1) 0 0;overflow-wrap:anywhere}.badge{padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:var(--color-hover);color:var(--color-text-2);font-size:var(--text-small);white-space:nowrap;align-items:center;display:inline-flex}.badge.brand{background:var(--color-brand-soft);color:var(--color-brand-on-soft);font-weight:400}.badge.success{background:var(--color-success-soft);color:var(--color-success-on-soft)}.badge.danger{background:var(--color-danger-soft);color:var(--color-danger-on-soft)}.tabs{gap:var(--space-2);margin-bottom:var(--space-6);border-bottom:1px solid var(--color-border);flex-wrap:wrap;display:flex}.tabs a{min-height:var(--size-target);padding:var(--space-2) var(--space-4);color:var(--color-text-2);border-bottom:3px solid #0000;text-decoration:none}.tabs a[aria-current=page]{border-bottom-color:var(--color-brand);color:var(--color-brand);font-weight:700}.pagination{justify-content:flex-end;align-items:center;gap:var(--space-4);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.confirmation{display:inline-block}.confirm{gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);margin-top:var(--space-2);text-align:left;display:grid}.confirm .actions{justify-content:flex-end}.dialog-open{overflow:hidden}dialog{width:min(calc(100% - 48px),var(--size-dialog));border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);max-height:calc(100dvh - 48px);color:var(--color-ink);box-shadow:var(--shadow-card);padding:0;overflow:auto}dialog::backdrop{background:var(--color-veil)}.dialog-heading{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-6);border-bottom:1px solid var(--color-border);display:flex}.form-content{padding:var(--space-6);gap:var(--space-4);display:grid}.form-fields{gap:var(--space-4);border:0;min-width:0;margin:0;padding:0;display:grid}.dialog-actions{padding:var(--space-4) var(--space-6);justify-content:flex-end;gap:var(--space-2);border-top:1px solid var(--color-border);display:flex}dialog .confirm{margin:0 var(--space-6) var(--space-6)}.loading{gap:var(--space-4);color:var(--color-text-2);display:grid}.loading span{border-radius:var(--radius-sm);background:var(--color-border);height:48px;display:block}.table-scroll{background:linear-gradient(to right,var(--color-surface) 30%,transparent),linear-gradient(to left,var(--color-surface) 30%,transparent),linear-gradient(to right,var(--color-border),transparent),linear-gradient(to left,var(--color-border),transparent);background-position:0,100%,0,100%;background-repeat:no-repeat;background-size:40px 100%,40px 100%,8px 100%,8px 100%;background-attachment:local,local,scroll,scroll;overflow-x:auto}table{border-collapse:collapse;text-align:left;width:100%}th,td{padding:var(--space-3);border-bottom:1px solid var(--color-border);min-height:var(--size-target);vertical-align:top}th{font-size:var(--text-small);color:var(--color-text-2);background:var(--color-bg)}td{overflow-wrap:anywhere}.key-row{gap:var(--space-2);grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end;display:grid}.skip-link{top:var(--space-2);left:var(--space-2);z-index:20;background:var(--color-surface);padding:var(--space-3);position:fixed;transform:translateY(-150%)}.skip-link:focus{transform:none}@media (width<=1023px){.sidebar{width:min(var(--size-nav),90vw);box-shadow:var(--shadow-card);display:none}.sidebar.visible{display:flex}.shell{margin-left:0}.mobile-menu,.close-nav{display:inline-flex}.nav-veil{z-index:1;background:var(--color-veil);position:fixed;inset:0}}@media (width<=767px){main{padding:var(--space-4)}.topbar{padding:var(--space-3) var(--space-4)}.panel,.login-card{padding:var(--space-4)}.page-title{flex-direction:column}.form-grid,.facts{grid-template-columns:1fr}.entity-list li{flex-wrap:wrap;align-items:flex-start}.login-page{padding-top:var(--space-12);place-items:start center}dialog{border-radius:0;width:100%;max-width:100%;height:100dvh;max-height:100dvh;margin:0}.dialog-heading,.form-content{padding:var(--space-4)}.key-row{grid-template-columns:minmax(0,1fr) auto}.key-row .field:first-child{grid-column:1/-1}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
