*{box-sizing:border-box}.app button{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.next,.speak,.reveal,.confirm-btn,.ghost{padding-top:14px;padding-bottom:14px}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;background:#f4f6fb;color:#1f2430}.app{max-width:520px;margin:0 auto;padding:16px;min-height:100vh}.login{background:#fff;border-radius:16px;padding:28px 22px;box-shadow:0 4px 16px #00000014;margin-top:40px;text-align:center}.login h1{margin:0 0 8px;font-size:24px}.login p{color:#666;font-size:14px}.login input{width:100%;padding:13px;border:1px solid #e3e7ef;border-radius:12px;font-size:15px;margin:14px 0}.login button,.form button,.reveal,.next,.done button{padding:12px 20px;border:none;border-radius:12px;background:#4f7cff;color:#fff;cursor:pointer;font-size:15px}.login button:disabled{opacity:.6}.err{color:#ff3b30;font-size:13px}.topbar{display:flex;align-items:center;gap:10px;margin-bottom:14px}.topbar .back{border:none;background:#e9edf5;color:#333;padding:8px 12px;border-radius:10px;font-size:13px}.topbar .page-title{font-weight:700;font-size:16px}.topbar .who{margin-left:auto;color:#888;font-size:13px}.home{padding:8px 4px 24px}.home-hi{text-align:center;color:#888;font-size:13px;margin-bottom:4px}.home-title{text-align:center;font-size:26px;margin:4px 0 22px;letter-spacing:2px}.home-menu{display:flex;flex-direction:column;gap:12px}.home-btn{display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:#fff;border:1px solid #e9edf5;border-radius:16px;padding:18px;box-shadow:0 2px 10px #4f7cff0f;transition:transform .1s,box-shadow .15s,border-color .15s}.home-btn:active{transform:scale(.985);border-color:#4f7cff}.home-btn .ico{font-size:26px;line-height:1}.home-btn .txt{font-size:18px;font-weight:700;color:#1f2430}.home-btn .sub{margin-left:auto;font-size:12px;color:#9aa3b2;text-align:right}.home-btn.danger{border-color:#ffe0de}.home-btn.danger .txt{color:#d9483e}.panel section{background:#fff;border-radius:14px;padding:16px;margin-bottom:14px;box-shadow:0 2px 8px #0000000d}.panel h2{font-size:17px;margin:0 0 12px}.panel h3{font-size:15px;margin:0 0 10px}.grade-group{margin-bottom:12px}.grade-title{font-size:13px;color:#888;margin-bottom:6px}.tagcnt{margin-left:6px;font-size:11px;color:#9aa1ad;font-style:normal}.chips{display:flex;flex-wrap:wrap;gap:10px}.chip{padding:10px 16px;border:1px solid #e3e7ef;border-radius:12px;background:#fafbff;cursor:pointer;font-size:14px}.chip.on{background:#4f7cff;color:#fff;border-color:#4f7cff}.confirm-btn{width:100%;margin-top:10px;padding:13px;border:none;border-radius:12px;background:#34c759;color:#fff;cursor:pointer;font-size:15px;font-weight:600}.confirm-btn:active{transform:scale(.99)}.form{display:flex;flex-direction:column;gap:10px}.form input{padding:11px;border:1px solid #e3e7ef;border-radius:10px;font-size:14px}.tabs{display:flex;gap:8px;margin-bottom:12px}.tab{flex:1;padding:9px;border:1px solid #e3e7ef;border-radius:10px;background:#fafbff;cursor:pointer;font-size:13px}.tab.on{background:#4f7cff;color:#fff;border-color:#4f7cff}.form textarea{padding:11px;border:1px solid #e3e7ef;border-radius:10px;font-size:14px;min-height:96px;resize:vertical;font-family:inherit}.excel-row{display:flex;gap:10px}.ghost{flex:1;padding:11px;border:1px dashed #4f7cff;border-radius:10px;background:#fff;color:#4f7cff;cursor:pointer;font-size:13px;text-align:center}.filebtn{display:inline-flex;align-items:center;justify-content:center}.wordlist{display:flex;flex-direction:column;gap:8px;max-height:320px;overflow:auto}.witem{display:flex;align-items:baseline;gap:8px;font-size:14px;padding:8px;background:#fafbff;border-radius:8px}.witem .ph{color:#999;font-size:12px}.witem .mn{color:#444}.witem .src{margin-left:auto;color:#b0b6c0;font-size:11px;font-style:normal}.witem .del{border:none;background:transparent;cursor:pointer;font-size:15px;padding:2px 6px;border-radius:8px;line-height:1}.witem .del:active{background:#ffecea}.study-stats{font-size:13px;color:#666;margin-bottom:10px;text-align:center}.card-row{display:flex;gap:14px;align-items:stretch}.card{flex:1;background:#fff;border-radius:16px;padding:20px;box-shadow:0 4px 16px #00000014}.mode-switch{display:flex;gap:8px;margin-bottom:12px}.mode-switch button{flex:1;padding:9px;border:1px solid #e3e7ef;border-radius:10px;background:#fafbff;cursor:pointer;font-size:13px}.mode-switch button.on{background:#4f7cff;color:#fff;border-color:#4f7cff}.mode-switch button:disabled{cursor:default}.phase-line{text-align:center;font-size:13px;color:#4f7cff;font-weight:600;background:#eef2ff;border-radius:20px;padding:6px 12px;margin-bottom:10px}.phase-hint{display:block;font-weight:400;font-size:12px;color:#8a93a6;margin-top:2px}.phase-tip{text-align:center;font-size:13px;color:#1a7f37;background:#e8f9ed;border-radius:10px;padding:8px 10px;margin-bottom:10px}.progress-line{font-size:13px;color:#888;margin-bottom:10px}.word-big{text-align:center;font-size:30px;font-weight:700;margin:6px 0 12px;padding:18px;background:#f4f7ff;border-radius:12px}.word-big.clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.word-big.clickable:active{background:#e6ecff}.word-big.dark{color:#c2c8d4;letter-spacing:2px}.speak{font-size:16px;padding:14px;width:100%;border:none;border-radius:12px;background:#4f7cff;color:#fff;cursor:pointer}.speak:active{transform:scale(.98)}.reveal{width:100%;padding:12px;border:1px dashed #4f7cff;border-radius:12px;background:#fff;color:#4f7cff;cursor:pointer;font-size:14px;margin-top:12px}.meaning{text-align:center;font-size:18px;font-weight:600;margin-top:12px}.meaning .reveal-en{font-size:26px;font-weight:700;color:#4f7cff;margin-bottom:6px;letter-spacing:.5px}.example{text-align:center;font-size:13px;color:#888;margin:8px 0 12px}.actions{display:flex;gap:10px;margin-top:12px}.next{width:100%;margin-top:10px;background:#1f2430}.next.submit{background:#4f7cff;margin-top:0}.next.skip{background:#8a93a6;margin-top:0}.feedback{text-align:center;font-size:15px;color:#1a7f37;margin-top:12px}.feedback .next{margin-top:10px}.judge{display:flex;gap:14px;margin-top:16px}.judge-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 0;border-radius:14px;border:2px solid #e3e7ef;background:#fff;font-size:34px;line-height:1;cursor:pointer;transition:transform .1s,background .15s}.judge-btn span{font-size:13px;color:#666}.judge-btn:active{transform:scale(.96)}.judge-btn.ok{border-color:#34c759}.judge-btn.ok span{color:#1a7f37}.judge-btn.no{border-color:#ff3b30}.judge-btn.no span{color:#c0392b}.judge.flash-known .judge-btn.ok{background:#e8f9ed;transform:scale(.96)}.judge.flash-unknown .judge-btn.no{background:#ffecea;transform:scale(.96)}.judge-btn:disabled{opacity:.7}.bstats{display:flex;flex-wrap:wrap;gap:10px;font-size:14px;margin-bottom:14px}.bstats div{background:#fff;padding:10px 14px;border-radius:12px;box-shadow:0 2px 8px #0000000d}.bstats b{font-size:18px}.study-time-card{text-align:center;padding:8px 0}.study-time-card .st-label{font-size:13px;color:#888;margin-bottom:6px}.study-time-card .st-value{font-size:34px;font-weight:800;color:#4f7cff;letter-spacing:1px;line-height:1.1}.study-time-card .st-sub{font-size:13px;color:#9aa3b2;margin-top:6px}.tags{display:flex;flex-wrap:wrap;gap:8px}.tag{background:#eef2ff;color:#3a5bd9;padding:6px 12px;border-radius:20px;font-size:13px}.done{text-align:center;background:#fff;border-radius:16px;padding:32px 20px;box-shadow:0 4px 16px #00000014}.hint,.muted{color:#888;font-size:13px}.photo-import{display:flex;flex-direction:column;gap:12px}.photo-btn{display:block;text-align:center;padding:26px 16px;border:2px dashed #4f7cff;border-radius:14px;background:#f7f9ff;color:#4f7cff;font-size:17px;font-weight:700;cursor:pointer}.photo-btn:active{background:#eef2ff}.ocr-preview{width:100%;max-height:260px;object-fit:contain;border-radius:12px;background:#f4f6fb}.ocr-progress .bar{height:10px;background:#e9edf5;border-radius:6px;overflow:hidden}.ocr-progress .fill{height:100%;background:#4f7cff;transition:width .2s}.ocr-progress .ptxt{text-align:center;font-size:13px;color:#4f7cff;margin-top:8px}.ocr-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.ocr-actions{display:flex;gap:8px}.ocr-actions .mini{flex:1;padding:8px;border:1px solid #e3e7ef;border-radius:10px;background:#fafbff;font-size:13px;color:#555}.ocr-list{display:flex;flex-direction:column;gap:8px;max-height:340px;overflow-y:auto}.ocr-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid #e9edf5;border-radius:10px;background:#fff}.ocr-item.on{border-color:#4f7cff;background:#f7f9ff}.ocr-item .ck{border:none;background:transparent;font-size:18px;padding:0 2px;line-height:1}.ocr-item input{flex:1;border:none;background:transparent;font-size:15px;font-weight:600;color:#1f2430;outline:none}.ocr-item .del{border:none;background:transparent;color:#ff3b30;font-size:14px;padding:2px 4px}.ocr-foot{display:flex;flex-direction:column;gap:8px}
