:root{font-family:ui-sans-serif,system-ui,-apple-system,sans-serif;color:#342c26;background:#fff9f1;--accent:#a9401e;line-height:1.5}*{box-sizing:border-box}body{margin:0}header,main,footer,#notice{max-width:960px;margin:auto;padding:18px max(18px,env(safe-area-inset-left))}header,.row,.actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}header{justify-content:space-between}.brand{display:flex;align-items:center;gap:8px;color:inherit;text-decoration:none}.brand img{border-radius:12px}h1{font-size:clamp(30px,5vw,44px);line-height:1.15;letter-spacing:-.035em}h2{font-size:21px}button,.button{font:inherit;border:1px solid #d9c8b8;border-radius:12px;background:white;padding:10px 15px;color:var(--accent);cursor:pointer;text-decoration:none;min-height:44px}.primary{background:var(--accent);color:white;border-color:var(--accent)}.danger{color:#b21f30}.muted,small{color:#716054}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.card{background:#fff;border:1px solid #e6d6c5;border-radius:20px;padding:20px;margin:14px 0}.recipe-card{display:flex;flex-direction:column;align-items:stretch;text-align:left;padding:0;overflow:hidden;color:inherit}.recipe-card .copy{padding:18px}.recipe-card img{width:100%;height:180px;object-fit:cover}.recipe-card h2{margin:3px 0}.badge{font-size:12px;background:#f6ecdf;border-radius:20px;padding:4px 9px}.shared{background:#e1f0e8;color:#285c42}input,textarea,select{font:inherit;background:#fff;color:inherit;border:1px solid #cdbbaa;border-radius:10px;padding:12px;width:100%;min-height:44px}textarea{resize:vertical}label{display:block;margin:14px 0 5px;font-weight:600}input[type=file]{padding:8px}.nutrition{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.nutrition div{border-radius:12px;padding:12px;background:#faeddd}.nutrition strong,.nutrition small{display:block}.nutrition strong{font-size:20px}img{max-width:100%}.gallery{display:flex;gap:12px;overflow:auto}.gallery figure{margin:0;min-width:160px;max-width:240px}.gallery img{height:150px;width:100%;object-fit:cover;border-radius:12px}.markdown img{display:block;border-radius:12px;max-height:560px;margin:14px 0}.markdown pre{overflow:auto;white-space:pre-wrap}.markdown table{border-collapse:collapse}.markdown td,.markdown th{padding:8px;border:1px solid #d9c8b8}dialog{border:0;border-radius:22px;max-width:720px;width:calc(100% - 24px);max-height:92dvh;padding:24px;background:#fff9f1;color:inherit}dialog::backdrop{background:#251b16aa}.editor-head{display:flex;justify-content:space-between;align-items:center;gap:12px;position:sticky;top:-24px;background:#fff9f1;padding:12px 0;z-index:2}.editor-head h2{margin:0}.editor-head .actions{flex-wrap:nowrap}summary{cursor:pointer;padding:15px 0;font-weight:600}#notice:not(:empty){background:#ffe3ba;border-radius:12px}footer{text-align:center;margin-top:32px;padding-bottom:max(30px,env(safe-area-inset-bottom))}a{color:var(--accent)}.error{color:#a02121}.row.spread{justify-content:space-between}.search{margin:18px 0}.empty{padding:40px;text-align:center}.public header button{display:none}button:disabled{opacity:.5;cursor:wait}@media(max-width:480px){.nutrition{grid-template-columns:repeat(2,1fr)}dialog{padding:18px}.editor-head{top:-18px}.grid{grid-template-columns:1fr}}
/* Shared app structure: compact header, persistent tabs and safe-area spacing. */
:root{--page:#fff9f1;--surface:#fff;--line:#e6d6c5;--text:#342c26;--muted:#716054;color-scheme:light}body{background:var(--page);color:var(--text);overscroll-behavior-y:contain}header{padding-top:calc(16px + env(safe-area-inset-top));border-bottom:1px solid var(--line)}.brand{font-size:24px;font-weight:700;gap:11px}.brand b{display:block;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--accent)}.brand img{width:42px;height:42px}#sync{font-size:12px;padding:8px 11px}h1{font-size:30px;margin:0 0 6px;letter-spacing:-.6px}h2{font-size:19px}main{padding-top:24px;padding-bottom:calc(110px + env(safe-area-inset-bottom));min-height:65vh}.row.spread>div>p{margin-top:4px}.card{border-radius:16px}.copy small{display:block;margin-top:4px}.recipe-card{border-color:var(--line)}.search{margin-top:22px}#category-filter{margin-bottom:8px}#tabs{position:fixed;bottom:0;left:0;right:0;z-index:10;display:flex;justify-content:center;border-top:1px solid var(--line);background:var(--surface);padding:8px max(8px,env(safe-area-inset-left)) calc(8px + env(safe-area-inset-bottom));gap:4px}#tabs[hidden]{display:none}#tabs a{display:flex;flex:1;max-width:180px;min-height:52px;flex-direction:column;align-items:center;justify-content:center;gap:3px;text-decoration:none;color:var(--muted);border-radius:12px;font-size:11px;font-weight:600}#tabs a>span:first-child{font-size:23px;line-height:25px}#tabs a.active{color:var(--accent);background:#faeddd}.category-card{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:20px;gap:8px;border-radius:16px;color:var(--text);border-color:var(--line)}.category-symbol{font-size:30px;color:var(--accent)}.category-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:24px;gap:12px}.category-card strong{overflow-wrap:anywhere}.category-card small{color:var(--muted)}#update-notice{max-width:924px;margin:12px auto;padding:12px 18px;background:#ffe3ba;border-radius:12px;display:flex;align-items:center;justify-content:space-between;gap:12px}#update-notice:empty{display:none}#pull-refresh{position:fixed;top:calc(12px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);z-index:40;border:1px solid var(--line);border-radius:24px;padding:12px 18px;white-space:nowrap;background:var(--surface);box-shadow:0 4px 20px #0002}#pull-refresh[hidden]{display:none}.public #tabs,.public #update-notice{display:none}.public main{padding-bottom:32px}dialog{padding-bottom:calc(24px + env(safe-area-inset-bottom))}.editor-head{border-bottom:1px solid var(--line)}button:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:3px}@media(max-width:700px){dialog{width:100%;height:100dvh;max-height:100dvh;max-width:100%;margin:0;border-radius:0;padding:calc(16px + env(safe-area-inset-top)) 20px calc(24px + env(safe-area-inset-bottom))}.editor-head{top:calc(-16px - env(safe-area-inset-top));padding-top:calc(12px + env(safe-area-inset-top))}#update-notice{margin:12px 18px}.category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-color-scheme:dark){:root{color-scheme:dark;--page:#1c1714;--surface:#29211c;--line:#4c3b2e;--text:#fff3e9;--muted:#c9b2a0;--accent:#ffb28a}.muted,small{color:var(--muted)}button,.button,input,textarea,select,.card{background:var(--surface);color:var(--text);border-color:var(--line)}.primary{background:#ab4320;color:#fff;border-color:#ab4320}.badge,.nutrition div,#tabs a.active{background:#3c2b20}.shared{background:#213e31;color:#b6e4c9}.editor-head,dialog{background:var(--page);color:var(--text)}#notice:not(:empty),#update-notice{background:#56371e;color:#fff3e9}.danger,.error{color:#ffaaa8}.markdown td,.markdown th{border-color:var(--line)}}

.category-card strong{font-size:14px;line-height:1.4}.card>.button,.card>button{display:inline-flex;margin:4px 6px 4px 0;align-items:center}
:root{--accent:#214b67;--page:#f4f7fa;--surface:#fff;--line:#d5e0e9;--text:#20313f;--muted:#5d7283;background:var(--page);color:var(--text)}body{background:var(--page)}button,.button,a{color:var(--accent)}.primary{background:var(--accent);border-color:var(--accent);color:#fff}.card,.category-card{border-color:var(--line)}#tabs a.active,.badge,.nutrition div{background:#e5eef5}.editor-head,dialog{background:var(--page);color:var(--text)}.shared{background:#e3efe7;color:#275239}#tabs a{font-size:20px;gap:4px}#tabs a>span:last-child{font-size:10px;line-height:14px}#tabs a{min-width:0}.tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.metric{margin:0}.metric strong{display:block;font-size:24px}.metric small{display:block}.record-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;color:var(--text);border-color:var(--line);padding:16px;margin:8px 0}.record-row small{display:block}.record-row strong{overflow-wrap:anywhere}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:22px 0 8px}.toolbar{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.toolbar>*{flex:1;min-width:100px}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%}th,td{padding:12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;font-size:13px}dt{color:var(--muted);font-size:12px;margin-top:12px}dd{margin:2px 0;white-space:pre-wrap;overflow-wrap:anywhere}.warning{border-left:4px solid #bd8525;padding:12px 16px;background:#fff3d9;margin:12px 0;border-radius:8px;color:#654600}.document{display:block;margin:12px 0}.record-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 20px}.form-help{font-size:13px;color:var(--muted)}input[type=checkbox]{width:22px;min-height:22px}.field-check{display:flex;align-items:center;gap:10px}.field-check label{margin:0}.category-bars{display:grid;gap:12px}.category-bars progress{width:100%;accent-color:var(--accent)}pre{white-space:pre-wrap;overflow-wrap:anywhere}.tabs-inline{display:flex;gap:8px;overflow:auto;padding:8px 0}.tabs-inline a{white-space:nowrap}.empty{padding:28px 10px}.document-meta{font-size:11px;overflow-wrap:anywhere}.finance-year{width:120px}.overview-intro{margin-bottom:24px}.hero-actions{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.small{font-size:12px}.report-method{font-size:13px;color:var(--muted)}@media(max-width:480px){.record-details{grid-template-columns:1fr}.record-row{align-items:flex-start}.metric strong{font-size:20px}.tiles{gap:8px}.metric{padding:14px}}@media(prefers-color-scheme:dark){:root{--page:#101d28;--surface:#192b39;--line:#2b4557;--text:#e9f2f9;--muted:#a9bdcb;--accent:#8ec9ef;background:var(--page)}.primary{background:#286184;color:#fff;border-color:#286184}.badge,#tabs a.active{background:#243f51}.shared{background:#214637;color:#c2e8d0}.warning{background:#3b311e;color:#f6dba2}.editor-head,dialog{background:var(--page)}button,.button,input,textarea,select{background:var(--surface);color:var(--text);border-color:var(--line)}}
