:root{--color-bg:#eef1f6;--color-surface:#fff;--color-surface-sunken:#f7f9fc;--color-border:#dde3ec;--color-border-strong:#c3ccdb;--color-text:#16202f;--color-muted:#5a6478;--color-accent:#2a5ea8;--color-accent-hover:#24518f;--color-accent-soft:#e8eef8;--color-danger:#a52820;--color-danger-bg:#fdeceb;--color-success:#1d6b45;--radius:6px;--radius-lg:10px;--space:1rem;--shadow-sm:0 1px 2px #16202f0f;--shadow-md:0 1px 2px #16202f0d, 0 4px 12px #16202f12;--shadow-lg:0 8px 32px #16202f1f;--ease:cubic-bezier(.2, 0, .2, 1);--dur:.16s}*{box-sizing:border-box}body{color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-family:Segoe UI,Noto Sans,system-ui,sans-serif;font-size:1rem;line-height:1.5}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius)}.app__header{z-index:10;justify-content:space-between;align-items:center;gap:var(--space);background:var(--color-surface);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm);flex-wrap:wrap;padding:.75rem 1.5rem;display:flex;position:sticky;top:0}.app__title{letter-spacing:-.015em;margin:0;font-size:1.1875rem;font-weight:600}.app__header-actions{align-items:center;gap:.5rem;display:flex}.app__greeting{color:var(--color-muted);font-size:.9375rem}.app__body{align-items:flex-start;gap:1.5rem;max-width:90rem;margin:0 auto;padding:1.5rem;display:flex}.app__nav{flex-direction:column;flex-shrink:0;gap:.125rem;min-width:13rem;display:flex;position:sticky;top:5rem}.app__main{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);min-width:0;box-shadow:var(--shadow-md);flex:1;padding:1.5rem 1.5rem 2rem}.app__main h1{letter-spacing:-.02em;text-wrap:balance;margin-top:0;margin-bottom:1.25rem;font-size:1.5rem;font-weight:600}.nav-link{border-radius:var(--radius);color:var(--color-muted);transition:background var(--dur) var(--ease), color var(--dur) var(--ease);padding:.5rem .75rem;font-weight:500;text-decoration:none;position:relative}.nav-link:hover{background:var(--color-surface);color:var(--color-text)}.nav-link--active,.nav-link--active:hover{background:var(--color-accent-soft);color:var(--color-accent);font-weight:600}.nav-link--active:before{content:"";background:var(--color-accent);border-radius:999px;width:3px;position:absolute;inset-block:.375rem;inset-inline-start:0}.login{background:var(--color-bg);justify-content:center;align-items:center;min-height:100dvh;padding:1.5rem;display:flex}.login__card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:min(24rem,100%);box-shadow:var(--shadow-md);padding:2rem}.login__card h1{letter-spacing:-.02em;margin-top:0;margin-bottom:1.25rem;font-size:1.5rem;font-weight:600}.login__card .field{margin-bottom:1rem}.login__card .field span{color:var(--color-muted);font-size:.875rem;font-weight:500}.login__card button[type=submit]{background:var(--color-accent);border-color:var(--color-accent);color:#fff;width:100%;margin-top:.5rem;padding:.5625rem .875rem}.login__card button[type=submit]:hover:not(:disabled){background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.login__card .feedback{margin-top:1rem}.data-table{border-collapse:collapse;white-space:nowrap;background:linear-gradient(to right, var(--color-surface) 30%, #fff0) left center / 2.5rem 100% no-repeat local, linear-gradient(to left, var(--color-surface) 30%, #fff0) right center / 2.5rem 100% no-repeat local, radial-gradient(farthest-side at 0 50%, #16202f1f, #16202f00) left center / .75rem 100% no-repeat scroll, radial-gradient(farthest-side at 100% 50%, #16202f1f, #16202f00) right center / .75rem 100% no-repeat scroll;width:100%;display:block;overflow-x:auto}.data-table th,.data-table td{text-align:start;border-bottom:1px solid var(--color-border);vertical-align:middle;padding:.625rem .875rem}.data-table th{letter-spacing:.03em;text-transform:uppercase;color:var(--color-muted);background:var(--color-surface-sunken);border-bottom:1px solid var(--color-border-strong);white-space:nowrap;font-size:.8125rem;font-weight:600}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr{transition:background var(--dur) var(--ease)}.data-table tbody tr:hover{background:var(--color-surface-sunken)}.data-table td:first-child{white-space:normal;min-width:14rem;font-weight:500}.mono{font-variant-numeric:tabular-nums;color:var(--color-muted);font-family:Cascadia Mono,Consolas,monospace;font-size:.8125rem}.num{text-align:end;font-variant-numeric:tabular-nums}.muted{color:var(--color-muted)}.actions{gap:.375rem;display:flex}.toolbar{align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.toolbar--wrap{flex-wrap:wrap}.search-field input{min-width:22rem}.field{flex-direction:column;gap:.3125rem;margin-bottom:.875rem;display:flex}.field>span{color:var(--color-muted);font-size:.875rem;font-weight:500}.field--inline{flex-direction:row;align-items:center;gap:.5rem;margin-bottom:0}.field-readonly{align-items:baseline;gap:.5rem;display:flex}.field-group{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface-sunken);margin-bottom:.875rem}.field-group>summary{color:var(--color-muted);cursor:pointer;-webkit-user-select:none;user-select:none;padding:.5rem .75rem;font-size:.875rem;font-weight:500}.field-group>summary:hover{color:var(--color-text)}.field-group>:not(summary){margin-inline:.75rem}.field-group>:last-child{margin-bottom:.75rem}.field>small.hint{margin:0;font-size:.8125rem}input,select,textarea{font:inherit;color:inherit;border:1px solid var(--color-border-strong);border-radius:var(--radius);background:var(--color-surface);transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);padding:.4375rem .625rem}input:hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:var(--color-muted)}input:focus,select:focus,textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft);outline:none}input::placeholder,textarea::placeholder{color:var(--color-muted);opacity:.75}button{font:inherit;color:inherit;cursor:pointer;background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:background var(--dur) var(--ease), border-color var(--dur) var(--ease), transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);padding:.4375rem .875rem;font-weight:500}button:hover:not(:disabled){background:var(--color-surface-sunken);border-color:var(--color-muted)}button:active:not(:disabled){box-shadow:none;transform:translateY(1px)}button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.button--primary{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.button--primary:hover:not(:disabled){background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.button--danger{color:var(--color-danger);border-color:color-mix(in srgb, var(--color-danger) 35%, var(--color-border-strong))}.button--danger:hover:not(:disabled){background:var(--color-danger-bg);border-color:var(--color-danger)}.link-button{box-shadow:none;color:var(--color-accent);text-underline-offset:.15em;background:0 0;border:none;padding:0;text-decoration:underline}.link-button:hover:not(:disabled){color:var(--color-accent-hover);background:0 0}.link-button:active:not(:disabled){transform:none}.token-field input{min-width:16rem}.hint{color:var(--color-muted);margin:.25rem 0;font-size:.875rem}.tag-filter{flex-wrap:wrap;align-items:center;gap:.375rem;margin-bottom:.75rem;display:flex}.tag-filter__label{color:var(--color-muted);font-size:.875rem}.chip{border:1px solid var(--color-border-strong);background:var(--color-surface);box-shadow:none;transition:background var(--dur) var(--ease), border-color var(--dur) var(--ease);border-radius:999px;padding:.1875rem .625rem;font-size:.875rem}.chip:hover:not(:disabled){background:var(--color-surface-sunken);border-color:var(--color-muted)}.chip--active,.chip--active:hover{background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-accent);font-weight:600}.chip--static{margin-inline-end:.25rem}.chip__count{color:inherit;opacity:.7}.badge{border-radius:var(--radius);background:var(--color-bg);color:var(--color-muted);margin-inline-start:.375rem;padding:0 .375rem;font-size:.75rem}.matrix-cell{align-items:center;display:inline-flex}.group-list{border:1px solid var(--color-border);border-radius:var(--radius);margin:0;padding:0;list-style:none;overflow:hidden}.group-list li{border-bottom:1px solid var(--color-border);align-items:center;gap:.5rem;padding:.5rem .75rem;display:flex}.group-list li:last-child{border-bottom:none}.group-list li:nth-child(odd){background:var(--color-surface-sunken)}.language-switch{align-items:center;display:inline-flex}.tabs{border-bottom:1px solid var(--color-border);gap:.25rem;margin-bottom:.75rem;display:flex}.tab{box-shadow:none;color:var(--color-muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;margin-bottom:-1px}.tab:hover:not(:disabled){color:var(--color-text);border-bottom-color:var(--color-border-strong);background:0 0}.tab:active:not(:disabled){transform:none}.tab--active,.tab--active:hover{border-bottom-color:var(--color-accent);color:var(--color-accent);font-weight:600}.pagination{align-items:center;gap:.75rem;margin-top:.75rem;display:flex}.feedback{border-radius:var(--radius);border-inline-start:3px solid var(--color-border-strong);background:var(--color-surface-sunken);padding:.625rem .875rem}.feedback--error{background:var(--color-danger-bg);border-inline-start-color:var(--color-danger);color:var(--color-danger)}.feedback--success{background:color-mix(in srgb, var(--color-success) 8%, #fff);border-inline-start-color:var(--color-success);color:var(--color-success)}.dialog{border:1px solid var(--color-border);border-radius:var(--radius-lg);width:min(34rem,92vw);box-shadow:var(--shadow-lg);padding:1.25rem}.dialog--wide{width:min(64rem,96vw)}.dialog[open]{animation:dialog-in .18s var(--ease)}@keyframes dialog-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}.dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#10182673}.dialog h2{letter-spacing:-.015em;margin-top:0;font-size:1.1875rem;font-weight:600}.dialog--export{gap:0 var(--space);grid-template-columns:repeat(auto-fit,minmax(min(20rem,100%),1fr));align-items:start;display:grid}.dialog--export>h2,.dialog--export>.notice,.dialog--export>.dialog__footer,.dialog--export>.feedback{grid-column:1/-1}.notice{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);margin:.5rem 0;padding:.625rem .75rem}.notice p{margin:0 0 .25rem}.warning-list{margin:.25rem 0 0;padding-left:1.25rem;font-size:.875rem}.warning-list li{margin-bottom:.125rem}.dialog--export fieldset{border:0;min-width:0;padding:0}.dialog--export legend{margin-bottom:.25rem;padding:0}.dialog__header{justify-content:space-between;align-items:center;gap:var(--space);display:flex}.dialog__footer{margin-top:var(--space);justify-content:flex-end;gap:.5rem;display:flex}.preview-frame{border:1px solid var(--color-border);border-radius:var(--radius);width:100%;height:min(70vh,40rem)}.switch{align-items:center;gap:.375rem;display:inline-flex}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
