:root{--bg: #0e1116;--surface: #161b23;--surface-2: #1c222c;--border: #2a3240;--text: #edf2f7;--muted: #9aa7b8;--primary: #3b82f6;--primary-strong: #2563eb;--green: #22c55e;--red: #ef4444;--amber: #f59e0b;--shadow: 0 12px 28px rgba(0, 0, 0, .24)}[data-theme=light]{--bg: #f4f6f9;--surface: #ffffff;--surface-2: #eef2f6;--border: #d7dee8;--text: #18202b;--muted: #667488;--shadow: 0 12px 28px rgba(23, 40, 66, .08)}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.app-frame{min-height:100dvh;max-width:760px;margin:0 auto;padding-bottom:calc(76px + env(safe-area-inset-bottom))}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;height:54px;padding:0 16px;background:color-mix(in srgb,var(--bg) 88%,transparent);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.brand{display:flex;align-items:center;gap:10px;min-width:0}.brand strong{font-size:15px;letter-spacing:0;white-space:nowrap}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex:0 0 32px;border-radius:8px;color:#fff;background:linear-gradient(135deg,#2563eb,#22c55e)}.content{padding:16px}.page{display:flex;flex-direction:column;gap:14px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:36px}.section-heading h1{margin:0;font-size:24px;line-height:1.2;letter-spacing:0}.section-kicker{padding:4px 10px;border-radius:8px;color:var(--muted);background:var(--surface);border:1px solid var(--border);font-size:13px;white-space:nowrap}.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:2px 8px;min-height:84px;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:8px}.stat svg{grid-row:1 / span 2;color:var(--muted)}.stat strong{font-size:24px;line-height:1}.stat span{color:var(--muted);font-size:12px}.stat-green svg{color:var(--green)}.stat-blue svg{color:var(--primary)}.stat-red svg{color:var(--red)}.stat-muted svg{color:var(--muted)}.action-row{display:flex;flex-wrap:wrap;gap:10px}.primary,.secondary,.text-button,.back-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 14px;border-radius:8px;border:1px solid transparent;font-weight:600}.primary{color:#fff;background:var(--primary)}.primary:active{background:var(--primary-strong)}.secondary{color:var(--text);background:var(--surface);border-color:var(--border)}.text-button,.back-button{color:var(--text);background:transparent;border-color:var(--border)}.back-button{align-self:flex-start;min-height:36px;padding:0 10px}.toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,.45fr);gap:8px}.search-box{display:flex;align-items:center;gap:8px;min-height:42px;padding:0 12px;color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:8px}.search-box input,.input,.field input,.field textarea,.field select{width:100%;min-height:42px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;outline:none}.search-box input{min-height:40px;padding:0;background:transparent;border:0}.input{padding:0 12px}.segmented{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}.segmented button{flex:0 0 auto;min-height:36px;padding:0 12px;color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:8px;white-space:nowrap}.segmented button.active{color:#fff;background:var(--primary);border-color:var(--primary)}.list{display:flex;flex-direction:column;gap:10px}.row-card{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px;padding:12px;color:inherit;text-decoration:none;background:var(--surface);border:1px solid var(--border);border-radius:8px}.row-main{display:flex;flex-direction:column;gap:3px;min-width:0}.row-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-main span{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-chip{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;min-height:26px;padding:0 8px;border-radius:8px;font-size:11px;font-weight:700;color:var(--muted);background:var(--surface-2);border:1px solid var(--border);white-space:nowrap}.status-active{color:var(--green);border-color:color-mix(in srgb,var(--green) 35%,transparent)}.status-locked{color:var(--muted)}.status-skip_month{color:var(--amber)}.status-needs_review,.status-review,.status-failed{color:var(--red);border-color:color-mix(in srgb,var(--red) 35%,transparent)}.status-pending,.status-approved{color:var(--primary)}.status-applied,.status-success{color:var(--green)}.form{display:flex;flex-direction:column;gap:12px}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>span{color:var(--muted);font-size:12px}.field input,.field select{padding:0 12px}.field textarea{min-height:88px;padding:10px 12px;resize:vertical}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.toggle-row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.switch-row{display:inline-flex;align-items:center;gap:8px;min-height:42px;color:var(--text);cursor:pointer}.switch-row input{width:18px;height:18px;accent-color:var(--primary)}.select-field{flex:1}.generation-card,.history-card{display:flex;flex-direction:column;gap:10px;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:8px}.generation-top,.history-line{display:flex;align-items:center;justify-content:space-between;gap:10px}.generation-block{display:flex;flex-direction:column;gap:4px;padding:10px;background:var(--surface-2);border-radius:8px}.generation-block span,.history-values span{color:var(--muted);font-size:12px}.generation-block p,.error-text{margin:0;color:var(--muted);font-size:13px;line-height:1.5;word-break:break-word}.history-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.history-values>div{display:flex;flex-direction:column;gap:4px;min-width:0}.history-values strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.error-text{color:var(--red)}.setting-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:12px}.setting-meta span{display:inline-flex;align-items:center;gap:5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.state-panel{display:flex;align-items:center;justify-content:center;gap:10px;min-height:120px;padding:18px;color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:8px}.state-error{color:var(--red);flex-direction:column}.toast{position:fixed;left:50%;bottom:calc(88px + env(safe-area-inset-bottom));z-index:30;max-width:min(88vw,420px);padding:10px 14px;color:#fff;background:#111827;border:1px solid #2a3240;border-radius:8px;box-shadow:var(--shadow);transform:translate(-50%);animation:toast-in .18s ease-out;word-break:break-word}.bottom-nav{position:fixed;left:50%;bottom:0;z-index:20;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));width:min(100%,760px);min-height:calc(68px + env(safe-area-inset-bottom));padding:6px 6px env(safe-area-inset-bottom);background:color-mix(in srgb,var(--surface) 94%,transparent);border-top:1px solid var(--border);transform:translate(-50%);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.bottom-nav a{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;color:var(--muted);text-decoration:none;font-size:11px}.bottom-nav a.active{color:var(--primary)}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@media(min-width:720px){.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.toolbar{grid-template-columns:minmax(0,1fr) 180px}}
