:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--navy:#1e3a5f;--navy-light:#2a4d7a;--amber:#f59e0b;--amber-ink:#8a5300;--bg:#f4f6f8;--card:#fff;--field-bg:#fff;--surface-2:#f8fafc;--text:#1f2937;--text-muted:#5f6775;--heading:#1e3a5f;--border:#dfe3e8;--border-strong:#c3cad3;--row-hover:#f0f4f8;--link:#2a4d7a;--danger:#c62828;--danger-soft:#fdecec;--success:#047857;--success-soft:#e6f4ee;--focus-border:#2a4d7a;--focus-ring:#2a4d7a2e;--chip:#e8eef6;--meter:#2a4d7a;--shadow-card:0 1px 2px #0f1e320f, 0 8px 24px #0f1e3214;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--amber-ink:#fbbf24;--bg:#0f141c;--card:#1a212e;--field-bg:#141b27;--surface-2:#202837;--text:#e5e7eb;--text-muted:#9aa6b6;--heading:#d6e4f7;--border:#2d3748;--border-strong:#435066;--row-hover:#253044;--link:#93c5fd;--danger:#f87171;--danger-soft:#3a1c1f;--success:#34d399;--success-soft:#12302a;--focus-border:#5b8cc9;--focus-ring:#93c5fd40;--chip:#253044;--meter:#5b8cc9;--shadow-card:0 1px 2px #0000004d, 0 8px 24px #00000047}*{box-sizing:border-box}html{background:var(--bg);min-width:320px}html,body{min-height:100%;margin:0}body{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;font-size:15px;line-height:1.5}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}img{display:block}h1,h2,p{margin:0}::selection{background:#2a4d7a38}html[data-theme=dark] ::selection{background:#93c5fd4d}input,textarea{caret-color:var(--navy-light)}html[data-theme=dark] input,html[data-theme=dark] textarea{caret-color:#93c5fd}:focus-visible{outline:2px solid var(--focus-border);outline-offset:2px}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}a{color:var(--link);text-underline-offset:3px}.num,.fmeta,.cap,.count{font-variant-numeric:tabular-nums}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.sprite{width:0;height:0;position:absolute;overflow:hidden}.ic{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:20px;height:20px}.spin{animation:1s linear infinite relay-spin}@keyframes relay-spin{to{transform:rotate(360deg)}}.btn{border-radius:var(--radius-sm);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 18px;font-size:15px;font-weight:600;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.btn-primary{background:var(--navy);color:#fff}.btn-primary:hover{background:var(--navy-light)}html[data-theme=dark] .btn-primary{background:#2a4d7a;box-shadow:inset 0 0 0 1px #ffffff24}html[data-theme=dark] .btn-primary:hover{background:#335d91}.btn:disabled{opacity:.6;cursor:default}.btn-danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 45%, transparent);background:0 0}.btn-danger:hover{background:var(--danger-soft)}.btn-link{color:var(--link);text-underline-offset:3px;background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline;text-decoration-thickness:1px}.field-label{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.field-label label,.field-label b{color:var(--text);font-size:13px;font-weight:600}.count{color:var(--text-muted);font-size:12px}.count.full{color:var(--danger)}.input{border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--field-bg);width:100%;min-height:44px;color:var(--text);padding:10px 12px;font-size:16px;line-height:1.45;display:block}.input::placeholder{color:var(--text-muted);opacity:1}.input:focus{border-color:var(--focus-border);box-shadow:0 0 0 3px var(--focus-ring);outline:none}.input:disabled{opacity:.75}textarea.input{resize:vertical;min-height:64px}.msg{border-radius:var(--radius-md);align-items:flex-start;gap:10px;padding:11px 14px;font-size:14px;display:flex}.msg .ic{margin-top:1px}.msg p{color:var(--text)}.msg-ok{background:var(--success-soft);color:var(--success)}.msg-bad{background:var(--danger-soft);color:var(--danger)}.topbar{z-index:10;min-height:60px;padding:8px 20px;padding-top:calc(8px + env(safe-area-inset-top));padding-left:calc(20px + env(safe-area-inset-left));padding-right:calc(20px + env(safe-area-inset-right));background:var(--navy);color:#fff;align-items:center;gap:14px;display:flex;position:sticky;top:0}.brand{color:#fff;align-items:center;gap:14px;text-decoration:none;display:inline-flex}.brand img{width:auto;height:36px}.brand .sep{background:#ffffff47;width:1px;height:26px}.brand .app{letter-spacing:-.01em;font-size:17px;font-weight:650}.topbar .sp{flex:1}.tpill{white-space:nowrap;background:#ffffff1a;border:1px solid #ffffff38;border-radius:999px;align-items:center;gap:8px;padding:6px 12px;font-size:13px;font-weight:600;display:inline-flex}.tpill i{border-radius:50%;width:8px;height:8px}.tpill.free i{background:#34d399}.tpill.busy i{background:#93c5fd}.tpill.held i{background:var(--amber);box-shadow:0 0 0 3px #f59e0b40}.tbtn{border-radius:var(--radius-md);color:#fff;background:#ffffff1a;border:1px solid #ffffff59;flex:none;place-items:center;width:44px;height:44px;display:grid}.tbtn:hover{background:#fff3}.tbtn:focus-visible{outline-color:#fff}.page{width:min(100% - 32px,780px);margin:0 auto;padding:30px 0 64px}.course{grid-template-columns:repeat(4,1fr);margin:0 0 22px;padding:0;list-style:none;display:grid}.step{text-align:center;padding:0 8px;position:relative}.step:before{content:"";background:var(--border-strong);width:100%;height:3px;position:absolute;top:19px;right:50%}.step:after{content:"";background:var(--meter);transform-origin:0;width:100%;height:3px;transition:transform .5s cubic-bezier(.16,1,.3,1);position:absolute;top:19px;right:50%;transform:scaleX(0)}.step:first-child:before,.step:first-child:after{display:none}.step.done:after,.step.now:after{transform:scaleX(1)}.ctl{z-index:1;background:var(--card);width:40px;height:40px;color:var(--text-muted);border:2px solid var(--border-strong);border-radius:50%;place-items:center;margin:0 auto 10px;font-size:15px;font-weight:700;transition:background-color .3s .2s,border-color .3s .2s,box-shadow .3s .2s,color .3s .2s;display:grid;position:relative}.step b{color:var(--text-muted);font-size:15px;display:block}.step small{max-width:170px;color:var(--text-muted);margin:2px auto 0;font-size:12.5px;line-height:1.35;display:block}.step.done .ctl{background:var(--navy);border-color:var(--navy);color:#fff}html[data-theme=dark] .step.done .ctl{background:#2a4d7a;border-color:#2a4d7a}.step.done b{color:var(--heading)}.step.now .ctl{border:3px solid var(--amber);color:var(--amber-ink);background:var(--card);box-shadow:0 0 0 5px #f59e0b2e}.step.now b,.step.now small{color:var(--text)}.step.now.bad .ctl{border-color:var(--danger);color:var(--danger);box-shadow:0 0 0 5px color-mix(in srgb, var(--danger) 18%, transparent)}.panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:26px 28px}.p-head{margin-bottom:18px}.p-head h1{color:var(--heading);letter-spacing:-.01em;font-size:22px;line-height:1.25}.p-head p{color:var(--text-muted);overflow-wrap:anywhere;margin-top:4px;font-size:14.5px}.p-sec+.p-sec{margin-top:18px}.drop{border:2px dashed var(--border-strong);border-radius:var(--radius-lg);text-align:center;background:var(--surface-2);width:100%;color:var(--text);cursor:pointer;padding:30px 20px;transition:background-color .15s,border-color .15s;display:block}.drop:hover{border-color:var(--navy-light)}.drop:disabled{cursor:default;opacity:.7}.drop .hint{color:var(--text-muted);margin-top:4px;font-size:14px;display:block}.drop u,.addmore-btn u{color:var(--link);text-underline-offset:3px;font-weight:600;text-decoration-thickness:1px}.drop.is-dragging,.addmore.is-dragging{border-color:var(--navy-light);background:var(--chip);border-style:solid}.drop .up{background:var(--card);width:56px;height:56px;color:var(--navy-light);border:1px solid var(--border);border-radius:50%;place-items:center;margin:0 auto 10px;display:grid}html[data-theme=dark] .drop .up{color:#93c5fd}.drop b{font-size:16px;display:block}.files{border:1px solid var(--border);border-radius:var(--radius-md);margin:0;padding:0;list-style:none}.files li{border-bottom:1px solid var(--border);align-items:center;gap:12px;min-height:60px;padding:9px 10px 9px 12px;display:flex}.files li:last-child{border-bottom:0}.fcell{flex-direction:column;flex:1;min-width:0;display:flex}.fname{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.fmeta{color:var(--text-muted);white-space:nowrap;font-size:13px}.ftype{width:36px;height:40px;color:var(--navy-light);letter-spacing:.4px;flex:none;place-items:end center;padding-bottom:5px;font-size:9px;font-weight:700;display:grid;position:relative}html[data-theme=dark] .ftype{color:#93c5fd}.ftype svg{width:36px;height:40px;fill:var(--card);stroke:currentColor;stroke-width:1.4px;stroke-linejoin:round;position:absolute;inset:0}.ftype span{position:relative}.iconbtn{border-radius:var(--radius-md);width:44px;height:44px;color:var(--text-muted);background:0 0;border:1px solid #0000;flex:none;place-items:center;display:grid}.iconbtn:hover{background:var(--row-hover);color:var(--text)}.state{white-space:nowrap;align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex}.state .ic{width:16px;height:16px}.state.ok{color:var(--success)}.state.run{color:var(--heading)}.state.wait{color:var(--text-muted);font-weight:500}.files li.addmore{border-top:1px dashed var(--border-strong);min-height:48px;padding:0}.addmore-btn{text-align:left;width:100%;min-height:48px;color:var(--text-muted);border-radius:0 0 var(--radius-md) var(--radius-md);background:0 0;border:0;align-items:center;gap:8px;padding:8px 12px;font-size:14px;display:flex}.addmore-btn:hover{background:var(--row-hover)}.addmore-btn .ic{width:16px;height:16px}.cap{color:var(--text-muted);align-items:center;gap:12px;margin-top:12px;font-size:14px;display:flex}.cap b{color:var(--text);font-weight:650}.meter{background:var(--chip);border-radius:3px;flex:1;height:6px;overflow:hidden}.meter>b{background:var(--meter);width:100%;height:100%;transform:scaleX(var(--fill,0));transform-origin:0;border-radius:3px;transition:transform .3s cubic-bezier(.16,1,.3,1);display:block}.p-foot{z-index:2;background:var(--card);border-top:1px solid var(--border);border-radius:0 0 var(--radius-lg) var(--radius-lg);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin:22px -28px -26px;padding:16px 28px 20px;display:flex;position:sticky;bottom:0}.p-foot p,.w-foot p{color:var(--text-muted);align-items:center;gap:8px;font-size:13.5px;display:flex}.p-foot p .ic,.w-foot p .ic{width:16px;height:16px}.p-foot.w-foot{border-radius:0;margin:18px -28px 0;padding:14px 28px}.p-foot.w-foot+.msg{margin-top:16px}.note-read{border-radius:var(--radius-md);background:var(--surface-2);border:1px solid var(--border);overflow-wrap:anywhere;white-space:pre-wrap;padding:14px 16px;font-size:15.5px}.note-read span{color:var(--text-muted);white-space:normal;margin-bottom:2px;font-size:12.5px;display:block}.dl{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--card);min-height:44px;color:var(--heading);flex:none;align-items:center;gap:6px;padding:0 14px;font-size:13.5px;font-weight:600;text-decoration:none;display:inline-flex}.dl:hover{background:var(--row-hover)}.dl .ic{width:16px;height:16px}.erase-row{border-radius:var(--radius-md);border:1px solid color-mix(in srgb, var(--danger) 30%, var(--border));flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:18px;padding:14px 16px;display:flex}.erase-row p{font-size:14px}.erase-row p span{color:var(--text-muted);font-size:13px;display:block}.centre{text-align:center;padding:26px 0 8px}.badge{background:var(--success-soft);width:56px;height:56px;color:var(--success);border-radius:50%;place-items:center;margin:0 auto 12px;display:grid}.badge.busy{background:var(--chip);color:var(--heading)}.centre h1{color:var(--heading);margin-bottom:4px;font-size:22px}.centre p{color:var(--text-muted);margin-bottom:18px}.foot{padding-bottom:env(safe-area-inset-bottom);color:var(--text-muted);justify-content:center;align-items:center;gap:8px;margin:18px 4px 0;font-size:13px;display:flex}.foot .ic{width:16px;height:16px}@media (width<=640px){.topbar{min-height:56px;padding-left:calc(12px + env(safe-area-inset-left));padding-right:calc(12px + env(safe-area-inset-right));gap:10px}.brand{gap:10px}.brand img{height:30px}.tpill{padding:5px 10px;font-size:12px}.page{width:calc(100% - 20px);padding:18px 0 40px}.course{margin-bottom:14px}.step{padding:0 2px}.step:before,.step:after{top:15px}.ctl{width:32px;height:32px;margin-bottom:6px;font-size:13px}.ctl .ic{width:16px;height:16px}.step b{font-size:12.5px}.step small{display:none}.panel{padding:18px 16px}.p-head h1{font-size:19px}.p-foot{margin:18px -16px -18px;padding:14px 16px 16px}.p-foot.w-foot{margin:16px -16px 0;padding:12px 16px}.p-foot .btn,.w-foot .btn,.erase-row .btn{width:100%}.dl{justify-content:center;width:44px;padding:0}.dl .dl-t{display:none}}@media (width<=359px){.brand .sep,.brand .app{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
