:root{--bg:#f4f9f5;--surface:#fff;--green-deep:#14532d;--green-mid:#1b8a4e;--green-soft:#dcefe2;--green-pale:#eaf5ee;--green-line:#c8e3d2;--amber:#d97706;--amber-soft:#fef3c7;--red-soft:#fee2e2;--red:#b91c1c;--ink:#1d2b22;--ink-soft:#5b6b60;--radius:18px;--radius-sm:12px;--shadow:0 2px 12px #14532d14;--shadow-lg:0 6px 24px #14532d24;font-family:Noto Sans JP,Hiragino Sans,Yu Gothic UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{color:var(--ink);background:linear-gradient(160deg,#e8f3ec 0%,#f4f9f5 40%);margin:0;padding:0;font-size:16px;line-height:1.55}#root{justify-content:center;min-height:100vh;display:flex}.app-shell{background:var(--bg);flex-direction:column;width:100%;max-width:430px;min-height:100vh;display:flex;position:relative;box-shadow:0 0 40px #0000000f}.app-shell.shell-teacher{max-width:1080px}.btn{border-radius:var(--radius-sm);cursor:pointer;border:none;padding:12px 20px;font-family:inherit;font-size:15px;font-weight:600;transition:transform 60ms,box-shadow .15s}.btn:active{transform:scale(.98)}.btn-primary{background:linear-gradient(135deg, var(--green-mid), var(--green-deep));color:#fff;box-shadow:var(--shadow)}.btn-primary:disabled{opacity:.4;cursor:default}.btn-soft{background:var(--green-soft);color:var(--green-deep)}.btn-ghost{color:var(--green-deep);border:1.5px solid var(--green-line);background:0 0}.btn-danger{background:var(--red-soft);color:var(--red)}.btn-big{border-radius:16px;width:100%;padding:17px 24px;font-size:17px}.btn-sm{padding:6px 12px;font-size:13px}.link-btn{color:var(--green-mid);cursor:pointer;background:0 0;border:none;padding:8px;font-family:inherit;font-size:14px;font-weight:600}.icon-btn{border:1.5px solid var(--green-line);background:var(--surface);width:40px;height:40px;color:var(--green-deep);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;display:flex}.chip{white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-block}.chip-small{padding:2px 8px;font-size:11px}.chip-kuasai{background:var(--green-deep);color:#fff}.chip-belajar{background:var(--green-soft);color:var(--green-deep)}.chip-reviu{background:var(--amber-soft);color:var(--amber)}.chip-belum{color:var(--ink-soft);background:#eef1ee}.cat-chip{background:var(--green-pale);color:var(--green-deep);border:1px solid var(--green-line)}.cat-listening{color:#1d4ed8;background:#e8f0fe;border-color:#c7dbfe}.section-label{color:var(--ink-soft);letter-spacing:.02em;margin:20px 4px 8px;font-size:13px;font-weight:700}.screen{flex:1;padding:20px 20px 110px}ruby rt{color:var(--ink-soft);font-size:.5em;font-weight:400}.today-header{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.today-greet{font-size:22px;font-weight:800}.today-date{color:var(--ink-soft);margin-top:2px;font-size:13px}.today-actions{align-items:center;gap:10px;display:flex}.streak-badge{background:var(--amber-soft);color:var(--amber);border-radius:999px;align-items:baseline;gap:3px;padding:6px 14px;font-size:17px;font-weight:800;display:flex}.streak-flame{font-size:15px}.streak-unit{font-size:11px;font-weight:600}.avatar-btn{border:2px solid var(--green-line);background:var(--green-soft);width:40px;height:40px;color:var(--green-deep);cursor:pointer;border-radius:50%;font-size:16px;font-weight:800}.resume-card{background:var(--amber-soft);color:#92400e;border-radius:var(--radius-sm);cursor:pointer;text-align:left;border:1.5px solid #f3ddb0;align-items:center;gap:8px;width:100%;margin-bottom:14px;padding:13px 16px;font-family:inherit;font-size:14px;display:flex}.resume-cta{margin-left:auto;font-weight:800}.teacher-note{background:var(--surface);border:1.5px solid var(--green-line);border-radius:var(--radius-sm);box-shadow:var(--shadow);gap:12px;margin-bottom:16px;padding:13px 16px;display:flex}.teacher-note-icon{font-size:20px}.teacher-note-label{color:var(--green-mid);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:700}.teacher-note-body{margin-top:2px;font-size:14px}.task-card{border-radius:var(--radius);cursor:pointer;background:var(--surface);border:1.5px solid var(--green-line);box-shadow:var(--shadow);margin-bottom:14px;padding:20px;transition:transform 80ms}.task-card:active{transform:scale(.99)}.task-primary{border:2px solid var(--green-mid);box-shadow:var(--shadow-lg);background:linear-gradient(160deg, #fff 55%, var(--green-pale))}.task-secondary{padding:15px 18px}.task-top{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.task-badge{border-radius:999px;padding:4px 12px;font-size:12px;font-weight:800}.badge-initial{background:var(--green-deep);color:#fff}.badge-review{background:var(--amber-soft);color:var(--amber)}.badge-confirm{color:#1d4ed8;background:#e8f0fe}.task-lesson{color:var(--ink-soft);font-size:12px;font-weight:600}.task-title{font-size:20px;font-weight:800;line-height:1.35}.task-secondary .task-title{font-size:16px}.task-sub-ja{color:var(--ink-soft);margin-top:2px;font-size:13px}.task-sub{color:var(--ink-soft);margin:8px 0 14px;font-size:13px}.task-cta{margin-top:4px}.task-mini-score{color:var(--ink-soft);margin-top:6px;font-size:12px}.task-secondary-wrap{margin-top:8px}.done-card{background:var(--surface);border:2px solid var(--green-line);border-radius:var(--radius);text-align:center;box-shadow:var(--shadow);padding:36px 24px}.done-emoji{font-size:52px}.done-title{margin:12px 0 6px;font-size:19px;font-weight:800}.done-sub{color:var(--ink-soft);margin-bottom:18px;font-size:14px}.teacher-switch-hint{text-align:center;margin-top:18px}.test-screen{padding-top:12px}.test-header{align-items:center;gap:12px;margin-bottom:14px;display:flex}.test-progress{flex-direction:column;flex:1;gap:6px;display:flex}.progress-dots{gap:5px;display:flex}.dot{background:var(--green-line);border-radius:3px;flex:1;height:6px;transition:background .2s}.dot-done{background:var(--green-mid)}.test-count{color:var(--ink-soft);font-size:12px;font-weight:600}.test-mode-label{color:var(--green-mid);white-space:nowrap;font-size:12px;font-weight:700}.q-instruction{align-items:center;gap:10px;margin-bottom:10px;display:flex}.q-instruction-text{color:var(--ink-soft);font-size:14px;font-weight:600}.q-card{background:var(--surface);border-radius:var(--radius);border:1.5px solid var(--green-line);box-shadow:var(--shadow);padding:22px 18px}.q-shake{animation:.4s shake}@keyframes shake{20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.q-prompt{border-bottom:1.5px dashed var(--green-line);margin-bottom:16px;padding:14px 2px 18px;font-size:24px;font-weight:700;line-height:1.6}.q-prompt-listening{color:#0000;-webkit-user-select:none;user-select:none;border-bottom:none;margin-bottom:0;padding:4px 2px 8px;font-size:14px;font-weight:400}.q-prompt-listening ruby,.q-prompt-listening ruby rt{color:#0000}.audio-btn{color:#1d4ed8;cursor:pointer;background:#e8f0fe;border:2px solid #c7dbfe;border-radius:14px;justify-content:center;align-items:center;gap:10px;width:100%;margin-bottom:6px;padding:16px;font-family:inherit;font-size:16px;font-weight:700;display:flex}.audio-playing{animation:1s ease-in-out infinite pulse}@keyframes pulse{50%{transform:scale(1.02)}}.audio-icon{font-size:22px}.choices{flex-direction:column;gap:11px;display:flex}.choice{text-align:left;background:var(--green-pale);width:100%;color:var(--ink);cursor:pointer;border:2px solid #0000;border-radius:14px;align-items:center;gap:12px;padding:15px 16px;font-family:inherit;font-size:17px;transition:border-color .12s,background .12s;display:flex}.choice:active{transform:scale(.985)}.choice-selected{border-color:var(--green-mid);background:var(--green-soft);font-weight:700}.choice-key{width:28px;height:28px;color:var(--green-deep);border:1.5px solid var(--green-line);background:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:800;display:flex}.choice-text{flex:1}.choice-correct{border-color:var(--green-mid);background:var(--green-soft);font-weight:700}.choice-wrong{border-color:var(--red);background:var(--red-soft)}.choice-mark{color:var(--green-mid);font-weight:800}.test-footer{margin-top:18px}.test-hint{text-align:center;color:var(--ink-soft);margin-top:12px;font-size:12px}.feedback-box{background:var(--green-pale);border-radius:14px;margin-top:16px;padding:16px}.feedback-title{color:var(--green-deep);margin-bottom:6px;font-weight:800}.feedback-exp{margin-bottom:14px;font-size:14px}.result-screen{padding-top:28px}.result-head{text-align:center;margin-bottom:10px}.result-mode{color:var(--green-mid);text-transform:uppercase;letter-spacing:.06em;font-size:13px;font-weight:700}.result-lesson{font-size:21px;font-weight:800}.result-center{flex-direction:column;align-items:center;margin-bottom:10px;display:flex}.score-ring{position:relative}.score-ring-inner{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.score-ring-num{color:var(--green-deep);font-size:34px;font-weight:800}.score-ring-num span{color:var(--ink-soft);font-size:18px;font-weight:600}.score-ring-label{color:var(--ink-soft);font-size:13px;font-weight:700}.result-message{margin-top:10px;font-size:18px;font-weight:800}.result-transparent-note{color:var(--ink-soft);background:var(--surface);border:1px solid var(--green-line);border-radius:10px;max-width:340px;margin-top:12px;padding:8px 12px;font-size:12px}.result-cats{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:14px;display:flex}.cat-summary{border-radius:999px;padding:5px 12px;font-size:12px;font-weight:700}.cat-ok{background:var(--green-soft);color:var(--green-deep)}.cat-miss{background:var(--amber-soft);color:var(--amber)}.result-list{flex-direction:column;gap:9px;margin-top:14px;display:flex}.result-row{border-radius:var(--radius-sm);border:1.5px solid var(--green-line);background:var(--surface);overflow:hidden}.row-ok{border-color:var(--green-line)}.row-miss{border-color:#f3caca}.result-row-head{width:100%;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:12px;padding:13px 15px;font-family:inherit;font-size:15px;display:flex}.row-mark{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:17px;font-weight:800;display:flex}.row-ok .row-mark{background:var(--green-soft);color:var(--green-deep)}.row-miss .row-mark{background:var(--red-soft);color:var(--red)}.row-prompt{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.row-why{color:var(--amber);flex-shrink:0;font-size:12px;font-weight:800}.result-row-detail{border-top:1px dashed var(--green-line);background:var(--green-pale);flex-direction:column;gap:7px;padding:12px 15px;display:flex}.detail-line{font-size:14px}.detail-label{color:var(--ink-soft);vertical-align:top;width:110px;font-size:11px;font-weight:800;display:inline-block}.detail-wrong{color:var(--red)}.detail-exp{line-height:1.6}.result-actions{margin-top:20px}.materi-header,.progres-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.screen-title{font-size:24px;font-weight:800}.screen-sub{color:var(--ink-soft);font-size:13px}.lesson-group{margin-bottom:10px}.lesson-list{flex-direction:column;gap:8px;display:flex}.lesson-row{background:var(--surface);border:1.5px solid var(--green-line);cursor:pointer;text-align:left;width:100%;color:var(--ink);border-radius:14px;align-items:center;gap:12px;padding:12px 14px;font-family:inherit;display:flex}.lesson-row:active{transform:scale(.99)}.lesson-empty{opacity:.55}.lesson-num{color:var(--green-mid);flex-shrink:0;width:30px;font-size:15px;font-weight:800}.lesson-info{flex-direction:column;flex:1;min-width:0;display:flex}.lesson-title{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:700;overflow:hidden}.lesson-title-id{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.lesson-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.lesson-score{color:var(--green-deep);font-size:13px;font-weight:700}.rules-list{flex-direction:column;gap:12px;margin:10px 0 14px;display:flex}.rule-row{align-items:flex-start;gap:12px;display:flex}.rule-body{flex:1}.rule-ja{font-size:13px;font-weight:700}.rule-text{color:var(--ink-soft);font-size:12px}.rules-note{color:var(--ink-soft);background:var(--green-pale);border-radius:10px;padding:10px 12px;font-size:12px}.detail-header{align-items:center;gap:12px;margin-bottom:14px;display:flex}.detail-lesson-num{color:var(--ink-soft);flex:1;font-size:13px;font-weight:700}.detail-title-block{margin-bottom:6px}.detail-title{font-size:23px;font-weight:800;line-height:1.4}.detail-title-id{color:var(--ink-soft);font-size:14px}.detail-section{margin-top:10px}.pattern-list{background:var(--surface);border:1.5px solid var(--green-line);border-radius:14px;flex-direction:column;gap:6px;padding:14px 16px;display:flex}.pattern-row{font-size:15px;font-weight:600}.vocab-themes{color:var(--ink-soft);padding:0 4px;font-size:13px}.score-history{flex-direction:column;gap:6px;display:flex}.history-row{background:var(--surface);border:1.5px solid var(--green-line);border-radius:10px;align-items:center;gap:10px;padding:9px 13px;font-size:14px;display:flex}.hist-mode{color:var(--ink-soft);width:80px;font-size:12px;font-weight:700}.hist-score{color:var(--green-deep);flex:1;font-weight:800}.hist-date{color:var(--ink-soft);font-size:12px}.hist-initial .hist-mode{color:var(--green-deep)}.no-score{color:var(--ink-soft);padding:10px 4px;font-size:13px}.detail-actions{flex-direction:column;gap:10px;margin-top:22px;display:flex}.stat-cards{grid-template-columns:1fr 1fr 1fr;gap:9px;margin:16px 0 6px;display:grid}.stat-card{background:var(--surface);border:1.5px solid var(--green-line);text-align:center;border-radius:14px;padding:14px 8px}.stat-num{color:var(--green-deep);font-size:19px;font-weight:800}.stat-label{color:var(--ink-soft);margin-top:3px;font-size:11px}.cal28{background:var(--surface);border:1.5px solid var(--green-line);border-radius:14px;grid-template-columns:repeat(14,1fr);gap:5px;padding:14px;display:grid}.cal-cell{aspect-ratio:1;background:#eef1ee;border-radius:5px}.cal-done{background:var(--green-mid)}.gradebook{flex-direction:column;gap:7px;display:flex}.grade-row{background:var(--surface);border:1.5px solid var(--green-line);cursor:pointer;text-align:left;color:var(--ink);border-radius:12px;align-items:center;gap:10px;width:100%;padding:10px 13px;font-family:inherit;display:flex}.grade-title{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:14px;font-weight:600;overflow:hidden}.grade-scores{gap:5px;display:flex}.grade-pill{border-radius:999px;padding:4px 9px;font-size:12px;font-weight:800}.pill-ok{background:var(--green-soft);color:var(--green-deep)}.pill-low{background:var(--amber-soft);color:var(--amber)}.practice-log{flex-direction:column;gap:5px;display:flex}.practice-row{background:var(--surface);border:1px solid var(--green-line);border-radius:10px;align-items:center;gap:10px;padding:8px 12px;font-size:13px;display:flex}.practice-kind{color:var(--ink-soft);flex:1;font-weight:600}.teacher-screen{flex:1;padding:24px}.teacher-header{align-items:center;gap:14px;margin-bottom:16px;display:flex}.teacher-title{flex:1;font-size:20px;font-weight:800}.teacher-sub{color:var(--ink-soft);font-size:12px}.teacher-tabs{gap:8px;margin-bottom:18px;display:flex}.teacher-tab{border:1.5px solid var(--green-line);background:var(--surface);color:var(--ink-soft);cursor:pointer;border-radius:999px;padding:8px 20px;font-family:inherit;font-size:14px;font-weight:700}.tab-on{background:var(--green-deep);color:#fff;border-color:var(--green-deep)}.teacher-body{flex-direction:column;gap:18px;display:flex}.teacher-cards{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.tcard{background:var(--surface);border:1.5px solid var(--green-line);text-align:center;border-radius:14px;padding:16px}.tcard-num{color:var(--green-deep);font-size:24px;font-weight:800}.tcard-label{color:var(--ink-soft);margin-top:4px;font-size:12px}.tsection{background:var(--surface);border:1.5px solid var(--green-line);border-radius:16px;padding:18px}.tsection-title{margin-bottom:12px;font-size:15px;font-weight:800}.ttable-wrap{overflow-x:auto}.ttable{border-collapse:collapse;width:100%;font-size:14px}.ttable th{text-align:center;color:var(--ink-soft);border-bottom:2px solid var(--green-line);white-space:nowrap;padding:7px;font-size:12px}.ttable td{text-align:center;border-bottom:1px solid var(--green-pale);padding:9px 7px;font-weight:600}.td-name{white-space:nowrap;text-align:left!important}.td-ok{color:var(--green-deep)}.td-low{color:var(--amber);font-weight:800}.tbadge{white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:800}.tbadge-done{background:var(--green-soft);color:var(--green-deep)}.tbadge-todo{background:var(--red-soft);color:var(--red)}.tbadge-rev{background:var(--amber-soft);color:var(--amber)}.tnote{color:var(--ink-soft);margin-top:10px;font-size:12px}.wrong-list{flex-direction:column;gap:8px;display:flex}.wrong-row{background:var(--green-pale);border-radius:10px;align-items:center;gap:12px;padding:10px 13px;font-size:14px;display:flex}.wrong-n{color:var(--amber);white-space:nowrap;font-weight:800}.wrong-q{flex:1}.assign-row{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;font-size:14px;display:flex}.assign-row select{border:1.5px solid var(--green-line);border-radius:8px;padding:8px 10px;font-family:inherit;font-size:14px}.assign-row input[type=number]{border:1.5px solid var(--green-line);border-radius:8px;width:64px;padding:8px;font-family:inherit;font-size:14px}.tnote-area{border:1.5px solid var(--green-line);resize:vertical;border-radius:10px;width:100%;min-height:76px;margin-bottom:12px;padding:10px 12px;font-family:inherit;font-size:14px}.sheet-backdrop{z-index:50;background:#142b2266;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);border-radius:22px 22px 0 0;width:100%;max-width:430px;max-height:78vh;padding:22px 20px 30px;animation:.22s slideup;overflow-y:auto}@keyframes slideup{0%{opacity:.6;transform:translateY(40px)}}.sheet-title{margin-bottom:14px;font-size:17px;font-weight:800}.sheet-close{width:100%;margin-top:14px}.dialog{background:var(--surface);border-radius:20px;align-self:center;width:calc(100% - 48px);max-width:340px;padding:22px;animation:.18s slideup}.dialog-title{margin-bottom:8px;font-size:17px;font-weight:800}.dialog-body{color:var(--ink-soft);margin-bottom:18px;font-size:14px}.dialog-actions{gap:10px;display:flex}.dialog-actions .btn{flex:1}.menu-list{flex-direction:column;gap:10px;display:flex}.menu-row{border-bottom:1px solid var(--green-pale);justify-content:space-between;padding:10px 4px;font-size:14px;display:flex}.menu-demo-note{color:var(--amber);background:var(--amber-soft);border-bottom:none;border-radius:8px;padding:9px 12px;font-size:12px}.menu-lang{align-items:center}.lang-toggle{gap:6px;display:inline-flex}.lang-btn{border:1.5px solid var(--green-line);background:var(--surface);color:var(--ink-soft);cursor:pointer;border-radius:999px;padding:6px 14px;font-family:inherit;font-size:13px;font-weight:700}.lang-on{background:var(--green-deep);color:#fff;border-color:var(--green-deep)}.jlpt-section{background:var(--surface);border:1.5px solid var(--green-line);border-radius:var(--radius);box-shadow:var(--shadow);margin-top:16px;padding:16px}.jlpt-head{justify-content:space-between;align-items:center;display:flex;margin:0 0 12px!important}.band-wrap{margin-bottom:14px}.band-cells{gap:2px;display:flex}.band-cell{border-radius:3px;flex:1;min-width:4px;height:14px}.band-kuasai{background:var(--green-mid)}.band-belajar{background:var(--green-soft)}.band-reviu{background:var(--amber-soft)}.band-belum{background:#eef1ee}.band-labels{height:16px;color:var(--ink-soft);margin-top:3px;font-size:10px;font-weight:700;position:relative}.band-mark{position:absolute}.band-mid{transform:translate(-50%)}.band-right{right:0}.band-legend{color:var(--ink-soft);flex-wrap:wrap;gap:10px;margin-top:4px;font-size:11px;display:flex}.legend-item{align-items:center;gap:4px;display:inline-flex}.legend-item .band-cell{flex:none;width:12px;height:10px}.jlpt-cards{grid-template-columns:1fr 1fr;gap:10px;display:grid}.jlpt-card{background:var(--green-pale);text-align:center;border-radius:14px;padding:14px}.jlpt-card-level{color:var(--green-deep);font-size:15px;font-weight:800}.jlpt-bar{background:#fff;border-radius:5px;height:10px;margin:8px 0 6px;overflow:hidden}.jlpt-bar-fill{border-radius:5px;height:100%;transition:width .4s}.jlpt-pct{font-size:24px;font-weight:800}.jlpt-sub{color:var(--ink-soft);margin-top:2px;font-size:11px}.jlpt-eta{color:var(--ink-soft);margin-top:6px;font-size:12px;font-weight:700}.jlpt-pace{color:var(--ink-soft);margin-top:12px;font-size:12px;line-height:1.6}.jlpt-caveat{color:var(--ink-soft);background:var(--amber-soft);border-radius:10px;margin-top:12px;padding:10px 12px;font-size:11.5px;line-height:1.6}.jlpt-caveat .link-btn{padding:0 4px;font-size:11.5px;display:inline}.criteria-card{background:var(--green-pale);border-radius:12px;margin-bottom:10px;padding:13px 15px}.criteria-head{margin-bottom:8px;font-size:13px}.criteria-rows{flex-direction:column;gap:5px;display:flex}.criteria-row{justify-content:space-between;font-size:13px;display:flex}.criteria-row b{color:var(--green-deep)}.target-card{background:var(--surface);border:1.5px solid var(--green-line);border-radius:var(--radius-sm);cursor:pointer;text-align:left;width:100%;box-shadow:var(--shadow);align-items:center;gap:10px;margin-bottom:16px;padding:12px 16px;font-family:inherit;display:flex}.target-card:active{transform:scale(.99)}.target-badge{color:var(--green-deep);background:var(--green-soft);border-radius:8px;flex-shrink:0;padding:4px 9px;font-size:13px;font-weight:800}.target-bar{background:var(--green-pale);border-radius:4px;flex:1;height:8px;overflow:hidden}.target-bar-fill{background:linear-gradient(90deg, var(--green-mid), var(--green-deep));border-radius:4px;height:100%;display:block}.target-pct{color:var(--green-deep);flex-shrink:0;font-size:14px;font-weight:800}.target-sub{color:var(--ink-soft);flex-basis:100%;order:5;font-size:11px}.target-card{flex-wrap:wrap}.target-bar,.target-badge,.target-pct{order:1}.target-card .target-bar{order:2}.tab-bar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1.5px solid var(--green-line);width:100%;max-width:430px;padding:8px 10px calc(10px + env(safe-area-inset-bottom));z-index:40;background:#fffffff0;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tab{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:6px 0;font-family:inherit;font-size:11px;font-weight:700;display:flex}.tab-icon{font-size:21px}.tab-active{color:var(--green-deep);background:var(--green-pale)}@media (width>=700px){.app-shell{border-radius:0}}
