.update-modal-overlay{position:fixed;inset:0;background:#0006;z-index:1200;display:flex;align-items:center;justify-content:center;padding:1rem;animation:update-modal-overlay-in .2s ease}@keyframes update-modal-overlay-in{0%{opacity:0}to{opacity:1}}.update-modal-card{width:100%;max-width:420px;max-height:90vh;background:#fffffffa;border-radius:14px;box-shadow:0 20px 60px #00000040,0 0 0 1px #0000000d;overflow:hidden;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);animation:update-modal-card-in .25s ease}@keyframes update-modal-card-in{0%{opacity:0;transform:scale(.96) translateY(-8px)}to{opacity:1;transform:scale(1) translateY(0)}}.update-modal-header{display:flex;align-items:center;justify-content:center;gap:.625rem;padding:1.25rem 1.5rem 1rem;background:linear-gradient(180deg,#f5f5f7f2,#ffffffe6);border-bottom:1px solid rgba(0,0,0,.05)}.update-modal-header-icon{color:#007aff;display:flex;align-items:center;justify-content:center}.update-modal-header-title{margin:0;font-size:1rem;font-weight:600;color:#1d1d1f;letter-spacing:-.01em}.update-modal-body{padding:1.25rem 1.5rem 1.5rem;overflow-y:auto;max-height:calc(90vh - 80px)}.update-modal-body::-webkit-scrollbar{width:6px}.update-modal-body::-webkit-scrollbar-track{background:transparent}.update-modal-body::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}.update-modal-state{display:flex;flex-direction:column;align-items:center;text-align:center}.update-modal-state-title{margin:0 0 .25rem;font-size:1rem;font-weight:600;color:#1e293b}.update-modal-state-desc{margin:0 0 1rem;font-size:.875rem;color:#64748b}.update-modal-state-checking .update-modal-spinner{width:36px;height:36px;margin-bottom:1rem;border:3px solid #e2e8f0;border-top-color:#3b82f6;border-radius:50%;animation:update-modal-spin .8s linear infinite}@keyframes update-modal-spin{to{transform:rotate(360deg)}}.update-modal-icon-wrap{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:1rem}.update-modal-icon-success{background:#dcfce7;color:#16a34a}.update-modal-icon-error{background:#fee2e2;color:#dc2626}.update-modal-icon-download{background:#dbeafe;color:#2563eb}.update-modal-error-msg{margin:0 0 1rem;font-size:.875rem;color:#64748b;max-width:100%;word-break:break-word}.update-modal-version-badge{display:inline-flex;flex-direction:column;align-items:center;gap:.25rem;padding:.6rem 1.25rem;margin-bottom:1rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px}.update-modal-version-badge .update-modal-version-label{font-size:.75rem;color:#64748b}.update-modal-version-badge .update-modal-version-value{font-size:1rem;font-weight:600;color:#1e293b}.update-modal-new-banner{display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:1rem 1.25rem;margin-bottom:1rem;background:linear-gradient(135deg,#eff6ff,#dbeafe);border:1px solid #bfdbfe;border-radius:12px;width:100%;box-sizing:border-box}.update-modal-new-tag{font-size:.75rem;font-weight:600;color:#2563eb;text-transform:uppercase;letter-spacing:.05em}.update-modal-new-version{font-size:1.5rem;font-weight:700;color:#1e40af;letter-spacing:-.02em}.update-modal-new-date{font-size:.8rem;color:#64748b}.update-modal-version-compare{display:flex;align-items:center;justify-content:center;gap:.75rem;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;width:100%;box-sizing:border-box}.update-modal-version-row{display:flex;flex-direction:column;align-items:center;gap:.2rem}.update-modal-version-row .update-modal-version-label{font-size:.75rem;color:#64748b}.update-modal-version-row .update-modal-version-value{font-size:1rem;font-weight:600;color:#1e293b}.update-modal-version-row-latest .update-modal-version-value{color:#1e40af}.update-modal-version-highlight{color:#2563eb!important}.update-modal-version-arrow{font-size:1.25rem;color:#94a3b8;flex-shrink:0}.update-modal-notes-wrap{width:100%;margin-bottom:1rem;text-align:left}.update-modal-notes-title{margin:0 0 .5rem;font-size:.8rem;font-weight:600;color:#64748b}.update-modal-notes{padding:.75rem 1rem;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;font-size:.85rem;color:#475569;max-height:140px;overflow-y:auto}.update-modal-notes pre{margin:0;white-space:pre-wrap;word-break:break-word;font-family:inherit}.update-modal-notes::-webkit-scrollbar{width:6px}.update-modal-notes::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}.update-modal-actions{display:flex;justify-content:center;gap:.75rem;margin-top:.5rem}.update-modal-actions-spread{justify-content:space-between;width:100%}.update-modal-btn{padding:.5rem 1.25rem;font-size:.9rem;font-weight:500;border-radius:8px;border:1px solid transparent;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.update-modal-btn-secondary{background:#fff;border-color:#e2e8f0;color:#64748b}.update-modal-btn-secondary:hover{background:#f8fafc;border-color:#cbd5e1;color:#475569}.update-modal-btn-primary{background:#3b82f6;border-color:#3b82f6;color:#fff}.update-modal-btn-primary:hover{background:#2563eb;border-color:#2563eb}.update-modal-progress-wrap{display:flex;align-items:center;gap:.75rem;width:100%;margin:.5rem 0 0}.update-modal-progress-bar{flex:1;height:10px;background:#e2e8f0;border-radius:5px;overflow:hidden}.update-modal-progress-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#2563eb);border-radius:5px;transition:width .25s ease}.update-modal-progress-text{font-size:.95rem;font-weight:600;color:#1e293b;min-width:3em;text-align:right}.dev-api-env-badge{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.35rem .5rem;max-width:100%;padding:.2rem .5rem;border-radius:4px;background:#64748b1f;color:#64748b;font-size:.75rem;line-height:1.35}.dev-api-env-badge.is-prod{background:#b453091f;color:#9a3412}.dev-api-env-label{font-weight:500}.dev-api-env-warn{color:#c2410c;font-weight:600}.login-footer .dev-api-env-badge{margin-bottom:.5rem}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;background:linear-gradient(135deg,#f1f5f9,#e2e8f0);background-size:cover;background-position:center;background-repeat:no-repeat}.login-page--photo{background-image:var(--login-bg-image)}.login-page--photo:before{content:"";position:absolute;inset:0;background:#0f172a47;pointer-events:none}@keyframes login-clock-float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes login-clock-orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes login-clock-glow{0%,to{opacity:.45}50%{opacity:.85}}.login-clock{position:absolute;top:clamp(.75rem,2vw,1.25rem);left:clamp(.75rem,2vw,1.25rem);z-index:2;--clock-size: clamp(56px, 12vw, 96px);width:calc(var(--clock-size) + 22px);pointer-events:none;-webkit-user-select:none;user-select:none;animation:login-clock-float 5s ease-in-out infinite;font-family:ui-monospace,Cascadia Code,Segoe UI Mono,monospace}.login-clock-orbit{position:absolute;inset:-10px -6px auto;height:calc(var(--clock-size) + 22px);border-radius:50%;border:1px dashed rgba(255,255,255,.28);opacity:.6;animation:login-clock-orbit 48s linear infinite}.login-clock-orbit-dot{position:absolute;top:-3px;left:50%;width:6px;height:6px;margin-left:-3px;border-radius:50%;background:#93c5fdf2;box-shadow:0 0 10px #60a5fae6}.login-clock-face{position:relative;width:var(--clock-size);height:var(--clock-size);margin:0 auto;border-radius:50%;background:#ffffff1a;border:1px solid rgba(255,255,255,.38);box-shadow:0 8px 24px #0f172a2e,inset 0 1px #ffffff59;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.login-clock-glow{position:absolute;inset:12%;border-radius:50%;background:radial-gradient(circle at 35% 30%,rgba(147,197,253,.35),transparent 62%);animation:login-clock-glow 3s ease-in-out infinite}.login-clock-marker{position:absolute;left:50%;top:7px;width:2px;height:5px;margin-left:-1px;border-radius:2px;background:#ffffff73;transform-origin:50% calc(var(--clock-size) / 2 - 7px)}.login-clock-marker--major{height:8px;width:3px;margin-left:-1.5px;background:#ffffffd1;box-shadow:0 0 6px #ffffff59}.login-clock-hand{position:absolute;left:50%;bottom:50%;transform-origin:center bottom;border-radius:999px}.login-clock-hand--hour{width:4px;height:calc(var(--clock-size) * .25);margin-left:-2px;background:linear-gradient(to top,#ffffff8c,#fffffff2);box-shadow:0 0 8px #ffffff40}.login-clock-hand--min{width:2.5px;height:calc(var(--clock-size) * .33);margin-left:-1.25px;background:linear-gradient(to top,#bfdbfe80,#dbeafefa)}.login-clock-hand--sec{width:1.5px;height:calc(var(--clock-size) * .375);margin-left:-.75px;background:linear-gradient(to top,transparent,#60a5fa);box-shadow:0 0 10px #60a5fad9}.login-clock-hub{position:absolute;top:50%;left:50%;width:7px;height:7px;transform:translate(-50%,-50%);border-radius:50%;background:#fff;border:1.5px solid rgba(96,165,250,.85);box-shadow:0 0 12px #60a5faa6;z-index:3}.login-clock-meta{margin-top:.45rem;text-align:center;color:#ffffffeb;text-shadow:0 1px 8px rgba(15,23,42,.45)}.login-clock-digital{display:block;font-size:.72rem;letter-spacing:.12em;font-weight:500}.login-clock-date{display:block;margin-top:.15rem;font-size:.62rem;letter-spacing:.06em;color:#ffffffb8;font-family:system-ui,-apple-system,sans-serif}.login-clock-date em{font-style:normal;margin-left:.35rem;opacity:.85}.login-page:not(.login-page--photo) .login-clock-meta{color:#334155;text-shadow:none}.login-page:not(.login-page--photo) .login-clock-date{color:#64748b}.login-page:not(.login-page--photo) .login-clock-face{background:#ffffff8c;border-color:#94a3b859;box-shadow:0 6px 18px #0f172a14,inset 0 1px #ffffff80}.login-page:not(.login-page--photo) .login-clock-marker{background:#33415559}.login-page:not(.login-page--photo) .login-clock-marker--major{background:#1e293bbf;box-shadow:none}.login-page:not(.login-page--photo) .login-clock-hand--hour{background:linear-gradient(to top,#47556980,#1e293b)}.login-page:not(.login-page--photo) .login-clock-hand--min{background:linear-gradient(to top,#64748b73,#334155)}.login-page:not(.login-page--photo) .login-clock-orbit{border-color:#94a3b859}.login-weather{position:absolute;top:clamp(.75rem,2vw,1.25rem);right:clamp(.75rem,2vw,1.25rem);z-index:2;--weather-pad: clamp(.55rem, 1.5vw, .85rem);min-width:clamp(108px,22vw,148px);max-width:min(42vw,180px);padding:var(--weather-pad) calc(var(--weather-pad) * 1.15);border-radius:14px;background:#ffffff1a;border:1px solid rgba(255,255,255,.38);box-shadow:0 8px 24px #0f172a2e,inset 0 1px #ffffff59;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);color:#fffffff2;pointer-events:none;-webkit-user-select:none;user-select:none;text-shadow:0 1px 8px rgba(15,23,42,.45)}.login-weather-temp{font-size:clamp(1.35rem,4vw,1.85rem);font-weight:600;letter-spacing:.02em;line-height:1.1;font-family:ui-monospace,Cascadia Code,Segoe UI Mono,monospace}.login-weather-temp span{font-size:.55em;margin-left:.05em;opacity:.85}.login-weather-meta{margin-top:.35rem;display:flex;flex-direction:column;gap:.12rem;font-size:clamp(.62rem,1.8vw,.75rem)}.login-weather-city{font-weight:500;opacity:.95}.login-weather-desc{opacity:.85}.login-weather-hum{opacity:.7}.login-weather-attr{display:block;margin-top:.4rem;font-size:.55rem;letter-spacing:.04em;opacity:.45}.login-page:not(.login-page--photo) .login-weather{background:#ffffff8c;border-color:#94a3b859;box-shadow:0 6px 18px #0f172a14,inset 0 1px #ffffff80;color:#1e293b;text-shadow:none}@media(max-width:480px){.login-weather{max-width:38vw}.login-weather-hum{display:none}}.login-card{position:relative;z-index:1;background:#ffffff38;border:1px solid rgba(255,255,255,.4);border-radius:12px;padding:2rem;width:100%;max-width:420px;box-shadow:0 8px 32px #0f172a33;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.login-header{text-align:center;margin-bottom:1.5rem}.login-logo{width:72px;height:72px;object-fit:contain;display:block;margin:0 auto .5rem;filter:drop-shadow(0 2px 6px rgba(0,0,0,.25))}.login-logo-fallback{display:flex;align-items:center;justify-content:center;border-radius:16px;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;font-size:28px;font-weight:700;line-height:1}.login-card h1{margin:0;font-size:1.5rem;color:#0f172a;text-shadow:0 1px 2px rgba(255,255,255,.55)}.login-desc{color:#334155;font-size:.875rem;margin-bottom:1.5rem}.login-card .form-group{margin-bottom:1rem}.login-card label{display:block;color:#1e293b;font-size:.875rem;margin-bottom:.25rem;text-shadow:0 1px 1px rgba(255,255,255,.4)}.login-card input,.login-card textarea{width:100%;padding:.5rem .75rem;border:1px solid rgba(255,255,255,.55);border-radius:6px;background:#ffffff8c;color:#1e293b;font-size:.9rem;box-sizing:border-box}.login-card input::placeholder,.login-card textarea::placeholder{color:#64748b}.login-card textarea{resize:vertical;min-height:60px}.login-card .tabs{display:flex;gap:.25rem;margin-bottom:1rem}.login-card .tabs button{flex:1;padding:.4rem .5rem;background:#ffffff59;color:#334155;border:1px solid rgba(255,255,255,.45);border-radius:6px;font-size:.8rem;cursor:pointer;margin:0}.login-card .tabs button.active{background:#3b82f6;color:#fff;border-color:#3b82f6}.login-card .invite-hint,.login-card .field-hint{margin-top:.35rem;font-size:.75rem;line-height:1.4;color:#64748b}.login-card .field-hint{color:#dc2626}.login-card .form-row{display:flex;gap:.5rem}.login-card .form-row input{flex:1}.login-card .form-row-captcha .captcha-img{width:100px;height:38px;border-radius:6px;cursor:pointer;border:1px solid rgba(255,255,255,.55);object-fit:cover;background:#ffffffb3}.login-card .form-row-captcha .captcha-img:hover{border-color:#3b82f6}.sms-captcha-overlay{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;background:#0f172a73;padding:1rem}.sms-captcha-dialog{width:100%;max-width:360px;padding:1.25rem 1.35rem 1.1rem;border-radius:14px;background:#ffffffeb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 18px 40px #0f172a47}.sms-captcha-dialog h3{margin:0 0 .35rem;font-size:1.05rem;color:#0f172a}.sms-captcha-hint{margin:0 0 .85rem;font-size:.8rem;color:#64748b}.sms-captcha-dialog .form-row-captcha{display:flex;gap:.5rem;align-items:center}.sms-captcha-dialog .form-row-captcha input{flex:1;height:38px;padding:0 .7rem;border:1px solid #cbd5e1;border-radius:6px;font-size:.95rem}.sms-captcha-dialog .captcha-img{width:100px;height:38px;border-radius:6px;cursor:pointer;border:1px solid #cbd5e1;object-fit:cover;background:#fff}.sms-captcha-dialog .error-msg{margin-top:.6rem;font-size:.8rem;color:#b91c1c}.sms-captcha-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.sms-captcha-actions button{min-width:72px;height:34px;padding:0 .85rem;border-radius:6px;font-size:.85rem;cursor:pointer}.btn-sms-captcha-cancel{background:#fff;border:1px solid #cbd5e1;color:#334155}.btn-sms-captcha-ok{background:#3b82f6;border:1px solid #3b82f6;color:#fff}.btn-sms-captcha-ok:hover:not(:disabled){background:#2563eb}.login-card .btn-sms{width:auto;min-width:90px;margin:0;padding:.5rem .75rem;font-size:.8rem}.login-card .password-wrap{position:relative;display:flex;align-items:center}.login-card .password-wrap input{flex:1;padding-right:3rem}.login-card .btn-password-toggle{position:absolute;right:.5rem;padding:.25rem .5rem;font-size:.8rem;color:#475569;background:transparent;border:none;cursor:pointer}.login-card .btn-password-toggle:hover{color:#3b82f6}.login-card .checkbox-row{display:flex;align-items:center;gap:.5rem}.login-card .checkbox-row input[type=checkbox]{width:auto}.login-card .checkbox-row label{margin:0;cursor:pointer}.login-card .error-msg{color:#b91c1c;font-size:.875rem;margin-bottom:.5rem;text-shadow:0 1px 1px rgba(255,255,255,.5)}.login-card .error-msg.success{color:#047857}.login-card button[type=submit]{width:100%;padding:.6rem;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:1rem;cursor:pointer;margin-top:.5rem}.login-card button[type=submit]:hover:not(:disabled){background:#2563eb}.login-card button:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.login-page{padding:2rem 1rem 1rem;align-items:flex-start}.login-card{padding:1.5rem;max-width:none}.login-card h1{font-size:1.25rem}.login-card .form-row{flex-direction:column}.login-card .form-row-captcha{flex-direction:column;align-items:flex-start}.login-card .form-row-captcha .captcha-img{width:120px;height:44px}}.login-footer{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.35);text-align:center}.login-footer .btn-check-update{padding:.35rem .75rem;font-size:.8rem;color:#334155;background:#ffffff4d;border:1px solid rgba(255,255,255,.45);border-radius:6px;cursor:pointer}.login-footer .btn-check-update:hover:not(:disabled){color:#1d4ed8;border-color:#3b82f6}.login-footer .btn-check-update:disabled{opacity:.6;cursor:not-allowed}.login-footer .update-error{display:block;margin-top:.5rem;font-size:.75rem;color:#b91c1c}@media(max-width:480px){.login-page{padding:.75rem}.login-card{padding:1rem}}.official-page{min-height:100vh;background:linear-gradient(180deg,#f8fafc,#f1f5f9,#f8fafc);color:#334155}.official-header{text-align:center;padding:3rem 1.5rem}.official-header h1{font-size:2rem;font-weight:700;margin:0 0 .5rem;color:#1e293b}.tagline{font-size:1rem;color:#64748b;margin:0 0 1.5rem}.btn-enter{padding:.6rem 2rem;background:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:1rem;cursor:pointer;font-weight:500}.btn-enter:hover{background:#2563eb}.intro-section,.flow-section,.flow-diagram{max-width:900px;margin:0 auto 2.5rem;padding:0 1.5rem}.intro-section h2,.flow-section h2,.flow-diagram h2{font-size:1.25rem;color:#1e293b;margin:0 0 1rem;padding-bottom:.5rem;border-bottom:1px solid #e2e8f0}.intro-section p{line-height:1.7;color:#475569;margin-bottom:1rem}.intro-section ul{margin:0;padding-left:1.5rem;color:#64748b;line-height:1.8}.flowchart{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:1rem}.flow-node{display:flex;align-items:center}.flow-box{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#fff;border-radius:8px;border:1px solid #e2e8f0;min-width:280px}.flow-num{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:#3b82f6;color:#fff;border-radius:50%;font-size:.875rem;font-weight:600;flex-shrink:0}.flow-content{display:flex;flex-direction:column;gap:.2rem}.flow-content strong{color:#1e293b;font-size:.95rem}.flow-content span{font-size:.8rem;color:#64748b}.flow-arrow{color:#64748b;font-size:1.25rem;padding:0 .25rem}.diagram-svg{background:#f8fafc;border-radius:12px;padding:1.5rem;overflow-x:auto;border:1px solid #e2e8f0}.flow-svg{width:100%;min-width:600px;height:auto}.flow-svg .node{fill:#f1f5f9;stroke:#cbd5e1;stroke-width:1.5px}.flow-svg .node-highlight{fill:#dbeafe;stroke:#3b82f6}.flow-svg .node-close{fill:#fef2f2;stroke:#dc2626}.flow-svg .node-text{fill:#334155;font-size:.875rem;text-anchor:middle;dominant-baseline:middle}.flow-svg .small-text{fill:#64748b;font-size:.7rem}.official-footer{text-align:center;padding:2rem 1rem;border-top:1px solid #e2e8f0;margin-top:2rem}.official-footer p{margin:0;font-size:.875rem;color:#64748b}@media(max-width:768px){.official-header{padding:2rem 1rem}.official-header h1{font-size:1.5rem}.tagline{font-size:.9rem}.intro-section,.flow-section,.flow-diagram{padding:0 1rem;margin-bottom:1.5rem}.flowchart{flex-direction:column;align-items:stretch}.flow-box{min-width:0;width:100%}.flow-arrow{transform:rotate(90deg);align-self:center}.diagram-svg{padding:1rem;overflow-x:auto;-webkit-overflow-scrolling:touch}.flow-svg{min-width:400px}.official-footer{padding:1.5rem 1rem}}@media(max-width:480px){.official-header h1{font-size:1.25rem}.flow-svg{min-width:320px}}html,body,#root{height:100%;margin:0}body{background:#f1f5f9}.my-todo-sticky{box-sizing:border-box;height:100%;display:flex;flex-direction:column;padding:.55rem .6rem .65rem;font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:#1e293b;background:linear-gradient(180deg,#f8fafc,#f1f5f9);overflow:hidden;outline:none;position:relative}.my-todo-sticky *,.my-todo-sticky *:before,.my-todo-sticky *:after{box-sizing:border-box}.mts-head{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.5rem;flex-shrink:0}.mts-head-row{display:flex;align-items:center;justify-content:space-between;gap:.4rem}.mts-title{margin:0;font-size:.95rem;font-weight:700;color:#0f172a}.mts-head-actions{display:flex;align-items:center;gap:.3rem;flex-shrink:0}.mts-btn{border:1px solid #cbd5e1;background:#fff;color:#334155;border-radius:6px;padding:.22rem .5rem;font-size:.75rem;line-height:1.3;cursor:pointer}.mts-btn:hover:not(:disabled){border-color:#94a3b8;background:#f8fafc}.mts-btn:disabled{opacity:.6;cursor:not-allowed}.mts-btn-primary{background:#0f172a;border-color:#0f172a;color:#fff}.mts-btn-primary:hover:not(:disabled){background:#1e293b;border-color:#1e293b}.mts-btn-ghost{min-width:1.6rem;padding-left:.35rem;padding-right:.35rem;font-weight:700;color:#64748b}.mts-btn-ghost.is-active{border-color:#64748b;color:#0f172a;background:#e2e8f0}.mts-tips{font-size:.7rem;line-height:1.4;color:#475569;background:#e2e8f0;border-radius:6px;padding:.35rem .45rem}.mts-group{width:100%;border:1px solid #cbd5e1;background:#fff;border-radius:6px;padding:.3rem .4rem;font-size:.8rem;color:#1e293b;outline:none}.mts-group:focus{border-color:#64748b}.mts-error{flex-shrink:0;margin-bottom:.4rem;padding:.35rem .45rem;border-radius:6px;background:#fef2f2;color:#b91c1c;font-size:.75rem}.mts-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.45rem;color:#94a3b8;font-size:.8rem}.mts-empty-link{border:none;background:transparent;color:#475569;font-size:.72rem;text-decoration:underline;cursor:pointer;padding:0}.mts-list{list-style:none;margin:0;padding:0;overflow:auto;flex:1;display:flex;flex-direction:column;gap:.35rem}.mts-item{display:flex;align-items:flex-start;gap:.3rem;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:.35rem .4rem;cursor:default}.mts-item.is-selected{border-color:#64748b;box-shadow:0 0 0 1px #64748b40}.mts-item.is-dragging{opacity:.72;box-shadow:0 4px 12px #0f172a1f}.mts-item.is-done{opacity:.62}.mts-drag{flex-shrink:0;border:none;background:transparent;color:#94a3b8;cursor:grab;padding:.1rem .15rem;font-size:.7rem;line-height:1;letter-spacing:-.05em}.mts-drag:active{cursor:grabbing}.mts-check{display:flex;align-items:flex-start;flex-shrink:0;margin-top:.12rem;cursor:pointer}.mts-check input{margin:0}.mts-item-main{flex:1;min-width:0}.mts-item-title-row{display:flex;align-items:flex-start;gap:.3rem}.mts-item-title{flex:1;min-width:0;font-size:.82rem;line-height:1.35;word-break:break-word}.mts-item.is-done .mts-item-title{text-decoration:line-through;color:#64748b}.mts-edit-btn{flex-shrink:0;border:none;background:transparent;color:#64748b;font-size:.7rem;padding:0;cursor:pointer;line-height:1.35}.mts-edit-btn:hover{color:#0f172a;text-decoration:underline}.mts-note{margin:.2rem 0 0;font-size:.72rem;line-height:1.35;color:#64748b;white-space:pre-wrap;word-break:break-word}.mts-modal{position:absolute;inset:0;z-index:20;display:flex;align-items:flex-end;justify-content:center;padding:.5rem;background:#0f172a47}.mts-modal-card{width:100%;max-height:calc(100% - .4rem);overflow:auto;background:#fff;border-radius:10px;border:1px solid #e2e8f0;box-shadow:0 10px 28px #0f172a29;padding:.65rem .7rem .7rem;display:flex;flex-direction:column;gap:.45rem}.mts-modal-title{font-size:.85rem;font-weight:700;color:#0f172a}.mts-field{display:flex;flex-direction:column;gap:.2rem}.mts-field-label{font-size:.7rem;color:#64748b}.mts-input,.mts-textarea{width:100%;border:1px solid #cbd5e1;border-radius:6px;padding:.35rem .45rem;font-size:.8rem;color:#1e293b;font-family:inherit;outline:none;resize:vertical}.mts-input:focus,.mts-textarea:focus{border-color:#64748b}.mts-modal-hint{margin:0;font-size:.68rem;color:#94a3b8}.mts-modal-actions{display:flex;justify-content:flex-end;gap:.35rem}.toast-container{position:fixed;top:16px;left:50%;transform:translate(-50%);z-index:16000;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast-item{display:flex;align-items:flex-start;gap:10px;padding:12px 20px;border-radius:8px;box-shadow:0 4px 12px #00000026;font-size:.9rem;max-width:360px;animation:toast-in .25s ease-out}.toast-item--rich{max-width:480px;pointer-events:auto}@keyframes toast-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.toast-success{background:#10b981;color:#fff}.toast-error{background:#ef4444;color:#fff;max-width:520px}.toast-info{background:#3b82f6;color:#fff}.toast-warning{background:#f59e0b;color:#fff}.toast-icon{font-size:1.1rem;font-weight:700;flex-shrink:0}.toast-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}.toast-message{flex:1;word-break:break-word;white-space:pre-wrap;line-height:1.5}.toast-actions{display:flex;flex-wrap:wrap;gap:10px}.toast-action{appearance:none;border:0;background:#ffffff38;color:inherit;font:inherit;font-size:.85rem;padding:4px 10px;border-radius:6px;cursor:pointer}.toast-action:hover{background:#ffffff52}@keyframes jcds-toast-in{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes jcds-toast-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}*{box-sizing:border-box}html{overflow-x:hidden}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:#f1f5f9;color:#1e293b;overflow-x:hidden}.app-boot-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:1.5rem;background:#f1f5f9;color:#475569;text-align:center}.app-boot-spinner{width:28px;height:28px;border:3px solid #cbd5e1;border-top-color:#3b82f6;border-radius:50%;animation:app-boot-spin .8s linear infinite}@keyframes app-boot-spin{to{transform:rotate(360deg)}}.app-boot-error h1{margin:0 0 .5rem;font-size:1.125rem;color:#0f172a}.app-boot-error-msg{margin:0;max-width:520px;word-break:break-word;color:#b91c1c;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.875rem}.app-boot-hint{margin:0;max-width:420px;font-size:.875rem;color:#64748b}.app-boot-reload-btn{margin-top:.25rem;padding:.45rem 1rem;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#1e293b;cursor:pointer;font-size:.875rem}.app-boot-reload-btn:hover{border-color:#94a3b8;background:#f8fafc}a{color:#3b82f6;text-decoration:none}a:hover{text-decoration:underline}@media(max-width:768px){.order-table-wrap,.shop-table-wrap,.warehouse-table-wrap,.task-table-wrap,.table-wrap{-webkit-overflow-scrolling:touch}}.app-version-modal-overlay{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:1rem;background:#0f172a61;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.app-version-modal{width:min(100%,460px);background:#fffffff5;border:1px solid rgba(148,163,184,.25);border-radius:16px;padding:1rem 1rem .95rem;box-shadow:0 24px 60px #0f172a33}.app-version-modal h3{margin:0 0 .5rem;font-size:1.05rem;color:#0f172a}.app-version-modal-desc{margin:0 0 .85rem;color:#475569;font-size:.92rem;line-height:1.6}.app-version-modal-meta{display:grid;gap:.45rem;padding:.85rem .9rem;margin-bottom:.95rem;border-radius:12px;background:#f8fafc;border:1px solid #e2e8f0;color:#334155;font-size:.88rem}.app-version-modal-actions{display:flex;justify-content:flex-end;gap:.6rem}.app-version-modal-actions button{min-width:88px;padding:.52rem .9rem;border-radius:10px;border:1px solid #cbd5e1;background:#fff;color:#475569;cursor:pointer}.app-version-modal-actions button:hover:not(:disabled){background:#f8fafc;color:#1e293b}.app-version-modal-actions .btn-primary{border-color:#2563eb;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.app-version-modal-actions .btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff}.app-version-modal-actions button:disabled{opacity:.7;cursor:not-allowed}.route-display{position:fixed;top:12px;right:12px;z-index:9999;padding:6px 12px;font-size:12px;font-family:ui-monospace,Cascadia Code,Source Code Pro,Menlo,monospace;color:#64748b;background:#ffffffe6;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 2px 8px #0f172a14;cursor:context-menu;-webkit-user-select:none;user-select:none;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-display:hover{color:#334155;background:#fffffffa;border-color:#cbd5e1}.contact-admin-link{display:inline;padding:0;margin:0;border:none;background:none;color:#2563eb;cursor:pointer;font:inherit;text-decoration:underline}.work-order-unsatisfied{margin:8px 0 0;color:#64748b;font-size:13px}.btn-primary,.btn-secondary,.btn-danger,.btn-warning,.btn-success{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;border-radius:6px;border:1px solid transparent;cursor:pointer;font-size:.875rem;line-height:1.25;padding:.4rem .9rem}.btn-primary{background:#3b82f6;border-color:#3b82f6;color:#fff}.btn-primary:hover:not(:disabled){background:#2563eb;border-color:#2563eb}.btn-secondary{background:#64748b;border-color:#64748b;color:#fff}.btn-secondary:hover:not(:disabled){background:#475569;border-color:#475569}.btn-danger{background:#ef4444;border-color:#ef4444;color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626;border-color:#dc2626}.btn-warning{background:#f59e0b;border-color:#f59e0b;color:#fff}.btn-warning:hover:not(:disabled){background:#d97706;border-color:#d97706}.btn-success{background:#22c55e;border-color:#22c55e;color:#fff}.btn-success:hover:not(:disabled){background:#16a34a;border-color:#16a34a}.btn-primary:disabled,.btn-secondary:disabled,.btn-danger:disabled,.btn-warning:disabled,.btn-success:disabled{opacity:.55;cursor:not-allowed}.channel-picker-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:24px;background:#0c0a09b8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.channel-picker-card{width:min(420px,100%);padding:28px 24px 22px;border-radius:18px;background:#1c1917;border:1px solid rgba(250,204,21,.22);box-shadow:0 24px 60px #00000073;color:#f5f5f4}.channel-picker-card h1{margin:0 0 8px;font-size:22px;font-weight:700}.channel-picker-lead{margin:0 0 18px;font-size:13px;line-height:1.55;color:#a8a29e}.channel-picker-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.channel-picker-btn{width:100%;display:flex;align-items:center;gap:10px;padding:14px 16px;border-radius:12px;border:1px solid rgba(214,211,209,.14);background:#1c1917e6;color:inherit;cursor:pointer;text-align:left;font:inherit;transition:border-color .2s ease,transform .2s ease,background .2s ease}.channel-picker-btn:hover:not(:disabled){border-color:#facc158c;background:#292524f2;transform:translateY(-1px)}.channel-picker-btn:disabled{opacity:.7;cursor:wait}.channel-picker-name{font-weight:600;font-size:15px}.channel-picker-id{margin-left:auto;font-size:12px;color:#a8a29e;text-transform:uppercase;letter-spacing:.4px}.channel-picker-busy{font-size:12px;color:#facc15}.channel-picker-err{margin:14px 0 0;font-size:13px;color:#fca5a5}
