.app{max-width:480px;margin:0 auto;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--bg);position:relative}@media (min-width:520px){.app{box-shadow:0 0 0 1px var(--line),0 14px 34px rgba(12,29,85,.12)}}.app .top{height:54px;display:flex;align-items:center;gap:10px;background:#fff;border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;z-index:10;padding:env(safe-area-inset-top) 14px 0;height:calc(54px + env(safe-area-inset-top))}.app .top .picon{height:30px;display:block}.app .top .ttl{flex:1 1;font-size:16px;font-weight:700;color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app .top a,.app .top button.plain{color:var(--navy);display:inline-flex;padding:6px;border-radius:8px}.app .top a:hover{background:var(--tint);text-decoration:none}.app.hero .top{background:var(--navy);border-bottom:0}.app.hero .top .ttl,.app.hero .top a{color:#fff}.app.hero .top .piconw{background:#fff;border-radius:9px;padding:2px;display:inline-flex}.app .body{flex:1 1;padding:12px 12px calc(76px + env(safe-area-inset-bottom));font-size:14px}.hero-m{margin:-12px -12px 14px;padding:14px 18px 30px;background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;border-radius:0 0 26px 26px}.hero-m .greet{color:#fff;font-size:20px;font-weight:700;margin:2px 0}.hero-m .sub{color:rgba(255,255,255,.75);margin:0;font-size:13px}.hero-m+.mc,.hero-m+.tiles{margin-top:-20px}.tabs{position:fixed;bottom:0;left:0;right:0;margin:0 auto;max-width:480px;height:calc(62px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:#fff;border-top:1px solid var(--line);z-index:10}.tab,.tabs{display:flex}.tab{flex:1 1;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:10.5px;color:#8a93a8;font-weight:600;position:relative}.tab:hover{text-decoration:none}.tab .ti{display:inline-flex;padding:4px 12px;border-radius:12px}.tab.on{color:var(--navy);font-weight:700}.tab.on .ti{background:var(--navy);color:#fff}.tab .cnt{position:absolute;top:6px;right:calc(50% - 22px);background:var(--gold);color:var(--navy);font-size:9.5px;font-weight:800;border-radius:999px;padding:0 5px;line-height:1.5}.mc{background:#fff;border-radius:14px;padding:12px 14px;margin-bottom:10px;border:1px solid #e9ecf5;font-size:14px;box-shadow:0 2px 8px rgba(12,29,85,.05);display:block;color:var(--ink)}a.mc:hover{text-decoration:none;border-color:#c9d3f5}.mc.hi{border-color:var(--navy);background:var(--tint)}.mc.warnc{border-color:#f1d28a;background:#fffaf0}.mc.okc{border-color:#a8dec0;background:#f3fcf6}.mh{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:700;margin-bottom:6px;display:flex;justify-content:space-between;align-items:center}.mh a{text-transform:none;letter-spacing:0;font-weight:600}.mrow{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #f0f2f6;gap:10px;color:var(--ink)}.mrow:last-child{border-bottom:0}a.mrow:hover{text-decoration:none}.mrow small{display:block;color:var(--muted);font-size:12px}.mrow .r{text-align:right;white-space:nowrap}.mrow.b{font-weight:700}.mrow .mi-left{display:flex;align-items:center;gap:10px;min-width:0}.mrow .mi-left>div{min-width:0}.mbtn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;text-align:center;background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;border:0;border-radius:12px;padding:13px;font-weight:700;font-size:14px;margin-top:10px;box-shadow:0 4px 10px rgba(12,29,85,.18);text-transform:none;letter-spacing:0}.mbtn:hover{text-decoration:none;filter:brightness(1.06)}.mbtn.ghost{color:var(--navy);border:1.5px solid var(--navy)}.mbtn.danger,.mbtn.ghost{background:#fff;box-shadow:none}.mbtn.danger{color:#c0392b;border:1.5px solid #e3b1ab}.mbtn.gold{background:var(--gold);color:var(--navy);box-shadow:0 4px 10px rgba(246,180,59,.35)}.mbtn.wa{background:var(--wa);color:#fff;box-shadow:none}.mbtn.sm{padding:9px;font-size:13px;margin-top:6px}.mi{margin-bottom:10px;display:block}.mi label,.mi>span.fl{display:block;font-size:11px;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:4px;letter-spacing:.3px}.app input,.app select,.app textarea{border-radius:10px;padding:11px 12px;font-size:15px}.greet{font-size:19px;font-weight:700;color:var(--navy);margin:4px 0 2px}.app .sub{font-size:13px;color:var(--muted);margin-bottom:8px;text-transform:none;letter-spacing:0;font-weight:400}.big{font-size:26px;font-weight:800;color:var(--navy)}.app .seg{display:flex;width:100%;margin-bottom:10px}.app .seg a,.app .seg button{flex:1 1;text-align:center;padding:7px 4px;font-size:13px}.days{display:flex;justify-content:space-between;margin:4px 0 10px;gap:2px}.day{flex:1 1;text-align:center;font-size:11px;padding:6px 0;border-radius:12px;color:var(--muted)}.day b{display:block;font-size:15px;color:var(--ink)}.day.on{background:var(--navy)}.day.on,.day.on b{color:#fff}.day:hover{text-decoration:none}.day.has:after{content:"";display:block;width:5px;height:5px;border-radius:50%;background:var(--gold);margin:3px auto 0}.sess{display:flex;gap:12px;background:#fff;border:1px solid #e9ecf5;border-left:4px solid var(--navy2);border-radius:12px;padding:10px 12px;margin-bottom:8px;font-size:14px;align-items:center;box-shadow:0 2px 6px rgba(12,29,85,.05);color:var(--ink)}a.sess:hover{text-decoration:none}.sess .t{width:58px;font-weight:700;color:var(--navy);font-size:13px;flex:none;line-height:1.3}.sess .t small{display:block;color:var(--muted);font-weight:400;font-size:11px}.sess .m{flex:1 1;min-width:0}.sess small{display:block;color:var(--muted);font-size:12px}.sess.x{opacity:.75;border-left-color:var(--bad)}.sess.x .m>div:first-child{text-decoration:line-through}.sess.done{border-left-color:var(--ok)}.dots{gap:6px;flex-wrap:wrap;margin:6px 0}.dots,.pa{display:flex}.pa{gap:4px}.pa button,.pa label{width:36px;height:34px;border-radius:8px;border:1px solid #e6e9f0;font-size:12px;display:inline-flex;align-items:center;justify-content:center;color:#7a8499;background:#fff;padding:0;font-weight:700;text-transform:none;cursor:pointer}.pa .on{background:var(--navy);color:#fff;border-color:var(--navy)}.pa .on.A{background:#e74c3c;border-color:#e74c3c}.pa .on.L{background:#f1c40f;border-color:#f1c40f;color:#4a3b00}.pa .on.E{background:#3498db;border-color:#3498db}.okbig{width:72px;height:72px;border-radius:50%;background:var(--ok-soft);color:var(--ok);display:flex;align-items:center;justify-content:center;margin:30px auto 12px;font-size:34px;font-weight:800}.okbig.bad{background:var(--bad-soft);color:var(--bad)}.okbig.warn{background:var(--warn-soft);color:var(--warn)}.photo{background:var(--tint);border-radius:12px;min-height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#4b5570;font-size:13px;gap:6px;border:1.5px dashed #aab5d4;padding:14px;text-align:center;position:relative}.photo input{position:absolute;inset:0;opacity:0;cursor:pointer}.rc{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:13.5px;line-height:1.7}.rc b.bank{display:block;color:var(--gold2);font-size:16px}.qrwrap{position:relative;width:240px;margin:14px auto 8px;padding:10px;border:2px solid var(--navy);border-radius:16px;background:#fff}.qrwrap img{display:block;width:100%;aspect-ratio:1;object-fit:contain}.app .mkv{display:grid;grid-template-columns:auto 1fr;grid-gap:6px 12px;gap:6px 12px;font-size:14px}.app .mkv b{color:var(--muted);font-weight:700;font-size:10.5px;text-transform:uppercase;padding-top:3px}.app .tiles{padding:10px;gap:8px}.app .tile .v{font-size:18px}.app .tile{padding:8px 10px}.app .chip{font-size:11.5px}.memo-body{white-space:pre-wrap;line-height:1.55}.consent{font-size:12.5px;color:var(--muted);background:var(--tint);border-radius:10px;padding:10px 12px;margin:10px 0;line-height:1.5}.install-step{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-bottom:1px solid #f0f2f6}.install-step:last-child{border-bottom:0}.install-step .no{width:28px;height:28px;border-radius:9px;background:var(--navy);color:#fff;font-weight:800;display:inline-flex;flex:none;font-size:13px}.install-step .no,.lockbig{align-items:center;justify-content:center}.lockbig{width:72px;height:72px;border-radius:50%;background:var(--tint);color:var(--navy);display:flex;margin:30px auto 12px}.ver{text-align:center;color:var(--faint);font-size:12px;margin:16px 0}