/* The hidden attribute must win over component display rules (buttons, forms, banners). */
[hidden]{display:none!important}
/* Account settings and platform administration. Extends projects.css. */
.settings-grid{display:grid;gap:14px;max-width:760px}
.settings-card{border:1px solid var(--line);border-radius:15px;background:linear-gradient(160deg,#12171e,#0e1217);padding:20px 22px}
.settings-card h2{margin:0 0 4px;font-size:15px;letter-spacing:0}.settings-card>p{margin:0 0 14px;color:#8e9aa9;font-size:12px;line-height:1.55}
.settings-card.danger{border-color:#5a2a2a}.settings-card.danger h2{color:#ffb4a8}
.settings-form{display:grid;gap:11px;max-width:420px}.settings-form label{display:grid;gap:6px;font-size:10px;font-weight:800;color:#9aa7b7;text-transform:uppercase;letter-spacing:.06em}
.settings-form input,.settings-form textarea{border:1px solid #2c3440;background:#0d1117;color:#eef2f7;border-radius:9px;padding:10px 12px;outline:none;font:inherit;font-size:13px;text-transform:none;letter-spacing:0;font-weight:400}
.settings-form input:focus,.settings-form textarea:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.14)}
.settings-form .btn{justify-self:start}.btn.danger{border-color:#7a3030;background:#3a1717;color:#ffd4cd}.btn.danger:hover{background:#4a1c1c;border-color:#a04040}.btn:disabled{opacity:.6;cursor:wait}
.settings-note{min-height:16px;font-size:11px;line-height:1.5;color:#ffb4a8}.settings-note.ok{color:#89e5af}.settings-note a{color:#a9caff;text-decoration:underline;word-break:break-all}
.settings-row{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:12px}.settings-row b{font-size:13px}.settings-row span{display:block;color:#8e9aa9;font-size:11px;margin-top:3px}
.pill{display:inline-block;border-radius:999px;padding:4px 9px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;border:1px solid #2c3440;color:#b4becb}
.pill.good{color:#89e5af;border-color:#285c40}.pill.warn{color:#edc26d;border-color:#6b4a1c}.pill.bad{color:#ffb4a8;border-color:#7a3030}
.account-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;border:1px solid #6b4a1c;background:#2a1f0e;color:#fbe6c6;border-radius:13px;padding:13px 16px;margin-bottom:22px;font-size:12px;line-height:1.5}
.account-banner[hidden]{display:none}.account-banner b{display:block;font-size:13px}.account-banner .btn{background:#f2b56b;border-color:#f2b56b;color:#231603}
.project-actions .btn.card-delete{grid-column:1/-1;background:transparent;border-color:transparent;color:#8e9aa9;font-weight:600;justify-content:flex-start;padding:4px 0}.project-actions .btn.card-delete:hover{color:#ffb4a8;background:transparent}
.modal p.modal-warning{color:#8a2318;font-size:12px;line-height:1.5;background:#fdecea;border-radius:9px;padding:10px 12px}
.admin-table-wrap{border:1px solid var(--line);border-radius:13px;overflow:auto;background:#0e1217}
.admin-table{width:100%;border-collapse:collapse;font-size:11px;min-width:720px}.admin-table th{position:sticky;top:0;text-align:left;font-size:9px;text-transform:uppercase;letter-spacing:.07em;color:#758192;background:#111821;padding:10px 12px;border-bottom:1px solid var(--line)}
.admin-table td{padding:10px 12px;border-bottom:1px solid #1c2530;vertical-align:middle;color:#dce3ec}.admin-table tr:last-child td{border-bottom:0}.admin-table td small{display:block;color:#788494;font-size:10px;margin-top:2px}
.admin-table .btn{padding:6px 9px;font-size:10px}.admin-table input{width:64px;border:1px solid #2c3440;background:#0d1117;color:#eef2f7;border-radius:7px;padding:6px 8px;font:inherit;font-size:11px}
.admin-filter{border:1px solid #2c3440;background:#0d1117;color:#eef2f7;border-radius:9px;padding:9px 12px;font:inherit;font-size:12px;width:min(320px,100%);outline:none}
.admin-request{border:1px solid var(--line);border-radius:11px;padding:12px 14px;background:#0e1217;font-size:11px;line-height:1.55;color:#c7d5de;margin-bottom:8px;white-space:pre-wrap}.admin-request b{color:#fff}
@media(max-width:640px){.settings-card{padding:16px}}
/* Admin: storage and data served per business */
.admin-summary{grid-template-columns:repeat(6,minmax(0,1fr))}
.admin-summary .summary-card strong{font-size:22px;overflow-wrap:anywhere}
.admin-tools{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.admin-tools select.admin-filter{width:auto}
.admin-meter{height:7px;width:120px;max-width:100%;border-radius:999px;background:#0d1117;border:1px solid #2c3440;overflow:hidden}
.admin-meter i{display:block;height:100%;border-radius:999px;background:#6f7cff}
.admin-meter.warning i{background:#edc26d}.admin-meter.full i{background:#ff7b7b}
@media(max-width:1100px){.admin-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.admin-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Admin: the safety net. Plain sentences with a coloured mark, rather than labels to decode. */
.safety .section-head{margin-top:26px}
.safety-line{display:grid;grid-template-columns:10px 1fr;gap:10px;align-items:start;margin:0 0 9px;font-size:12px;line-height:1.6;color:#c7d5de;max-width:86ch}
.safety-line i{width:8px;height:8px;border-radius:50%;margin-top:6px;background:#5b6878}
.safety-line.good i{background:#63d89a}.safety-line.warn i{background:#edc26d}.safety-line.bad i{background:#ff7b7b}
.safety-line code,.safety-message code{font:500 11px/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#a9caff;background:#0d1117;border:1px solid #232d3a;border-radius:5px;padding:1px 5px;white-space:nowrap}
.safety-alert{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border:1px solid #7a3030;border-left-width:4px;border-radius:11px;background:#1a1012;padding:13px 16px;margin-bottom:9px}
.safety-alert.warning{border-color:#6b4a1c;background:#1a150c}
.safety-alert h3{margin:0 0 4px;font-size:13px;letter-spacing:0;color:#fff}
.safety-alert p{margin:0 0 6px;font-size:12px;line-height:1.55;color:#dce3ec;max-width:80ch;overflow-wrap:anywhere}
.safety-alert small{display:block;font-size:11px;color:#8e9aa9}
.safety-alert .btn{flex:none;white-space:nowrap}
.safety-alert.done{border-color:#2a3646;background:#0e1217;opacity:.9}.safety-alert.done h3{color:#c7d5de}
.safety-past{margin:6px 0 0}.safety-past summary{cursor:pointer;font-size:12px;color:#94a3b8;padding:6px 0}.safety-past summary:focus-visible{outline:2px solid #2563eb;outline-offset:3px;border-radius:4px}
.safety-past[open] summary{margin-bottom:8px}
.safety #backupLead{margin-bottom:12px}.safety #backupFailures{margin-top:12px}
.safety-table{min-width:640px}
.safety-message{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) 210px;gap:14px;align-items:center;border:1px solid var(--line);border-radius:11px;background:#0e1217;padding:11px 14px;margin-bottom:8px;font-size:12px}
.safety-message b{color:#fff;font-weight:600}.safety-message span{color:#aab6c4;overflow-wrap:anywhere}.safety-message code{justify-self:end}
/* On a phone each backup is a short block of lines rather than a table to scroll sideways. */
@media(max-width:720px){.safety-alert{flex-direction:column}.safety-message{grid-template-columns:1fr;gap:5px}.safety-message code{justify-self:start}
  .safety-table{min-width:0;display:block}.safety-table thead{display:none}.safety-table tbody{display:block}.safety-table tr{display:block;padding:11px 13px;border-bottom:1px solid #1c2530}.safety-table tr:last-child{border-bottom:0}
  .safety-table td{display:block;padding:2px 0;border:0}.safety-table td small{display:inline;margin:0 0 0 6px}.safety-table td[data-label]::before{content:attr(data-label) ": ";color:#788494}.safety-table td:first-child small{display:block;margin:2px 0 4px}}

/* Admin: the launch checklist. One row per thing that must be true before taking real money. */
.launch .section-head{margin-top:26px}
.launch-lead{margin:0 0 14px;font-size:12px;line-height:1.6;color:#9fb0c0;max-width:80ch}
.launch-item{display:grid;grid-template-columns:22px 1fr;gap:12px;align-items:start;padding:13px 16px;margin-bottom:8px;border:1px solid #2a3646;border-radius:11px;background:#0e1217}
.launch-item.todo{border-color:#4a3a1c;background:#13110c}
.launch-mark{width:20px;height:20px;margin-top:1px;border-radius:50%;border:2px solid #6b4a1c;display:grid;place-items:center;font-size:12px;font-weight:800;line-height:1;color:#06140c}
.launch-item.done .launch-mark{border-color:#63d89a;background:#63d89a}
.launch-item h3{display:inline;margin:0;font-size:13px;letter-spacing:0;color:#fff}
.launch-state{display:inline-block;margin-left:8px;font-size:11px;font-weight:700;color:#63d89a}
.launch-item.todo .launch-state{color:#edc26d}
.launch-item p{margin:5px 0 0;font-size:12px;line-height:1.55;color:#c7d5de;max-width:86ch;overflow-wrap:anywhere}
.launch-item ul{margin:6px 0 0;padding-left:18px;font-size:12px;line-height:1.55;color:#c7d5de;overflow-wrap:anywhere}
.launch-item .launch-todo{color:#e9dcc0}
.launch-item .launch-todo b{display:block;font-size:11px;color:#edc26d;margin-bottom:1px}
@media(max-width:640px){.launch-item{padding:12px 13px;gap:10px}.launch-state{display:block;margin:3px 0 0}}
