:root{--color-bg: #0f2337;--color-surface: #1a3f6f;--color-surface-2: #1e4d87;--color-border: #2a5fa3;--color-text: #e8f0fe;--color-text-muted: #8fafd6;--color-accent: #4a9eff;--color-success: #34d058;--color-warning: #f0a500;--color-error: #ff4d4d;--color-finish: #f0a500;--color-move: #4a9eff;--radius: 8px;--font-base: 1.125rem;--transition: .15s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow-x:hidden}body{font-family:Segoe UI,system-ui,sans-serif;font-size:var(--font-base);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased}.app-shell{display:flex;flex-direction:column;height:100%}.page-content{flex:1;overflow-y:auto;padding:1.5rem}.page-content>div{margin-left:auto;margin-right:auto}.nav-bar{display:flex;align-items:center;justify-content:space-between;background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:.75rem 1.5rem;gap:1rem;flex-shrink:0}.nav-title{font-size:1.2rem;font-weight:700;letter-spacing:.03em}.nav-badge{font-size:.9rem;color:var(--color-text-muted)}.nav-links{display:flex;gap:.5rem}.nav-link{padding:.5rem 1rem;border-radius:var(--radius);color:var(--color-text-muted);text-decoration:none;font-size:.95rem;transition:background var(--transition)}.nav-link:hover,.nav-link.active{background:var(--color-surface-2);color:var(--color-text)}.nav-status{display:flex;align-items:center;gap:.5rem;font-size:.85rem}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.5rem}.card+.card{margin-top:1rem}.card-title{font-size:1.1rem;font-weight:600;margin-bottom:1rem}.form-group{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem}.form-label{font-size:.9rem;color:var(--color-text-muted);font-weight:500}.form-input,.form-select{background:var(--color-bg);border:2px solid var(--color-border);border-radius:var(--radius);padding:.75rem 1rem;color:var(--color-text);font-size:1.1rem;transition:border-color var(--transition);width:100%}.form-input:focus,.form-select:focus{outline:none;border-color:var(--color-accent)}.form-input.error{border-color:var(--color-error)}.form-input.success{border-color:var(--color-success)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-row-3{display:grid;grid-template-columns:2fr 1fr 1fr;gap:1rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.85rem 1.5rem;border-radius:var(--radius);font-size:1rem;font-weight:600;cursor:pointer;border:none;transition:opacity var(--transition),background var(--transition);min-height:48px;text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-accent);color:#fff}.btn-primary:hover:not(:disabled){background:#3a8eef}.btn-success{background:var(--color-success);color:#000}.btn-success:hover:not(:disabled){background:#28b94a}.btn-warning{background:var(--color-warning);color:#000}.btn-danger{background:var(--color-error);color:#fff}.btn-ghost{background:transparent;border:1px solid var(--color-border);color:var(--color-text)}.btn-ghost:hover:not(:disabled){background:var(--color-surface-2)}.btn-lg{padding:1.1rem 2rem;font-size:1.2rem}.btn-full{width:100%}.badge{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.badge-pending{background:#4a9eff33;color:var(--color-accent)}.badge-exported{background:#f0a50033;color:var(--color-warning)}.badge-uploaded{background:#34d05833;color:var(--color-success)}.badge-move{background:#4a9eff26;color:var(--color-move)}.badge-finish{background:#f0a50026;color:var(--color-finish)}.alert{padding:.9rem 1.2rem;border-radius:var(--radius);margin-bottom:1rem;font-size:.95rem;line-height:1.5}.alert-error{background:#ff4d4d1f;border:1px solid var(--color-error);color:#ff8080}.alert-success{background:#34d0581f;border:1px solid var(--color-success);color:#6ee68a}.alert-warning{background:#f0a5001f;border:1px solid var(--color-warning);color:#f0c040}.alert-info{background:#4a9eff1a;border:1px solid var(--color-accent);color:#8ac4ff}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{padding:.65rem 1rem;text-align:left;border-bottom:1px solid var(--color-border)}th{color:var(--color-text-muted);font-weight:600;font-size:.8rem;text-transform:uppercase}tr:hover td{background:#ffffff08}.txn-type-banner{text-align:center;padding:.75rem 1rem;border-radius:var(--radius);font-size:1.3rem;font-weight:700;letter-spacing:.05em;margin-bottom:1rem}.txn-type-banner.finish{background:#f0a50026;border:2px solid var(--color-finish);color:var(--color-finish)}.txn-type-banner.move{background:#4a9eff1a;border:2px solid var(--color-move);color:var(--color-move)}.online-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.online-dot.online{background:var(--color-success)}.online-dot.offline{background:var(--color-error);animation:blink 1.2s infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.login-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem}.login-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:3rem 2.5rem;width:100%;max-width:480px}.login-logo{font-size:2rem;font-weight:800;color:var(--color-accent);margin-bottom:.25rem}.login-sub{color:var(--color-text-muted);margin-bottom:2rem}.login-badge-input{font-size:2rem;letter-spacing:.1em;text-align:center;padding:1rem;font-weight:700}.text-muted{color:var(--color-text-muted)}.text-sm{font-size:.875rem}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.flex{display:flex}.items-center{align-items:center}.gap-2{gap:.5rem}.gap-3{gap:1rem}.justify-between{justify-content:space-between}.w-full{width:100%}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem}.app-shell:has(.idle-warning-present) .nav-bar{margin-top:72px}code{font-family:Courier New,Courier,monospace;font-size:.9em}[data-theme=light]{--color-bg: #f4f7fb;--color-surface: #ffffff;--color-surface-2: #edf2f8;--color-border: #ccd8e8;--color-text: #0d1f33;--color-text-muted: #4a6080;--color-accent: #1a5fa3;--color-success: #1a7a35;--color-warning: #b37200;--color-error: #cc2222;--color-finish: #b37200;--color-move: #1a5fa3}[data-theme=light] .nav-bar{background:#fff;border-bottom:1px solid #ccd8e8}[data-theme=light] .nav-link{color:#4a6080}[data-theme=light] .nav-link:hover,[data-theme=light] .nav-link.active{background:#edf2f8;color:#0d1f33}[data-theme=light] .card{background:#fff}[data-theme=light] .form-input,[data-theme=light] .form-select{background:#f4f7fb;color:#0d1f33;border-color:#ccd8e8}[data-theme=light] .btn-ghost{border-color:#ccd8e8;color:#0d1f33}[data-theme=light] .btn-ghost:hover:not(:disabled){background:#edf2f8}[data-theme=light] .login-card{background:#fff}[data-theme=light] .txn-type-banner.finish{background:#b3720014}[data-theme=light] .txn-type-banner.move{background:#1a5fa314}[data-theme=light] .badge-pending{background:#1a5fa31a;color:#1a5fa3}[data-theme=light] .badge-exported{background:#b372001a;color:#b37200}[data-theme=light] .badge-uploaded{background:#1a7a351a;color:#1a7a35}[data-theme=light] .badge-move{background:#1a5fa314;color:#1a5fa3}[data-theme=light] .badge-finish{background:#b3720014;color:#b37200}[data-theme=light] .alert-error{background:#cc222214;border-color:#c22;color:#aa1a1a}[data-theme=light] .alert-success{background:#1a7a3514;border-color:#1a7a35;color:#1a5c2a}[data-theme=light] .alert-warning{background:#b3720014;border-color:#b37200;color:#8f5c00}[data-theme=light] .alert-info{background:#1a5fa314;border-color:#1a5fa3;color:#1a5fa3}[data-theme=light] table th{color:#4a6080}[data-theme=light] tr:hover td{background:#00000005}[data-theme=light] .login-wrap{background:#f4f7fb}.no-spinner::-webkit-outer-spin-button,.no-spinner::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.no-spinner{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}@keyframes spin{to{transform:rotate(360deg)}}
