:root{--green: #87c536;--green-dark: #5f9420;--green-soft: #eef7e2;--ink: #151515;--text: #1d1d1f;--muted: #6b6f76;--line: #e6e8eb;--bg: #f4f5f2;--card: #ffffff;--ok: #3f8f12;--ok-bg: #e9f6dc;--warn: #9a6700;--warn-bg: #fff4d6;--bad: #c62828;--bad-bg: #fde8e8;--info: #1d5fa8;--info-bg: #e5f0fb;--radius: 14px;--tabbar-h: 68px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);-webkit-text-size-adjust:100%}*{box-sizing:border-box}html,body{margin:0;background:var(--bg)}body{min-height:100dvh}h1,h2,h3{margin:0 0 12px;line-height:1.2}h1{font-size:1.5rem}h2{font-size:1.3rem}h3{font-size:1.05rem}p{margin:0 0 10px}a{color:var(--green-dark)}code{background:#eee;padding:1px 5px;border-radius:4px}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit}.muted{color:var(--muted)}.small{font-size:.85rem}.center{text-align:center}.right{text-align:right}.pad{padding:12px}.text-bad{color:var(--bad)}.danger{color:var(--bad)!important}.app{min-height:100dvh;padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom))}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:calc(8px + env(safe-area-inset-top)) 16px 8px;background:var(--card);border-bottom:3px solid var(--green)}.brand{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--ink);font-weight:800;letter-spacing:.02em}.brand img{height:40px}.who{display:flex;flex-direction:column;align-items:flex-end;font-size:.85rem}.who small{color:var(--muted)}.content{max-width:720px;margin:0 auto}.page{padding:16px;display:flex;flex-direction:column;gap:14px}.page-head{display:flex;align-items:center;gap:10px}.page-head h1{margin:0;flex:1}.hello{margin-bottom:0}.section-title{margin:6px 4px 0;color:var(--muted);font-size:.9rem;text-transform:uppercase;letter-spacing:.04em}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:10;display:grid;grid-template-columns:repeat(5,1fr);height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--ink)}.tabbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#a9adb3;text-decoration:none;font-size:.72rem}.tabbar a.active{color:var(--green)}.tab-scan .scan-bubble{display:grid;place-items:center;width:54px;height:54px;margin-top:-26px;border-radius:50%;background:var(--green);color:var(--ink);border:4px solid var(--ink);box-shadow:0 4px 12px #00000040}.tabbar a.tab-scan.active{color:var(--green)}.center-screen{min-height:100dvh;display:grid;place-items:center;padding:16px}.card{background:var(--card);border-radius:var(--radius);padding:16px;box-shadow:0 1px 2px #0000000d,0 0 0 1px var(--line)}.card.flush{padding:0;overflow:hidden}.card.narrow{width:100%;max-width:380px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.card-head h3{margin:0}.list{list-style:none;margin:0;padding:0}.list>li+li{border-top:1px solid var(--line)}.list>li.card+li.card{border-top:0}.list>li.card{margin-bottom:10px}.row{display:flex;align-items:center;gap:12px;width:100%;padding:11px 14px;background:none;border:0;text-align:left;color:inherit;text-decoration:none}.card:not(.flush) .row{padding-left:0;padding-right:0}a.row:active,button.row:active{background:var(--green-soft)}.row-main{flex:1;min-width:0;display:flex;flex-direction:column}.row-main strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-main small,.row-side small{color:var(--muted)}.row-side{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.row-buttons{display:flex;gap:8px}.time{font-weight:700;font-variant-numeric:tabular-nums;min-width:48px}.stack{display:flex;flex-direction:column;gap:8px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 16px;border-radius:12px;border:1px solid transparent;font-weight:650;text-decoration:none;text-align:center}.btn:disabled{opacity:.55;cursor:default}.btn-lg{min-height:52px;font-size:1.05rem;width:100%}.btn-sm{min-height:36px;padding:0 12px;font-size:.9rem}.btn-primary{background:var(--green);color:var(--ink)}.btn-dark{background:var(--ink);color:#fff}.btn-danger{background:var(--bad);color:#fff}.btn-ghost{background:var(--card);color:var(--text);border-color:var(--line)}.icon-btn{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:0;background:transparent;color:var(--text)}.icon-btn:disabled{opacity:.3}.icon-btn.flip svg{transform:scaleX(-1)}.link{background:none;border:0;padding:0;color:var(--green-dark);font-weight:600;text-decoration:underline}.form{display:flex;flex-direction:column;gap:12px}.field{display:flex;flex-direction:column;gap:5px;border:0;padding:0;margin:0}.field>span{font-size:.85rem;font-weight:600;color:var(--muted)}.field input,.field select,.field textarea,.day-nav input,.user-controls select,.plan-row input{width:100%;min-height:44px;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--text)}.field input:focus,.field select:focus,.field textarea:focus,.search input:focus{outline:2px solid var(--green);outline-offset:-1px}.check{display:flex;align-items:center;gap:10px;font-weight:600}.check input{width:22px;height:22px;accent-color:var(--green)}.indent{padding-left:14px;border-left:3px solid var(--green);display:flex;flex-direction:column;gap:12px}.photo-field{display:flex;flex-direction:column;align-items:center;gap:8px}.search{display:flex;align-items:center;gap:8px;padding:0 12px;background:var(--card);border:1px solid var(--line);border-radius:12px;color:var(--muted)}.search input{flex:1;border:0;min-height:46px;background:transparent;color:var(--text)}.search input:focus{outline:none}.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.chip{flex:none;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--text);font-size:.9rem;font-weight:600}.chip.on{background:var(--ink);border-color:var(--ink);color:var(--green)}.tabs{display:grid;grid-template-columns:1fr 1fr;background:#e7e9e4;border-radius:12px;padding:4px}.tabs button{border:0;background:none;padding:10px;border-radius:9px;font-weight:600;color:var(--muted)}.tabs button.on{background:var(--card);color:var(--ink);box-shadow:0 1px 3px #0000001a}.badge{display:inline-block;padding:3px 9px;border-radius:999px;font-size:.75rem;font-weight:700;white-space:nowrap}.tone-ok{background:var(--ok-bg);color:var(--ok)}.tone-warn{background:var(--warn-bg);color:var(--warn)}.tone-bad{background:var(--bad-bg);color:var(--bad)}.tone-info{background:var(--info-bg);color:var(--info)}.tone-muted{background:#eceef0;color:var(--muted)}.alert{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;border-radius:10px;font-size:.92rem}.alert-bad{background:var(--bad-bg);color:var(--bad)}.alert-warn{background:var(--warn-bg);color:var(--warn)}.alert-info{background:var(--info-bg);color:var(--info)}.link-alert{text-decoration:none;justify-content:space-between}.loading{padding:40px 16px;text-align:center;color:var(--muted)}.loading.big{padding:80px 16px;font-size:1.1rem}.empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:32px 16px;color:var(--muted);text-align:center}.photo{flex:none;display:grid;place-items:center;overflow:hidden;border-radius:50%;background:var(--ink);color:var(--green);font-weight:800}.photo img{width:100%;height:100%;object-fit:cover}.login{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:24px 16px;background:#fff}.login-logo{width:150px}.login form{display:flex;flex-direction:column;gap:14px}.quick{display:grid;grid-template-columns:1.4fr 1fr;gap:10px}.quick-btn{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:6px;min-height:96px;padding:14px;border-radius:var(--radius);background:var(--card);color:var(--ink);text-decoration:none;font-weight:700;box-shadow:0 0 0 1px var(--line)}.quick-btn.primary{background:var(--ink);color:var(--green);box-shadow:none}.stats{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stat{display:flex;flex-direction:column;padding:14px;border-radius:var(--radius);background:var(--card);box-shadow:0 0 0 1px var(--line);text-decoration:none;color:var(--text)}.stat strong{font-size:1.8rem;line-height:1.1}.stat span{font-size:.85rem;color:var(--muted)}.stat.ok strong{color:var(--ok)}.stat.warn strong{color:var(--warn)}.stat.bad strong{color:var(--bad)}.profile{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px}.profile h2{margin:6px 0 0}.badges{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.facts{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;width:100%;margin:10px 0;text-align:left;font-size:.92rem}.facts dt{color:var(--muted)}.facts dd{margin:0}.warnings{width:100%;display:flex;flex-direction:column;gap:6px;margin-bottom:6px}.periods{list-style:none;margin:0;padding:0}.periods li{display:flex;flex-direction:column;gap:3px;padding:10px 0;border-top:1px solid var(--line)}.periods li:first-child{border-top:0}.period-main{display:flex;justify-content:space-between;align-items:center;gap:8px}.period-actions{display:flex;gap:14px;margin-top:4px;font-size:.9rem}.cancelled{opacity:.55}.qr-box{display:grid;place-items:center;min-height:260px}.qr-box img{width:260px;height:260px;image-rendering:pixelated}.steps{padding-left:20px;display:flex;flex-direction:column;gap:12px}.scan-page h1{margin-bottom:0}.camera{position:relative;width:100%;aspect-ratio:1;border-radius:var(--radius);overflow:hidden;background:#000}.camera video{width:100%;height:100%;object-fit:cover}.camera .frame{position:absolute;top:15%;right:15%;bottom:15%;left:15%;border-radius:18px;border:4px solid var(--green);box-shadow:0 0 0 999px #00000059}.result{border-radius:var(--radius);overflow:hidden;background:var(--card);box-shadow:0 0 0 1px var(--line)}.result-banner{display:flex;align-items:center;gap:12px;padding:16px;color:#fff}.result-banner div{display:flex;flex-direction:column}.result-banner strong{font-size:1.25rem}.result-ok .result-banner{background:var(--ok)}.result-bad .result-banner{background:var(--bad)}.result-body{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:18px 16px 4px}.result-body .photo{border-radius:18px;border:4px solid var(--line)}.result-ok .result-body .photo{border-color:var(--green)}.result-body h2{margin:8px 0 0;font-size:1.5rem}.result-body .code{font-weight:700;color:var(--muted)}.result-notes{width:100%;display:flex;flex-direction:column;gap:6px;text-align:left}.result-actions{display:flex;flex-direction:column;gap:8px;padding:16px}.done{display:flex;flex-direction:column;gap:12px}.picker{display:flex;flex-direction:column;gap:10px}.picker .list{background:var(--card);border-radius:var(--radius);box-shadow:0 0 0 1px var(--line)}.day-nav{display:grid;grid-template-columns:40px 1fr 40px;gap:8px;align-items:center}.user-row{display:flex;flex-direction:column;gap:8px;padding:12px 0}.user-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.user-controls select{width:auto;min-height:36px;padding:4px 8px}.plan-row{display:flex;align-items:center;gap:8px;padding:8px 0;flex-wrap:wrap}.plan-row .grow{flex:1;min-width:120px}.plan-row label{display:flex;align-items:center;gap:4px;color:var(--muted)}.plan-row label input{width:64px}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#00000073;display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:560px;max-height:92dvh;overflow-y:auto;background:var(--card);border-radius:20px 20px 0 0;padding:8px 16px calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px;animation:up .18s ease-out}.sheet-head{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:var(--card);padding-top:8px}.sheet-head h3{margin:0}@keyframes up{0%{transform:translateY(30px);opacity:0}to{transform:none;opacity:1}}@media (min-width: 720px){.stats{grid-template-columns:repeat(4,1fr)}.sheet-backdrop{align-items:center}.sheet{border-radius:20px}}
