:root{--color-brand: #fa440f;--color-brand-strong: #c73206;--color-brand-soft: #fff0ea;--color-brand-border: #fcc2ad;--color-text: #1a1a1a;--color-muted: #6b7280;--color-border: #d9dde3;--color-ok: #15803d;--color-error: #b91c1c;--color-error-soft: #fdecec;--color-surface: #ffffff;--color-bg: #f5f6f8;--radius: 10px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;color:var(--color-text);background:var(--color-bg)}*{box-sizing:border-box}body{margin:0;min-height:100dvh}h1{color:var(--color-brand-strong);font-size:1.5rem;margin:0 0 .25rem}h2{font-size:1.2rem;margin:0}h3{font-size:1rem;margin:0}.muted{color:var(--color-muted)}.ok{color:var(--color-ok);font-weight:600}.error{color:var(--color-error);font-weight:600}.notice{background:#fff7e0;border:1px solid #f3d27a;border-radius:var(--radius);padding:.6rem .8rem;margin:0}.notice.info{background:var(--color-brand-soft);border-color:var(--color-brand-border)}a{color:var(--color-brand-strong)}button{font:inherit;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:8px;padding:.5rem 1rem;cursor:pointer}button:hover:not(:disabled){border-color:var(--color-brand)}button:disabled{opacity:.6;cursor:default}button.primary{background:var(--color-brand);border-color:var(--color-brand);color:#fff;font-weight:600}button.primary:hover:not(:disabled){background:var(--color-brand-strong);border-color:var(--color-brand-strong)}button.link{border:0;background:none;color:var(--color-brand-strong);padding:.25rem;text-decoration:underline}button.wide{width:100%}input,select,textarea{font:inherit;border:1px solid var(--color-border);border-radius:6px;padding:.45rem .55rem;background:var(--color-surface);width:100%}input:focus,select:focus{outline:2px solid var(--color-brand);outline-offset:-1px}input[aria-invalid=true],.has-error input,.has-error select{border-color:var(--color-error);background:var(--color-error-soft)}.field{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;color:var(--color-muted)}.field input,.field select,.field textarea{color:var(--color-text);font-size:.95rem}.field-error{color:var(--color-error);font-size:.8rem;margin:.2rem 0 0}.checkbox{display:flex;align-items:center;gap:.5rem}.checkbox input{width:auto}fieldset{border:1px solid var(--color-border);border-radius:var(--radius);padding:.75rem;margin:0}legend{font-size:.85rem;color:var(--color-muted);padding:0 .25rem}.centered{max-width:420px;margin:0 auto;padding:4rem 1.25rem;text-align:center}.card{background:var(--color-surface);border-radius:var(--radius);padding:1.25rem;box-shadow:0 1px 3px #00000014}.card.flush{padding:0}.sign-in{display:flex;flex-direction:column;gap:1rem;text-align:left}.stack{display:flex;flex-direction:column;gap:.9rem}.layout{min-height:100dvh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:1.5rem;padding:.5rem 1.25rem;background:var(--color-surface);border-bottom:3px solid var(--color-brand);box-shadow:0 1px 3px #0000000f;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:.6rem;color:var(--color-text);text-decoration:none}.brand img{height:36px;width:auto;display:block}.brand span{font-weight:600;font-size:1.05rem;padding-left:.6rem;border-left:1px solid var(--color-border)}.nav{display:flex;gap:.25rem;flex:1}.nav a{color:var(--color-text);text-decoration:none;padding:.4rem .75rem;border-radius:6px}.nav a:hover{background:var(--color-bg)}.nav a.active{background:var(--color-brand-soft);color:var(--color-brand-strong);font-weight:600}.user{display:flex;align-items:center;gap:.75rem}.user span{display:flex;flex-direction:column;line-height:1.2;text-align:right}.user small{color:var(--color-muted)}.sign-in-logo{height:56px;width:auto;align-self:flex-start}.content{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:1.5rem 1.25rem 3rem}.page-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.actions{display:flex;justify-content:flex-end;gap:.5rem}.table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;white-space:nowrap}.data-table th,.data-table td{padding:.55rem .75rem;border-bottom:1px solid var(--color-border);text-align:left}.data-table th{background:#f5f5f5;font-size:.8rem;text-transform:uppercase;letter-spacing:.02em;color:var(--color-muted)}.data-table.compact th,.data-table.compact td{padding:.35rem .5rem;text-align:center}.data-table .numeric{text-align:right;font-variant-numeric:tabular-nums}.toolbar-inline{display:flex;align-items:flex-end;gap:.75rem;flex-wrap:wrap}.toolbar-inline .field{min-width:8rem}.data-table tr.inactive td{color:var(--color-muted)}.dialog{border:0;font-size:1rem;color:var(--color-text);border-radius:var(--radius);padding:1.25rem;width:min(720px,calc(100vw - 2rem));max-height:calc(100dvh - 2rem);box-shadow:0 10px 40px #00000040}.dialog::backdrop{background:#0f172a73}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem}.page-hint{margin:-.5rem 0 0;font-size:.9rem}.plain-list{margin:0;padding-left:1.1rem;display:flex;flex-direction:column;gap:.25rem}.data-table td.details{white-space:normal;font-size:.85rem;min-width:16rem}.data-table td.details span{display:block}.dialog.narrow{width:min(460px,calc(100vw - 2rem))}.dialog p{margin:0}.app-footer{margin-top:auto;padding:.5rem 1.25rem .75rem;display:flex;justify-content:flex-end;align-items:center;gap:1rem;font-size:.75rem}.app-footer>button{color:var(--color-muted);text-decoration:none;font-size:inherit}.app-footer>button:hover{text-decoration:underline}.release-dialog{width:min(560px,calc(100vw - 2rem))}.release-list{max-height:60dvh;overflow-y:auto;gap:1rem}.release-list h3 small{font-weight:400}.separator{display:flex;align-items:center;gap:.6rem;color:var(--color-muted);font-size:.8rem;text-align:center}.separator:before,.separator:after{content:"";flex:1;border-top:1px solid var(--color-border)}.link-row{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.environment-banner{padding:.35rem 1rem;text-align:center;font-size:.85rem;font-weight:700;color:#1f2937;background:repeating-linear-gradient(-45deg,#fde68a,#fde68a 12px,#fcd34d 12px,#fcd34d 24px)}.environment-banner.development{background:#dbeafe}.module-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.module-card{display:flex;flex-direction:column;gap:.4rem;color:inherit;text-decoration:none;border:1px solid var(--color-border)}.module-card:hover{border-color:var(--color-brand)}.module-card h2{color:var(--color-brand-strong)}.module-card p{margin:0}.notice.ok-notice{background:#ecfdf3;border-color:#a7e3bf}.notice.error-notice{background:var(--color-error-soft);border-color:#f5b5b5}.tag{display:inline-block;margin-left:.4rem;padding:0 .4rem;border-radius:999px;background:var(--color-brand-soft);color:var(--color-brand-strong);font-size:.7rem;font-weight:700;vertical-align:middle}.dialog.wide-dialog{width:min(820px,calc(100vw - 2rem))}.module-access{border:1px solid var(--color-border);border-radius:var(--radius);padding:.75rem;display:flex;flex-direction:column;gap:.6rem}.module-access-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.segmented{display:flex;gap:.4rem;flex-wrap:wrap}.segmented label{display:flex;align-items:center;gap:.4rem;border:1px solid var(--color-border);border-radius:8px;padding:.35rem .6rem;font-size:.9rem;cursor:pointer}.segmented label.selected{border-color:var(--color-brand);background:var(--color-brand-soft);font-weight:600}.segmented input{width:auto}.feature-list{list-style:none;margin:0;padding:0 0 0 .25rem;display:flex;flex-direction:column;gap:.4rem}.feature-list .checkbox{align-items:flex-start}.feature-list small{display:block;color:var(--color-muted)}@media(max-width:760px){.nav a{white-space:nowrap}.module-access-header{flex-direction:column;align-items:stretch}}
