:root{--tet-bg:#f7f5f0;--tet-card:#fff;--tet-ink:#1f2328;--tet-muted:#5f6670;--tet-line:#e4e0d6;--tet-brand:#b4541a;--tet-brand-soft:#fbeee4;--tet-ok:#1e7b4f;--tet-ok-soft:#e5f4ec;--tet-bad:#b3261e;--tet-bad-soft:#fbe9e7;--tet-blue:#1d5fa8;--tet-blue-soft:#e8f0fa;--tet-gold:#8a6200;--tet-gold-soft:#fff5d6;--tet-radius:14px}
#tet-app{font-family:'Noto Sans Devanagari','Mukta',system-ui,sans-serif;color:var(--tet-ink);background:var(--tet-bg);max-width:680px;margin:0 auto;padding:16px;line-height:1.6;box-sizing:border-box;min-height:70vh}
#tet-app *{box-sizing:border-box}
#tet-app button{font-family:inherit;cursor:pointer}
.tet-hero{background:linear-gradient(135deg,#7a3410,#b4541a);color:#fff;border-radius:var(--tet-radius);padding:20px;margin-bottom:16px}
.tet-hero h1{margin:0 0 4px;font-size:1.35rem;line-height:1.35;color:#fff}
.tet-hero p{margin:0;opacity:.92;font-size:.95rem}
.tet-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}
.tet-stat{background:rgba(255,255,255,.15);border-radius:10px;padding:8px;text-align:center}
.tet-stat b{display:block;font-size:1.25rem}
.tet-stat span{font-size:.75rem;opacity:.9}
.tet-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.tet-btn{border:0;border-radius:10px;padding:12px 16px;font-size:1rem;font-weight:600;background:var(--tet-brand);color:#fff;min-height:46px}
.tet-btn:disabled{opacity:.45;cursor:not-allowed}
.tet-btn.ghost{background:var(--tet-card);color:var(--tet-brand);border:1.5px solid var(--tet-brand)}
.tet-btn.block{width:100%}
.tet-btn.small{padding:8px 12px;font-size:.9rem;min-height:38px}
.tet-sec-title{font-size:1rem;margin:18px 0 8px;color:var(--tet-muted);font-weight:600}
.tet-days{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
.tet-day{min-width:0;overflow:hidden;display:flex;align-items:center;gap:12px;background:var(--tet-card);border:1px solid var(--tet-line);border-radius:12px;padding:12px;text-align:left;width:100%;color:var(--tet-ink)}
.tet-day .n{flex:0 0 46px;height:46px;border-radius:10px;background:var(--tet-brand-soft);color:var(--tet-brand);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.05rem}
.tet-day .meta{flex:1;min-width:0}
.tet-day .meta b{display:block;font-size:.98rem}
.tet-day .meta small{display:block;color:var(--tet-muted);font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tet-day .tag{font-size:.75rem;border-radius:20px;padding:3px 9px;white-space:nowrap;font-weight:600}
.tag.free{background:var(--tet-ok-soft);color:var(--tet-ok)}
.tag.lock{background:#eee;color:#666}
.tag.done{background:var(--tet-blue-soft);color:var(--tet-blue)}
.tet-day.locked{opacity:.75}
.tet-day.done .n{background:var(--tet-blue-soft);color:var(--tet-blue)}
.tet-card{background:var(--tet-card);border:1px solid var(--tet-line);border-radius:var(--tet-radius);padding:18px;margin-bottom:14px}
.tet-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;font-size:.88rem;color:var(--tet-muted)}
.tet-bar{height:6px;background:var(--tet-line);border-radius:6px;overflow:hidden;margin-bottom:14px}
.tet-bar i{display:block;height:100%;background:var(--tet-brand);transition:width .25s}
.tet-chip{display:inline-block;font-size:.75rem;background:var(--tet-brand-soft);color:var(--tet-brand);border-radius:20px;padding:2px 10px;margin-bottom:8px;font-weight:600}
.tet-q{font-size:1.08rem;font-weight:600;margin:0 0 14px;white-space:pre-line}
.tet-opts{display:grid;gap:8px}
.tet-opt{display:flex;gap:10px;align-items:flex-start;width:100%;text-align:left;background:#fff;border:1.5px solid var(--tet-line);border-radius:12px;padding:12px;font-size:1rem;color:var(--tet-ink);min-height:50px}
.tet-opt .k{flex:0 0 28px;height:28px;border-radius:50%;background:#f0ede6;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem}
.tet-opt:not(:disabled):hover{border-color:var(--tet-brand)}
.tet-opt.right{border-color:var(--tet-ok);background:var(--tet-ok-soft)}
.tet-opt.right .k{background:var(--tet-ok);color:#fff}
.tet-opt.wrong{border-color:var(--tet-bad);background:var(--tet-bad-soft)}
.tet-opt.wrong .k{background:var(--tet-bad);color:#fff}
.tet-opt:disabled{cursor:default}
.tet-verdict{margin:14px 0 8px;font-weight:700;font-size:1.05rem}
.tet-verdict.ok{color:var(--tet-ok)}.tet-verdict.bad{color:var(--tet-bad)}
.tet-fb{border-radius:10px;padding:10px 12px;margin-top:8px;font-size:.95rem}
.tet-fb h4{margin:0 0 2px;font-size:.85rem}
.tet-fb p{margin:0}
.fb-why{background:var(--tet-ok-soft)}.fb-why h4{color:var(--tet-ok)}
.fb-trap{background:var(--tet-bad-soft)}.fb-trap h4{color:var(--tet-bad)}
.fb-cls{background:var(--tet-blue-soft)}.fb-cls h4{color:var(--tet-blue)}
.fb-rem{background:var(--tet-gold-soft)}.fb-rem h4{color:var(--tet-gold)}
.tet-src{font-size:.75rem;color:var(--tet-muted);margin-top:8px}
.tet-score{text-align:center;padding:10px 0 4px}
.tet-score .big{font-size:3rem;font-weight:800;color:var(--tet-brand);line-height:1}
.tet-score p{margin:6px 0 0;color:var(--tet-muted)}
.tet-review{border-top:1px solid var(--tet-line);padding:12px 0}
.tet-review b{display:block;margin-bottom:4px}
.tet-review .ans{color:var(--tet-ok);font-weight:600}
.tet-review .mine{color:var(--tet-bad)}
.tet-modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:flex-end;justify-content:center;z-index:99999;padding:0}
.tet-modal{background:#fff;width:100%;max-width:520px;border-radius:18px 18px 0 0;padding:22px 18px 26px;max-height:92vh;overflow:auto;font-family:'Noto Sans Devanagari','Mukta',system-ui,sans-serif;color:var(--tet-ink)}
@media(min-width:600px){.tet-modal-bg{align-items:center}.tet-modal{border-radius:18px}}
.tet-modal *{box-sizing:border-box}
.tet-modal h3{margin:0 0 6px;font-size:1.2rem}
.tet-modal ul{padding-left:20px;margin:8px 0 14px}
.tet-modal li{margin:3px 0}
.tet-price{font-size:2rem;font-weight:800;color:var(--tet-brand)}
.tet-price s{font-size:1rem;color:var(--tet-muted);font-weight:400;margin-left:6px}
.tet-input{width:100%;font-size:1.1rem;padding:12px;border:1.5px solid var(--tet-line);border-radius:10px;margin:6px 0 4px;font-family:inherit;letter-spacing:1px}
.tet-input:focus{outline:none;border-color:var(--tet-brand)}
.tet-msg{font-size:.88rem;min-height:1.2em;margin:4px 0 10px}
.tet-msg.err{color:var(--tet-bad)}.tet-msg.ok{color:var(--tet-ok)}
.tet-link{background:none;border:0;color:var(--tet-blue);text-decoration:underline;padding:6px 0;font-size:.9rem}
.tet-note{font-size:.8rem;color:var(--tet-muted)}
.tet-banner{background:var(--tet-gold-soft);border:1px solid #efd98a;color:#5c4300;border-radius:12px;padding:12px;margin-bottom:14px;font-size:.92rem}
.tet-empty{text-align:center;color:var(--tet-muted);padding:20px}
.tet-hero{position:relative}
.tet-hero h1{padding-right:48px}
.tet-sound{border:0;border-radius:50%;width:40px;height:40px;font-size:1.15rem;line-height:1;background:rgba(255,255,255,.2);color:#fff;position:absolute;top:12px;right:12px;padding:0}
.tet-sound.inline{position:static;width:32px;height:32px;font-size:1rem;background:var(--tet-brand-soft);vertical-align:middle;margin-left:6px}
.tet-install{border-color:#efd98a;background:#fffaf0}
.tet-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:#ece8df;border-radius:12px;padding:4px;margin:0 0 14px}
.tet-tabs button{border:0;border-radius:9px;padding:10px 6px;font-size:.95rem;font-weight:600;background:transparent;color:var(--tet-muted);min-height:44px}
.tet-tabs button.on{background:#fff;color:var(--tet-brand);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.tet-subs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.tet-sub{position:relative;overflow:hidden;text-align:left;background:var(--tet-card);border:1.5px solid var(--tet-line);border-radius:12px;padding:10px 12px 14px;color:var(--tet-ink);min-width:0}
.tet-sub b{display:block;font-size:.95rem;line-height:1.35}
.tet-sub small{display:block;color:var(--tet-muted);font-size:.78rem}
.tet-sub i{position:absolute;left:0;bottom:0;height:4px;background:var(--tet-brand)}
.tet-sub.on{border-color:var(--tet-brand);background:var(--tet-brand-soft)}
@media(min-width:560px){.tet-subs{grid-template-columns:repeat(3,minmax(0,1fr))}}
.tet-mk-top{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:8px;background:#16325c;color:#fff;border-radius:10px;padding:8px 12px;margin-bottom:10px;font-weight:600;font-size:.92rem}
.tet-timer{font-variant-numeric:tabular-nums;background:rgba(255,255,255,.16);border-radius:8px;padding:3px 10px;font-size:1.05rem}
.tet-timer.low{background:#b3261e}
.tet-opt.sel{border-color:var(--tet-blue);background:var(--tet-blue-soft)}
.tet-opt.sel .k{background:var(--tet-blue);color:#fff}
.tet-chip.mk{background:#efe3fb;color:#6a2c9a}
.tet-mk-nav{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.tet-mk-nav .tet-btn{flex:1;min-width:0}
.tet-mk-nav .tet-link{flex:0 0 auto}
.pal-sec{font-weight:700;font-size:.85rem;color:var(--tet-muted);margin:12px 0 6px}
.tet-pal{display:grid;grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:6px}
.pal-b{border:1.5px solid var(--tet-line);background:#fff;border-radius:8px;height:38px;font-size:.85rem;font-weight:600;color:var(--tet-ink);font-family:inherit;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;min-width:28px;padding:0 4px}
.pal-b.ans{background:var(--tet-ok-soft);border-color:var(--tet-ok);color:var(--tet-ok)}
.pal-b.mk{background:#efe3fb;border-color:#6a2c9a;color:#6a2c9a}
.pal-b.cur{outline:2px solid var(--tet-blue);outline-offset:1px}
.pal-legend{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:.8rem;color:var(--tet-muted)}
.pal-legend .pal-b{height:24px;min-width:24px;font-size:.7rem;cursor:default}
.tet-res{width:100%;border-collapse:collapse;margin-top:8px;font-size:.92rem}
.tet-res td{padding:7px 4px;border-top:1px solid var(--tet-line);vertical-align:middle}
.tet-res td.num{white-space:nowrap;font-weight:700;text-align:right;width:64px}
.tet-res td.barc{width:38%}
.tet-res td.barc i{display:block;height:8px;border-radius:6px}
.tet-res td.barc i.ok{background:var(--tet-ok)}
.tet-res td.barc i.bad{background:var(--tet-bad)}
.tet-weak{margin:8px 0;padding-left:18px}
.tet-weak li{margin:4px 0}
.tet-weak span{color:var(--tet-bad);font-size:.85rem;margin-left:4px}
.tet-safe{margin-top:10px;font-size:.88rem;color:var(--tet-muted)}
.tet-safe summary{cursor:pointer;color:var(--tet-blue);font-weight:600;padding:4px 0}
.tet-safe p{margin:6px 0}
