:root{--bg:#f5f8f4;--surface:#fff;--ink:#24382f;--ink-2:#66756e;--ink-3:#77867d;--line:#dfe8df;--accent:#246e57;--accent-weak:#e8f2eb;--ok:#246e57;--ok-weak:#e8f2eb;--warn:#83541f;--warn-weak:#fff2dc;--radius:22px;--tabbar-h:68px}
body{background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}button:focus-visible,a:focus-visible{outline:3px solid #b08b45;outline-offset:3px}.topbar{padding:22px 22px 18px;background:#fff;border-bottom:1px solid var(--line);max-width:780px}.topbar .who{font-size:19px;font-weight:750;color:var(--ink)}main{max-width:780px;padding-left:22px;padding-right:22px}.view{padding-top:24px}h1{font-size:27px;font-weight:750;letter-spacing:-.7px}h2{font-size:20px;font-weight:750;letter-spacing:-.3px}.sub{font-size:15px}.tiny{line-height:1.7;color:#64766c}.card{border:1px solid var(--line);box-shadow:none;padding:24px;border-radius:var(--radius);background:#fff}.btn{border-radius:14px;background:var(--accent);font-weight:700;min-height:50px;box-shadow:none}.btn.plain{color:var(--accent);background:#f1f6f0;border:1px solid var(--line)}.btn.sm{min-height:42px}.icon-btn{color:var(--accent)}.field input,.field select,.field textarea,input,textarea,select{border-radius:12px;background:#fbfcfa;border-color:#d8e2d8;min-height:46px}.tabs{background:#eaf0e9;border:1px solid var(--line);border-radius:13px;padding:4px}.tabs button{border-radius:9px;min-height:42px;color:var(--ink-2)}.tabs button.on{background:#fff;color:var(--accent);box-shadow:0 2px 8px #223e2b08}.tag{border-radius:8px}.tag.blue,.tag.green{background:#e8f3e9;color:var(--accent)}.tag.amber{background:#fff1dc;color:#805720}.banner{border-radius:14px}.banner.info{background:#eaf3eb;color:#3e6351}.bar i{background:var(--accent)}#tabbar{background:#fff;border-top:1px solid var(--line);height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));gap:8px;max-width:780px}#tabbar button{color:#6c7c73;margin:7px 0;border-radius:12px}#tabbar button.on{color:var(--accent);background:#eaf3eb;font-weight:750}#tabbar button::before{display:block;font-size:17px;line-height:21px;font-weight:400}#tabbar [data-tab=home]::before{content:'⌂'}#tabbar [data-tab=practice]::before{content:'✎'}#tabbar [data-tab=list]::before{content:'▤'}#tabbar [data-tab=my]::before{content:'○'}.offer-strip{max-width:780px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:19px 22px;background:#fff2dc;color:#79501f}.offer-strip b,.offer-strip strong,.offer-strip span{display:block}.offer-strip b{font-size:13px}.offer-strip strong{font-size:17px;margin:3px 0}.offer-strip span{font-size:12px}.offer-strip button{border:0;background:#785224;color:#fff;padding:12px 14px;white-space:nowrap;border-radius:12px;font-weight:700}.profile-row{display:flex;align-items:center;gap:20px;padding:10px 0 30px}.profile-row h1{font-size:33px;margin:0 0 4px}.avatar{display:grid;place-items:center;width:80px;height:80px;flex-shrink:0;background:#e6f1e7;color:var(--accent);font-size:33px;font-weight:750;border-radius:26px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.page-heading h1,.page-heading h2,.page-heading h3{margin:0}.membership-card{margin-bottom:16px;padding:28px}.membership-card .page-heading .tag{flex-shrink:0}.plan-switch{display:flex;gap:8px;margin:24px 0 16px;padding:5px;background:#eef3ed;border-radius:14px}.plan-switch button{flex:1;min-height:46px;border:1px solid transparent;background:transparent;border-radius:10px;color:var(--ink-2);font-weight:700}.plan-switch button.on{background:#fff;color:var(--accent);border-color:#bfd8c6;box-shadow:0 2px 7px #213c2c08}.plan-switch small{font-size:11px;background:#fff0d6;color:#865a25;padding:3px 5px;border-radius:5px;margin-left:4px;white-space:nowrap}.member-price{font-size:48px;line-height:1.3;font-weight:750;letter-spacing:-1.5px;margin:12px 0 5px}.member-price span{font-size:19px;font-weight:400;color:var(--ink-2);letter-spacing:0;margin-left:8px}.benefit-grid{display:flex;flex-wrap:wrap;gap:10px 22px;margin:20px 0 12px;color:#526b5b;font-size:14px}.benefit-grid span::before{content:'✓';margin-right:6px;color:var(--accent)}.member-note{text-align:center;margin:10px 0 0}.usage-card{margin-bottom:16px}.usage-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.usage-grid div{padding:4px 0}.usage-grid b{display:block;font-size:25px}.usage-grid small{font-size:13px;font-weight:400;color:var(--ink-2)}.usage-grid span{font-size:13px;color:var(--ink-2)}.my-links{padding:4px 22px}.my-links button{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:66px;background:transparent;border:0;border-bottom:1px solid var(--line);color:var(--ink);text-align:left}.my-links button:last-child{border:0}.my-links button span:first-child{font-weight:650}.my-links button span:last-child{font-size:12px;color:var(--ink-2)}.product-footer{text-align:center;color:var(--ink-3);font-size:12px;margin:24px 0}.stack{margin-top:16px}.order-item{width:100%;text-align:left;color:var(--ink)}.order-item p{margin:12px 0}.order-arrow{float:right;font-size:13px;color:var(--accent)}.checkout-summary,.payment-card,.status-card{margin-top:18px}.payment-card h2{margin:0 0 15px}.payment-card .support-qr{display:block;margin:20px auto;max-width:240px;width:100%;height:auto}.status-card{text-align:center}.status-mark{font-size:40px;margin:10px auto;color:var(--accent);width:72px;height:72px;background:var(--accent-weak);border-radius:50%;display:grid;place-items:center}.status-card .btn{margin-top:20px}.login-wrap{padding-top:36px;max-width:430px}.brand .mark{background:var(--accent);border-radius:22px}.brand h1{font-size:36px}.brand p{font-size:15px}.login-wrap .tabs{margin:30px 0 24px}.login-footer{text-align:center;font-size:12px;color:var(--ink-3);margin-top:25px}.review-card,.q-card{border-radius:16px;background:#f7faf6}.metric,.stat{background:#fff;border-color:var(--line)}.admin-main{max-width:1160px}.admin-header{max-width:1200px;margin:auto;padding:23px 24px;border-bottom:1px solid var(--line)}.admin-heading h1{font-size:30px}.admin-toolbar{margin-top:20px}.admin-page .tabs{margin-top:20px}.admin-page .tabs button{min-width:90px}.admin-page .card{padding:22px}.admin-page textarea{width:100%}.admin-page .admin-login{max-width:440px;margin:70px auto}.admin-page .admin-login h1{margin-bottom:15px}.admin-settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.admin-settings-grid .card{margin:0}.model-provider-list{display:flex;gap:10px;flex-wrap:wrap;margin:15px 0}.provider-pill{background:#edf4ed;border:1px solid #cadbcd;color:var(--accent);border-radius:12px;padding:10px 14px}.model-routes{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}.model-route .field{margin-top:12px}.model-route h2{margin:0}.model-route .row>*{min-width:0;flex:1}.admin-order-card h2{margin:0}.admin-order-card details{margin-top:15px;border-top:1px solid var(--line);padding-top:12px}.admin-order-card summary{color:var(--accent);cursor:pointer;font-weight:650}.admin-order-card .page-heading{flex-wrap:wrap}.admin-order-card .row{align-items:stretch}.admin-order-card .row label{flex:1;min-width:120px}.admin-order-card .check-line{display:flex;gap:8px;align-items:flex-start;padding:12px 0}.check-line input{min-height:20px;flex:0 0 18px;margin-top:3px}.model-notice{border-left:3px solid var(--accent);padding:8px 14px;margin:18px 0;background:#eef5ee}.quota-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.model-catalog{max-height:160px;overflow:auto;white-space:pre-line;font-size:12px;background:#f5f8f3;padding:12px;border-radius:10px}.admin-stats b{color:var(--accent)}.admin-page .support-qr{max-width:220px}.field span{font-size:13px;color:#586d60}.admin-toolbar .field{margin-bottom:0}.empty{color:var(--ink-2)}.support-qr{object-fit:contain}.admin-photo{border-radius:13px}
@media(min-width:800px){body:not(.admin-page){border-left:1px solid var(--line);border-right:1px solid var(--line);max-width:780px;margin:0 auto;min-height:100vh}.topbar{padding-top:25px}main{padding-left:32px;padding-right:32px}.offer-strip{padding-left:32px;padding-right:32px}}
@media(max-width:600px){main{padding-left:18px;padding-right:18px}.card{padding:20px}.membership-card{padding:22px}.profile-row{gap:16px}.profile-row h1{font-size:29px}.avatar{width:68px;height:68px;border-radius:23px}.page-heading h2{font-size:18px}.membership-card .page-heading{align-items:flex-start}.membership-card .page-heading .tag{font-size:11px}.member-price{font-size:45px}.benefit-grid{gap:8px 13px;font-size:13px}.plan-switch small{display:inline-block;font-size:10px;margin-left:2px}.my-links button span:last-child{font-size:11px}.admin-settings-grid,.model-routes{grid-template-columns:1fr}.quota-grid{grid-template-columns:1fr 1fr}.admin-header{padding:18px}.admin-header .sub{display:none}.admin-main{padding:0 15px 45px}.admin-heading h1{font-size:24px}.admin-page .tabs{overflow-x:auto}.admin-page .tabs button{min-width:83px;font-size:13px}.admin-toolbar{flex-wrap:wrap}.admin-order-card .row{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

#tabbar{margin-left:auto;margin-right:auto}


.field>input,.field>select,.field>textarea{width:100%;border:1px solid var(--line);padding:11px 13px;color:var(--ink)}.row>.field{min-width:0}.field>input[type=checkbox]{width:auto}


.price-standard{font-size:14px;color:var(--accent);margin:5px 0 10px}.plan-switch small{font-weight:600}
.site-filing{margin-top:28px;padding:16px 0 4px;text-align:center;font-size:12px;line-height:1.6;color:var(--ink-2)}.site-filing a{color:inherit;text-decoration:none}.site-filing a:hover{text-decoration:underline}

.camera-dialog{width:min(700px,calc(100% - 28px));max-height:calc(100dvh - 32px);padding:22px;border:1px solid var(--line);border-radius:20px;background:#fff;color:var(--ink);overflow:auto;box-shadow:0 20px 70px #14271b40}
.camera-dialog::backdrop{background:#12261dd9}
.camera-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}
.camera-heading h2{margin:0 0 5px;font-size:20px}.camera-heading p{font-size:13px;color:var(--ink-2);margin:0}
.camera-stage{width:100%;aspect-ratio:4/3;background:#13251d;border-radius:13px;overflow:hidden;display:grid;place-items:center;max-height:55dvh}
.camera-stage video{display:block;width:100%;height:100%;max-height:55dvh;object-fit:contain}
.camera-status{min-height:42px;font-size:13px;color:var(--ink-2);margin:14px 0}
.camera-actions{display:flex;gap:12px}.camera-actions .btn{flex:1;width:auto;font-size:14px}
@media(max-width:480px){.camera-dialog{padding:16px}.camera-actions{gap:8px}.camera-actions .btn{padding:10px 7px;font-size:12px}.camera-heading h2{font-size:18px}}

