:root{--ink: #14364F;--ink-deep: #00304F;--ink-2: #4C6A82;--ink-3: #7F97A9;--bg: #EFF3F6;--surface: #FFFFFF;--line: #E1E8ED;--line-2: #D2DCE3;--navy: #00437C;--navy-deep: #00305A;--sky: #4FB4E0;--sky-soft: #E9F5FB;--red: #C8102E;--red-flat: #B00E29;--green: #1F7A4D;--amber: #A06B00;--gray: #77828C;--r: 4px;--shadow: none;--font: -apple-system, BlinkMacSystemFont, "PingFang SC", "HarmonyOS Sans SC", "MiSans", "Source Han Sans SC", "Noto Sans SC", "Microsoft YaHei", sans-serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font);background:var(--bg);color:var(--ink);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}.appbar{position:sticky;top:0;z-index:10;background:var(--ink-deep);color:#fff;padding:max(10px,env(safe-area-inset-top)) 14px 10px;display:flex;align-items:center;gap:9px}.appbar .mark{width:8px;height:8px;background:var(--sky);flex:none}.appbar .title{font-size:16.5px;font-weight:600;letter-spacing:.03em;cursor:pointer}.appbar .spacer{flex:1}.appbar .action{font-size:13.5px;color:#fff;cursor:pointer;padding:6px 2px;border-bottom:1px solid rgba(255,255,255,.45)}.appbar .user{font-size:12.5px;color:#ffffffa8}.appbar .user b{color:#fff;font-weight:500}.wrap{max-width:480px;margin:0 auto;padding-bottom:calc(40px + env(safe-area-inset-bottom));min-height:calc(100vh - 52px)}@media(min-width:481px){.appbar,.wrap{max-width:480px}.wrap{border-left:1px solid var(--line-2);border-right:1px solid var(--line-2)}}.group{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:10px 0}.group-title{font-size:12px;color:var(--ink-3);letter-spacing:.05em;padding:12px 16px 4px}.seg{display:flex;background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.seg button{flex:1;border:none;background:none;font-family:inherit;font-size:13.5px;color:var(--ink-2);padding:11px 0;cursor:pointer;border-right:1px solid var(--line)}.seg button:last-child{border-right:none}.seg button.on{color:var(--ink);font-weight:600;box-shadow:inset 0 -2px 0 var(--sky)}.row-item{display:flex;align-items:center;gap:10px;padding:13px 16px;background:var(--surface);cursor:pointer;border-bottom:1px solid var(--line)}.row-item:active{background:#f4f5f6}.row-item .body{flex:1;min-width:0}.row-item .t1{font-size:15px;color:var(--ink);display:flex;gap:8px;align-items:baseline}.row-item .t1 .num{color:var(--ink-3);font-size:12.5px;font-variant-numeric:tabular-nums}.row-item .t2{font-size:12.5px;color:var(--ink-2);margin-top:2px}.row-item .t3{font-size:12px;color:var(--ink-3);margin-top:2px}.row-item .side{flex:none;text-align:right}.row-item .chev{color:var(--line-2);font-size:16px;flex:none}.st{font-size:13px;font-weight:500;white-space:nowrap}.st.going{color:var(--navy)}.st.done{color:var(--green)}.st.warn{color:var(--amber)}.st.bad{color:var(--red)}.st.gray{color:var(--gray)}.card{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:10px 0;padding:16px}.card h1{font-size:16.5px;font-weight:600;margin:0 0 4px}.card h2{font-size:12px;font-weight:600;letter-spacing:.08em;color:var(--ink-3);margin:16px 0 6px}p{font-size:14px;color:var(--ink-2);margin:5px 0}b{color:var(--ink);font-weight:600}.kv{display:grid;grid-template-columns:88px 1fr;gap:8px 12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px;align-items:baseline}.kv:last-child{border-bottom:none}.kv .k{color:var(--ink-3)}.kv .v{color:var(--ink);font-variant-numeric:tabular-nums;word-break:break-all}.stepper{display:flex;margin:14px 0 2px}.step{flex:1;text-align:center;position:relative}.step:before{content:"";position:absolute;top:7px;left:-50%;width:100%;height:2px;background:var(--line)}.step:first-child:before{display:none}.step.done:before{background:var(--green)}.step.current:before{background:var(--green)}.step .dot{width:15px;height:15px;border-radius:50%;background:var(--surface);border:2px solid var(--line-2);margin:0 auto 5px;position:relative;z-index:1;display:flex;align-items:center;justify-content:center;font-size:9px;color:#fff;box-sizing:border-box}.step.done .dot{background:var(--green);border-color:var(--green)}.step.current .dot{border-color:var(--sky)}.step.current .dot:after{content:"";width:6px;height:6px;background:var(--sky)}.step .lbl{font-size:10.5px;color:var(--ink-3)}.step.done .lbl,.step.current .lbl{color:var(--ink);font-weight:500}label{display:block;font-size:13px;color:var(--ink-2);margin:14px 16px 6px}.wrap label,.card label{margin-left:0;margin-right:0}input[type=text],input[type=date],input[type=search],input[type=number],input[type=datetime-local],textarea,select{width:100%;padding:11px 12px;border:1px solid var(--line-2);border-radius:var(--r);font-size:15px;font-family:inherit;background:#fff;color:var(--ink);min-height:44px}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy)}textarea{min-height:88px;resize:vertical;line-height:1.6}.choice{display:flex;align-items:center;gap:9px;padding:12px 16px;background:var(--surface);cursor:pointer;border-bottom:1px solid var(--line);font-size:14.5px;color:var(--ink)}.choice input{accent-color:var(--navy);margin:0;flex:none;width:17px;height:17px}.choice.checked{color:var(--ink);font-weight:500}.choice.checked input{accent-color:var(--navy)}.chips{display:flex;flex-wrap:wrap;gap:8px;padding:2px 0 4px}.chip-opt{padding:8px 13px;font-size:13.5px;cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--surface);border:1px solid var(--line-2);color:var(--ink)}.chip-opt input{display:none}.chip-opt.checked{background:var(--navy);border-color:var(--navy);color:#fff}.topic-group .cat{font-size:12px;color:var(--ink-3);margin:12px 0 6px}.wrap .topic-group .cat,.card .topic-group .cat{margin-left:0}.btn{display:block;width:100%;padding:13px;border:none;border-radius:var(--r);background:var(--navy);color:#fff;font-size:15px;font-weight:500;cursor:pointer;margin-top:14px;font-family:inherit;letter-spacing:.04em}.btn:active{background:var(--navy-deep)}.btn.secondary{background:#fff;color:var(--ink);border:1px solid var(--line-2)}.btn.secondary:active{background:#f4f5f6}.btn.danger{background:var(--red)}.btn.danger:active{background:var(--red-flat)}.btn.ghost-danger{background:#fff;color:var(--red);border:1px solid #E3BCC2}.btn.inline{display:inline-block;width:auto;padding:8px 16px;margin:0;font-size:13px}.btn:disabled{opacity:.4}.row{display:flex;gap:8px}.row>*{flex:1}.muted{color:var(--ink-3);font-size:12.5px}.err{color:var(--red);font-size:13.5px;margin:8px 0}.ok{color:var(--green);font-size:13.5px;margin:8px 0}.soon{min-height:calc(100vh - 52px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 28px;background:var(--surface)}.soon .glyph{width:36px;height:36px;background:var(--navy);position:relative;margin-bottom:24px}.soon .glyph:after{content:"";position:absolute;right:-5px;bottom:-5px;width:12px;height:12px;background:var(--sky)}.soon h1{font-size:19px;letter-spacing:.12em;margin-bottom:6px}.soon p{max-width:250px;color:var(--ink-2)}.soon .en{font-size:11px;letter-spacing:.28em;color:var(--ink-3);margin-bottom:16px;text-transform:uppercase}.empty{text-align:center;color:var(--ink-3);padding:48px 0;background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.loading{text-align:center;color:var(--ink-3);padding:40px 0}
