/* Shared styles of all pages. iPhone first: system font, big touch targets, safe-area insets. */
:root{
  --ink:#1C1917; --ink-soft:#57534E; --bg:#FAF7F5; --surface:#FFFFFF; --border:#E7E0DA;
  --accent:#C2410C; --accent-deep:#9A3412; --accent-soft:#FFF1E8;
  --rec:#DC2626; --ok:#15803D; --ok-soft:#ECFDF3; --warn:#A16207; --warn-soft:#FEF9E7; --danger:#B91C1C;
  --radius:12px; --shadow:0 1px 2px rgba(28,25,23,.06), 0 8px 24px rgba(28,25,23,.05);
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.45 -apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,system-ui,sans-serif;-webkit-font-smoothing:antialiased;}
.wrap{max-width:640px;margin:0 auto;padding:calc(12px + env(safe-area-inset-top)) 16px calc(40px + env(safe-area-inset-bottom));}
a{color:var(--accent-deep);}
.masthead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px;}
.brand{display:flex;align-items:center;gap:8px;font-weight:700;font-size:18px;letter-spacing:-.01em;color:var(--ink);text-decoration:none;}
.brand img{width:28px;height:28px;border-radius:7px;}
.masthead-right{display:flex;align-items:center;gap:8px;}
.nav-link{font-size:14px;color:var(--ink-soft);text-decoration:none;padding:6px 10px;border:1px solid var(--border);border-radius:100px;background:var(--surface);}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 16px;box-shadow:var(--shadow);margin-bottom:14px;}
h1{font-size:22px;margin:0 0 6px;letter-spacing:-.01em;}
h2{font-size:17px;margin:0 0 10px;}
.sub{color:var(--ink-soft);font-size:14px;margin:0 0 14px;}
.hint{font-size:13px;color:var(--ink-soft);margin:6px 0 0;line-height:1.45;}
.btn{font:600 16px/1.2 inherit;font-family:inherit;padding:14px 18px;border-radius:10px;border:none;cursor:pointer;width:100%;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;min-height:48px;-webkit-tap-highlight-color:transparent;}
.btn:disabled{opacity:.45;cursor:not-allowed;}
.btn-primary{background:var(--accent);color:#fff;}
.btn-rec{background:var(--rec);color:#fff;}
.btn-ghost{background:var(--surface);color:var(--ink);border:1px solid var(--border);}
.btn-danger{background:var(--surface);color:var(--danger);border:1px solid #F3C4C4;}
.btn-small{font-size:14px;padding:9px 12px;min-height:38px;width:auto;}
.btn-row{display:flex;flex-direction:column;gap:10px;margin-top:12px;}
.btn-inline{display:flex;gap:8px;flex-wrap:wrap;}
.field{margin-bottom:14px;}
.field label,.label{display:block;font-size:13px;font-weight:600;color:var(--ink-soft);margin-bottom:5px;}
.input{font:16px inherit;font-family:inherit;width:100%;padding:11px 12px;border-radius:9px;border:1px solid var(--border);background:#fff;color:var(--ink);}
.input:focus{outline:none;border-color:var(--accent);}
.input:disabled{background:#F5F2EF;color:var(--ink-soft);}
textarea.input{resize:vertical;min-height:80px;line-height:1.45;}
.row2{display:flex;gap:10px;}
.row2>*{flex:1;min-width:0;}
.box-ok{background:var(--ok-soft);border:1px solid #A7E3BD;color:var(--ok);border-radius:10px;padding:10px 12px;font-size:14px;margin-bottom:12px;}
.box-warn{background:var(--warn-soft);border:1px solid #F1DFA6;color:var(--warn);border-radius:10px;padding:10px 12px;font-size:14px;margin-bottom:12px;}
.box-err{background:#FEF2F2;border:1px solid #F3C4C4;color:var(--danger);border-radius:10px;padding:10px 12px;font-size:14px;margin-bottom:12px;}
.spinner{width:16px;height:16px;border-radius:50%;border:2px solid rgba(0,0,0,.15);border-top-color:var(--accent);display:inline-block;animation:spin .7s linear infinite;flex-shrink:0;}
.spinner-light{border-color:rgba(255,255,255,.35);border-top-color:#fff;}
.spinner-lg{width:36px;height:36px;border-width:3px;display:block;margin:4px auto 14px;}
@keyframes spin{to{transform:rotate(360deg);}}
.badge{display:inline-block;font-size:12px;font-weight:600;padding:2px 8px;border-radius:100px;background:#F1ECE8;color:var(--ink-soft);margin-right:4px;}
.badge-ok{background:var(--ok-soft);color:var(--ok);}
.badge-warn{background:var(--warn-soft);color:var(--warn);}
.badge-err{background:#FEF2F2;color:var(--danger);}
.badge-accent{background:var(--accent-soft);color:var(--accent-deep);}
.signed-in{font-size:12.5px;color:var(--ink-soft);text-align:center;margin:18px 0 0;}
.screen{display:none;}
.screen.active{display:block;}
details.fold{border:1px solid var(--border);border-radius:10px;background:#fff;margin-bottom:14px;}
details.fold>summary{padding:12px 14px;font-weight:600;font-size:15px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;}
details.fold>summary::-webkit-details-marker{display:none;}
details.fold>summary::after{content:'▾';color:var(--ink-soft);}
details.fold[open]>summary::after{transform:rotate(180deg);}
details.fold>.fold-body{padding:0 14px 14px;}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));transform:translateX(-50%);background:var(--ink);color:#fff;border-radius:10px;padding:10px 16px;font-size:14px;z-index:90;max-width:calc(100vw - 32px);box-shadow:0 10px 30px rgba(0,0,0,.25);opacity:0;transition:opacity .2s;pointer-events:none;}
.toast.show{opacity:1;}
