:root{--bg: #11150f;--surface: #191e17;--surface-2: #212819;--line: #2f3a2a;--text: #edeee8;--muted: #9aa494;--accent: #8fbf6a;--accent-dim: #5d8244;--danger: #d98b7a;--radius: 14px;--control-h: 46px;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2{font-family:Fraunces,Georgia,serif;font-weight:600;letter-spacing:-.01em;margin:0}button{font:inherit;cursor:pointer}.app{max-width:720px;margin:0 auto;padding:24px 16px 80px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.brand{display:flex;align-items:center;gap:10px}.brand h1{font-size:22px}.mark{position:relative;width:18px;aspect-ratio:44 / 26;flex:none}.mark:before,.mark:after{content:"";position:absolute}.mark:before{left:9.09%;right:9.09%;top:0;height:69.23%;border-radius:999px 999px 0 0;background:var(--accent)}.mark:after{left:0;right:0;bottom:0;height:15.38%;border-radius:999px;background:var(--accent-dim)}.mark.large{display:block;width:36px;margin:0 auto 14px}.account{display:flex;align-items:center;gap:10px;min-width:0}.who{color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.tabs{display:flex;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:4px;margin-bottom:20px;width:fit-content}.tab{border:0;background:transparent;color:var(--muted);padding:7px 18px;border-radius:999px;font-size:14px;font-weight:500}.tab.active{background:var(--surface-2);color:var(--text)}.primary{background:var(--accent);color:#12180f;border:0;border-radius:10px;padding:10px 20px;font-weight:600;font-size:15px}.primary:disabled{opacity:.45;cursor:not-allowed}.ghost{background:transparent;color:var(--muted);border:1px solid var(--line);border-radius:10px;padding:7px 14px;font-size:13px}.ghost:hover{color:var(--text)}.link{background:none;border:0;color:var(--muted);font-size:13px;padding:0}.link:hover{color:var(--text)}.link.danger:hover{color:var(--danger)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.card+.card,.list,.patterns>*+*{margin-top:14px}.card h2{font-size:16px;margin-bottom:14px}.note{margin:-8px 0 14px;font-size:12px;line-height:1.45;color:var(--muted)}.filterbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;margin-bottom:24px;font-size:14px;color:var(--muted)}.filterbar strong{color:var(--text);font-weight:600}.form{margin-bottom:24px}.field{display:block}.form>.field+.field,.row+.check,.tagrow+.row{margin-top:14px}.hint{margin:7px 0 0;font-size:12px;line-height:1.45;color:var(--muted)}.hint+.check{margin-top:12px}.label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}textarea,input[type=text],input[type=date]{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:10px;color:var(--text);padding:10px 12px;font:inherit;resize:vertical}input[type=text],input[type=date]{height:var(--control-h)}input[type=date]::-webkit-datetime-edit{padding:0;line-height:normal}input[type=date]::-webkit-calendar-picker-indicator{margin:0;padding:0;opacity:.55;cursor:pointer}input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}textarea:focus,input:focus{outline:2px solid var(--accent-dim);outline-offset:1px}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin-top:14px}.inline{flex:0 0 auto}.grow{flex:1 1 180px}.check{display:flex;align-items:center;gap:9px;margin-top:14px;font-size:14px;color:var(--muted);cursor:pointer}.check input{width:17px;height:17px;accent-color:var(--accent)}.actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.tagrow{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.chip{background:var(--bg);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:6px 13px;font-size:13px}.chip.on{background:var(--accent-dim);border-color:var(--accent-dim);color:#f2f6ee}.tagrow .chipinput{width:84px;height:auto;background:var(--bg);border:1px dashed var(--line);color:var(--text);border-radius:999px;padding:6px 13px;font:inherit;font-size:13px}.tagrow .chipinput::placeholder{color:var(--muted)}.tagrow .chipinput:focus{width:132px;border-style:solid;border-color:var(--accent-dim);outline:none}.day+.day{margin-top:22px}.daylabel{font-size:14px;color:var(--muted);font-family:Inter,sans-serif;font-weight:500;margin-bottom:8px}.entry+.entry{margin-top:10px}.entry .text{margin:0;white-space:pre-wrap}.meta{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:11px}.tag{font-size:12px;color:var(--muted);background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:2px 10px;cursor:pointer;transition:color .12s,border-color .12s}.tag:hover{color:var(--text);border-color:var(--accent-dim)}.tag:focus-visible,.barrow:focus-visible{outline:2px solid var(--accent-dim);outline-offset:2px}.badge{font-size:12px;color:#12180f;background:var(--accent);border-radius:999px;padding:2px 10px;font-weight:500}.with{font-size:12px;color:var(--muted);font-style:italic}.rowactions{display:flex;gap:14px;margin-top:12px}.photopick{display:flex;align-items:center;gap:14px;margin-top:14px}.photopreview{width:72px;height:72px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}.photo{margin-bottom:12px}.photo.loading,.photobtn img{width:100%;aspect-ratio:4 / 3;max-height:320px;border-radius:10px}.photo.loading{background:var(--surface-2)}.photobtn{display:block;width:100%;padding:0;border:0;background:none}.photobtn img{display:block;object-fit:cover}.photobtn.full img{aspect-ratio:auto;max-height:none}.photobtn:focus-visible{outline:2px solid var(--accent-dim);outline-offset:2px;border-radius:10px}.editbox textarea{margin-bottom:0}.statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}.statvalue{display:block;font-family:Fraunces,Georgia,serif;font-size:28px;line-height:1.1;color:var(--accent)}.statlabel{display:block;font-size:12px;color:var(--muted);margin-top:3px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(12px,1fr));gap:4px}.cell{aspect-ratio:1;border-radius:3px;background:var(--surface-2)}.cell[data-level="1"]{background:#3d5a2c}.cell[data-level="2"]{background:var(--accent-dim)}.cell[data-level="3"]{background:var(--accent)}.bars{list-style:none;margin:0;padding:0}.barrow{display:grid;grid-template-columns:120px 1fr 28px;align-items:center;gap:10px;width:100%;padding:4px 6px;margin:-4px -6px;background:none;border:0;border-radius:8px;color:inherit;text-align:left;cursor:pointer}.barrow:hover{background:var(--surface-2)}.barrow:hover .barlabel,.barrow:hover .count{color:var(--text)}.bars.rates .barrow{grid-template-columns:120px 1fr 58px}.bars li+li{margin-top:9px}.barlabel{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.barrow .barlabel{text-decoration:underline dotted var(--line);text-underline-offset:3px}.barrow:hover .barlabel{text-decoration-color:var(--accent-dim)}.track{background:var(--surface-2);border-radius:999px;height:8px;overflow:hidden}.fill{display:block;height:100%;background:var(--accent);border-radius:999px}.count{font-size:13px;color:var(--muted);text-align:right}.quotes{list-style:none;margin:0;padding:0}.quotes li{border-left:2px solid var(--accent-dim);padding-left:12px;font-size:14px}.quotes li+li{margin-top:12px}.quotedate{display:block;font-size:12px;color:var(--muted);margin-bottom:2px}.empty{text-align:center;color:var(--text)}.empty p{margin:0}.empty p+p{margin-top:6px}.muted{color:var(--muted);font-size:14px}.error{background:#d98b7a1f;border:1px solid rgba(217,139,122,.4);color:var(--danger);border-radius:10px;padding:10px 14px;font-size:14px;margin:0 0 14px}.boot,.signin{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.signin-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:36px 32px;max-width:380px;text-align:center}.signin-card h1{font-size:26px}.signin-card p{color:var(--muted);font-size:14px;margin:10px 0 22px}.spinner{display:inline-block;width:22px;height:22px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:2s}}.exportcontrols .tagrow{margin-top:0}.exportcontrols{margin-bottom:20px}.exporthead{margin-bottom:18px}.exporthead p{margin:4px 0 0;font-size:13px}.exportday+.exportday{margin-top:18px}.exportday h3{margin:0 0 6px;font-size:14px;font-weight:600}.exportentry+.exportentry{margin-top:8px}.exportentry .text{margin:0;white-space:pre-wrap}.exportentry .muted{margin:2px 0 0;font-size:13px}@media print{:root{color-scheme:light}html,body{background:#fff;color:#111}.topbar,.tabs,.error,.exportcontrols{display:none}.app{max-width:none;padding:0}.exportdoc{background:none;border:0;padding:0}.exportdoc .muted{color:#555}.exportentry{break-inside:avoid}.exportday h3{break-after:avoid}}@media(max-width:480px){.barrow{grid-template-columns:96px 1fr 24px}.bars.rates .barrow{grid-template-columns:80px 1fr 52px}.who{max-width:110px}}
