:root{--bg: #f5f4f0;--surface: #ffffff;--ink: #1c1b18;--muted: #7a766c;--line: #e4e1d8;--accent: #b5563a;--accent-ink: #ffffff;--radius: 10px;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}.btn{border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:.55rem 1rem;border-radius:var(--radius);font-size:.9rem;cursor:pointer;transition:background .15s,border-color .15s}.btn:hover:not(:disabled){border-color:var(--ink)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-primary:hover:not(:disabled){filter:brightness(.95)}.btn-ghost{background:transparent}.btn-block{width:100%;margin-top:.5rem}.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem;font-size:.85rem;color:var(--muted)}.field input,.search,.select{font:inherit;font-size:.9rem;color:var(--ink);padding:.55rem .7rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.field input:focus,.search:focus,.select:focus{outline:2px solid var(--accent);outline-offset:-1px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.form-error{background:#fbe9e4;border:1px solid #e3b3a6;color:#8a2f17;padding:.6rem .8rem;border-radius:var(--radius);font-size:.85rem;margin-bottom:1rem}.muted{color:var(--muted);font-weight:400}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:1rem}.login-card{width:100%;max-width:360px;padding:2rem}.login-title{margin:0;font-size:1.5rem}.login-sub{margin:.25rem 0 1.5rem;color:var(--muted);font-size:.9rem}.brand-tag{color:var(--accent);font-weight:600}.topbar{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.5rem;background:var(--surface);border-bottom:1px solid var(--line)}.brand{font-weight:700;font-size:1.1rem}.topbar-right{display:flex;align-items:center;gap:1rem}.user{color:var(--muted);font-size:.9rem}.content{max-width:1100px;margin:0 auto;padding:1.5rem}.plans-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.plans-header h2{margin:0}.filters{display:flex;gap:.6rem}.search{width:320px;max-width:60vw}.table-card{overflow:hidden}.table{width:100%;border-collapse:collapse;font-size:.88rem}.table thead th{text-align:left;padding:.7rem .9rem;background:#faf9f6;border-bottom:1px solid var(--line);font-weight:600;color:var(--muted);white-space:nowrap}.table tbody td{padding:.7rem .9rem;border-bottom:1px solid var(--line)}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover{background:#faf9f6}.table[aria-busy=true]{opacity:.6}.num{text-align:right;font-variant-numeric:tabular-nums}.mono{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.82rem}.empty{text-align:center;color:var(--muted);padding:2rem!important}.badge{display:inline-block;padding:.2rem .55rem;border-radius:999px;font-size:.74rem;font-weight:600;border:1px solid transparent}.badge-published{background:#e3f1e6;color:#1f6b34}.badge-not_published{background:#f1efe9;color:#6b6457}.badge-discontinued{background:#fbe9e4;color:#8a2f17}.pagination{display:flex;align-items:center;justify-content:center;gap:1.2rem;margin-top:1.2rem}.cache-panel{margin-bottom:1.5rem}.cache-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;margin-bottom:1rem}.cache-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.6rem;align-items:flex-start}.cache-card-title{margin:0;font-size:1rem}.cache-card-help{margin:0;color:var(--muted);font-size:.85rem;line-height:1.45;flex:1}.cache-card-help strong{color:var(--ink)}.notice-ok{color:#1f6b34;font-size:.85rem}.notice-err{color:#8a2f17;font-size:.85rem}.last-reindex{font-size:.9rem;margin:0 0 1rem}.cache-history{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:.6rem 1rem 1rem}.cache-history>summary{cursor:pointer;font-weight:600;padding:.4rem 0}.history-table{margin-top:.6rem}.badge-run-succeeded{background:#e3f1e6;color:#1f6b34}.badge-run-failed{background:#fbe9e4;color:#8a2f17}.badge-run-queued{background:#eaf0f6;color:#2a5680}
