:root{--color-bg:#f5f7fa;--color-surface:#fff;--color-border:#d9dee5;--color-text:#1a2330;--color-muted:#6b7684;--color-primary:#2563eb;--color-primary-contrast:#fff;--color-danger:#dc2626;--color-warning-bg:#fff4e5;--color-warning-border:#f5a524;--color-overdue-bg:#fdecec;--color-overdue-border:#dc2626;--radius:8px;--gap:12px}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.5}#root{min-height:100vh}.app-shell{max-width:640px;margin:0 auto;padding-bottom:24px}.app-nav{background:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:1;gap:8px;padding:8px 12px;display:flex;position:sticky;top:0;overflow-x:auto}.app-nav a,.app-nav button{white-space:nowrap}.app-main{padding:var(--gap)}h1{font-size:1.25rem}h2{font-size:1.05rem}button,a.link-button{font:inherit;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;padding:8px 14px;text-decoration:none;display:inline-block}button.primary,a.link-button.primary{background:var(--color-primary);color:var(--color-primary-contrast);border-color:var(--color-primary)}button.danger,a.link-button.danger{color:var(--color-danger);border-color:var(--color-danger)}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{font:inherit;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);width:100%;color:var(--color-text);padding:8px 10px}label{color:var(--color-muted);margin-bottom:10px;font-size:.9rem;display:block}label>input,label>select,label>textarea{color:var(--color-text);margin-top:4px}.field-error{color:var(--color-danger);margin:2px 0 0;font-size:.85rem}.card-surface{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--gap);margin-bottom:var(--gap)}.list{margin:0;padding:0;list-style:none}.list-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:inherit;margin-bottom:8px;padding:10px 12px;text-decoration:none;display:block}.list-item:hover{border-color:var(--color-primary)}.badge{border:1px solid var(--color-border);border-radius:999px;margin-right:6px;padding:2px 8px;font-size:.75rem;display:inline-block}.badge-renewal{color:#1e4fd6;background:#e8f0fe;border-color:#2563eb}.badge-trial{color:#157f39;background:#eafbea;border-color:#16a34a}.badge-annualFee{color:#7e22ce;background:#f3e8fd;border-color:#9333ea}.badge-overdue{background:var(--color-overdue-bg);border-color:var(--color-overdue-border);color:var(--color-danger)}.due-entry{border-radius:var(--radius);border:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;padding:8px 10px;display:flex}.due-entry.emphasis{border-color:var(--color-warning-border);background:var(--color-warning-bg)}.tabs{margin-bottom:var(--gap);gap:8px;display:flex}.tabs button[aria-selected=true]{background:var(--color-primary);color:var(--color-primary-contrast);border-color:var(--color-primary)}.emergency-phone{color:var(--color-primary);font-size:1.1rem;font-weight:600}.muted{color:var(--color-muted)}.warning-banner{background:var(--color-warning-bg);border:1px solid var(--color-warning-border);border-radius:var(--radius);margin-bottom:var(--gap);padding:10px 12px}.placeholder-banner{background:var(--color-bg);border:1px dashed var(--color-border);border-radius:var(--radius);margin-bottom:var(--gap);color:var(--color-muted);padding:10px 12px;font-size:.9rem}.actions-row{margin-top:var(--gap);flex-wrap:wrap;gap:8px;display:flex}@media (width>=640px){.app-main{padding:20px}}
