:root{
  --navy:#1D3577; --navy-d:#14275a; --bg:#f3f5fa; --card:#fff; --line:#dbe1ef; --ink:#1a2238; --muted:#5b6682;
  --green:#1b7f45; --green-bg:#e3f4ea; --amber:#9a5b00; --amber-bg:#fdf0d5; --red:#b3261e; --red-bg:#fbe4e2; --blue-bg:#e6ecfa;
  --r:14px; --tap:52px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.45 Heebo,"Segoe UI",system-ui,-apple-system,Arial,sans-serif;
  padding-bottom:calc(76px + env(safe-area-inset-bottom))}
a{color:var(--navy)}
h1{font-size:1.5rem;margin:.1em 0 .2em}
h2{font-size:1.15rem;margin:0 0 .6em;color:var(--navy)}
.muted{color:var(--muted)} .small{font-size:.85rem} .pad{padding:16px}
.num{direction:ltr;unicode-bidi:isolate;white-space:nowrap}
.bar{position:sticky;top:0;z-index:20;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:space-between;
  padding:calc(10px + env(safe-area-inset-top)) 16px 10px}
.brand{color:#fff;text-decoration:none;font-weight:700;font-size:1.2rem}
.pending{background:var(--amber-bg);color:var(--amber);border-radius:99px;padding:4px 12px;font-size:.9rem;font-weight:600}
.meta{padding:6px 16px;font-size:.85rem;color:var(--muted);background:#e9edf7}
.meta.stale{background:var(--amber-bg);color:var(--amber)}
#banner .banner{margin:12px 16px;padding:14px;border-radius:var(--r);background:var(--red-bg);color:var(--red);font-weight:600}
#banner .banner .btn{margin-top:10px;background:#fff}
#app{max-width:720px;margin:0 auto;padding:12px 14px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px;margin:0 0 14px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.btn{display:flex;align-items:center;justify-content:center;gap:8px;min-height:var(--tap);padding:10px 16px;border-radius:var(--r);
  border:2px solid var(--navy);background:#fff;color:var(--navy);font:inherit;font-weight:700;text-decoration:none;cursor:pointer;width:100%;text-align:center}
.btn.primary{background:var(--navy);color:#fff}
.btn.primary:active{background:var(--navy-d)}
.btn.small{min-height:44px;width:auto;padding:6px 14px;font-size:.95rem}
.btn.off,.btn[disabled]{opacity:.4;pointer-events:none;border-style:dashed}
.btn.ok{border-color:var(--green);color:var(--green)}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.stack>*+*{margin-top:10px}
input,select,textarea{font:inherit;width:100%;min-height:var(--tap);padding:10px 12px;border:2px solid var(--line);border-radius:12px;background:#fff;color:var(--ink)}
textarea{min-height:130px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--navy)}
label{display:block;font-weight:600;margin:10px 0 4px}
.seg{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.seg button{min-height:var(--tap);border:2px solid var(--line);background:#fff;border-radius:12px;font:inherit;font-weight:700;color:var(--muted);cursor:pointer}
.seg button.on{background:var(--navy);border-color:var(--navy);color:#fff}
.chip{display:inline-block;border-radius:99px;padding:2px 10px;font-size:.8rem;font-weight:700;background:var(--blue-bg);color:var(--navy);white-space:nowrap}
.chip.green{background:var(--green-bg);color:var(--green)} .chip.amber{background:var(--amber-bg);color:var(--amber)} .chip.red{background:var(--red-bg);color:var(--red)}
.vgroup{font-weight:700;color:var(--muted);margin:16px 2px 6px;font-size:.95rem}
.vcard{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:var(--tap);padding:12px 14px;margin-bottom:8px;
  background:#fff;border:1px solid var(--line);border-radius:var(--r);text-decoration:none;color:var(--ink)}
.vcard b{display:block} .vcard .sub{font-size:.85rem;color:var(--muted)}
.item{padding:10px 0;border-top:1px solid var(--line)}
.item:first-child{border-top:0}
.item .top{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:.85rem;color:var(--muted);margin-bottom:2px}
.item .txt{white-space:pre-wrap;word-break:break-word}
.local{border-inline-start:4px solid var(--amber);padding-inline-start:10px}
.money{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.tile{background:var(--bg);border-radius:12px;padding:10px 12px}
.tile .l{font-size:.8rem;color:var(--muted)} .tile .v{font-size:1.25rem;font-weight:700}
.tile.hi{background:var(--blue-bg)}
details.edit{margin-top:8px}
details.edit summary{cursor:pointer;color:var(--navy);font-weight:700;min-height:44px;display:flex;align-items:center}
.photos{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.photos figure{margin:0}
.photos img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;background:#dde;display:block}
.photos figcaption{font-size:.72rem;color:var(--muted)}
.preview{width:100%;max-height:50vh;object-fit:contain;border-radius:var(--r);background:#000;margin:8px 0}
.filebtn{position:relative;overflow:hidden}
.filebtn input{position:absolute;inset:0;opacity:0;width:100%;height:100%;min-height:0;cursor:pointer}
.tree ul{list-style:none;margin:0;padding:0;padding-inline-start:14px}
.tree>ul{padding:0}
.tree li{margin:2px 0}
.tree summary,.tree a.leaf{display:flex;align-items:center;gap:8px;min-height:46px;padding:6px 8px;border-radius:10px;color:var(--ink);text-decoration:none;cursor:pointer}
.tree a.leaf:active,.tree summary:active{background:var(--blue-bg)}
.tree .open-link{margin-inline-start:auto;font-size:.85rem}
.tabs{position:fixed;bottom:0;inset-inline:0;z-index:20;display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border-top:1px solid var(--line);
  padding-bottom:env(safe-area-inset-bottom)}
.tabs a{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:62px;text-decoration:none;color:var(--muted);font-size:.8rem;font-weight:600}
.tabs a .ico{font-size:1.4rem;line-height:1}
.tabs a.on{color:var(--navy)}
#toast{position:fixed;inset-inline:16px;bottom:calc(84px + env(safe-area-inset-bottom));z-index:40;background:var(--ink);color:#fff;padding:12px 16px;
  border-radius:12px;text-align:center;opacity:0;pointer-events:none;transition:opacity .2s}
#toast.show{opacity:1}
.empty{color:var(--muted);text-align:center;padding:14px}
@media (min-width:600px){ body{font-size:18px} }
