@import "https://fonts.googleapis.com/css2?family=Schibsted+Grotesk:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400&family=Spline+Sans+Mono:wght@400;500;600;700&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--font-sans:"Schibsted Grotesk", -apple-system, "Segoe UI", sans-serif;--font-mono:"Spline Sans Mono", "Cascadia Code", Consolas, monospace;--bg:#fffdf7;--bg2:#f6f3ea;--bg3:#eeeadd;--bg4:#e4dfcf;--text:#1c1a14;--text2:#6b675a;--text3:#a29d8d;--border:#1c1a1417;--border2:#1c1a142b;--shadow:0 1px 2px #1c1a140f, 0 1px 1px #1c1a140a;--shadow-md:0 3px 10px #1c1a1417, 0 1px 3px #1c1a140d;--shadow-lg:0 12px 36px #1c1a1424, 0 3px 9px #1c1a140f;--radius:8px;--radius-lg:12px;--radius-xl:18px;--green:#15875f;--green-bg:#ddf2e6;--green-text:#0a4631;--blue:#2a62c4;--blue-bg:#e2ecfa;--blue-text:#14397a;--amber:#aa6907;--amber-bg:#f8ecd2;--amber-text:#573800;--red:#c44432;--red-bg:#fae6e1;--red-text:#6f261a;--purple:#6a5fcb;--purple-bg:#e9e6fa;--purple-text:#332b78;--gray-bg:#eae6d8;--gray-text:#494638}[data-theme=dark]{--bg:#191c19;--bg2:#212521;--bg3:#0e110f;--bg4:#292d29;--text:#eae8dc;--text2:#9a988a;--text3:#61645a;--border:#eae8dc14;--border2:#eae8dc29;--shadow:0 1px 3px #00000059, 0 1px 2px #00000040;--shadow-md:0 4px 14px #0006, 0 2px 4px #00000040;--shadow-lg:0 14px 44px #0000008c, 0 3px 10px #00000059;--green:#2fbd8a;--green-bg:#0c2f23;--green-text:#52e2af;--blue:#5b9ae8;--blue-bg:#112540;--blue-text:#92c2f6;--amber:#d49a2a;--amber-bg:#2e2106;--amber-text:#eec167;--red:#e0604a;--red-bg:#331410;--red-text:#f2957f;--purple:#968cee;--purple-bg:#1c1947;--purple-text:#b9b2f8;--gray-bg:#272b27;--gray-text:#a9a799}html{height:100%}body{font-family:var(--font-sans);color:var(--text);-webkit-font-smoothing:antialiased;background-color:var(--bg3);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='linear' slope='0.045'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E"),radial-gradient(1100px 480px at 50% -120px,#fffdf7d9,#fffdf700 70%);background-attachment:fixed;min-height:100vh;font-size:14px;line-height:1.5;transition:background-color .3s,color .3s}[data-theme=dark] body{background-color:var(--bg3);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='linear' slope='0.06'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' fill='%23ffffff'/%3E%3C/svg%3E"),radial-gradient(1100px 520px at 50% -140px,#5b9ae812,#5b9ae800 70%);background-attachment:fixed}h1,h2,h3,h4{letter-spacing:-.022em;font-weight:700;line-height:1.2}input,select,textarea,button{outline:none;font-family:inherit;font-size:13px}input,select{background:var(--bg);border:1px solid var(--border2);border-radius:var(--radius);height:36px;color:var(--text);width:100%;box-shadow:var(--shadow);padding:0 12px;transition:border-color .15s,box-shadow .15s,background-color .3s}input:focus,select:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2a62c424, var(--shadow)}[data-theme=dark] input:focus,[data-theme=dark] select:focus{box-shadow:0 0 0 3px #5b9ae833, var(--shadow)}input::placeholder{color:var(--text3)}button{background:var(--bg);border:1px solid var(--border2);border-radius:var(--radius);cursor:pointer;height:36px;color:var(--text);letter-spacing:.005em;white-space:nowrap;box-shadow:var(--shadow);padding:0 16px;font-size:13px;font-weight:600;transition:background-color .15s,border-color .15s,box-shadow .15s,transform .15s,color .15s,opacity .15s}button:hover{background:var(--bg2);border-color:var(--border2);box-shadow:var(--shadow-md);transform:translateY(-1px)}button:active{opacity:.8;transform:translateY(0)}button:focus-visible{outline:2px solid var(--blue);outline-offset:2px}button.primary{background:var(--text);color:var(--bg);border-color:var(--text);box-shadow:var(--shadow-md);background-image:linear-gradient(#ffffff1a,#fff0 55%)}button.primary:hover{opacity:.9;background-color:var(--text);box-shadow:var(--shadow-lg)}button.danger{color:var(--red);border-color:var(--red)}button.danger:hover{background:var(--red-bg);box-shadow:none}button.ghost{color:var(--text2);box-shadow:none;background:0 0;border-color:#0000;padding:0 8px;font-weight:500}button.ghost:hover{background:var(--bg2);color:var(--text);box-shadow:none;transform:none}.badge{font-family:var(--font-mono);white-space:nowrap;letter-spacing:.07em;text-transform:uppercase;border-radius:6px;align-items:center;padding:3px 8px;font-size:10px;font-weight:600;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;flex:none;width:5px;height:5px;margin-right:6px}.badge.arrived{background:var(--green-bg);color:var(--green-text);border:1px solid #15875f40}.badge.departed{background:var(--blue-bg);color:var(--blue-text);border:1px solid #2a62c440}.badge.confirmed{background:var(--amber-bg);color:var(--amber-text);border:1px solid #aa690740}.badge.manufacturing{background:var(--blue-bg);color:var(--blue-text);border:1px solid #2a62c440}.badge.ready,.badge.picc{background:var(--purple-bg);color:var(--purple-text);border:1px solid #6a5fcb40}.badge.prepaid{background:var(--blue-bg);color:var(--blue-text);border:1px solid #2a62c440}.type-badge{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;border-radius:6px;padding:3px 8px;font-size:10px;font-weight:600;display:inline-flex}.type-badge.sino{background:var(--blue-bg);color:var(--blue-text);border:1px solid #2a62c440}.type-badge.picc{background:var(--purple-bg);color:var(--purple-text);border:1px solid #6a5fcb40}.type-badge.normal{background:var(--gray-bg);color:var(--gray-text);border:1px solid #1c1a141a}.card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);transition:box-shadow .2s,transform .2s,border-color .2s,background-color .3s;animation:.35s cubic-bezier(.21,.6,.35,1) both rise;overflow:hidden}.card:hover{box-shadow:var(--shadow-md);border-color:var(--border2)}.metric{background:var(--bg);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow);padding:15px 18px 15px 20px;transition:box-shadow .2s,transform .2s,border-color .2s,background-color .3s;animation:.35s cubic-bezier(.21,.6,.35,1) both rise;position:relative;overflow:hidden}.metric:before{content:"";background:var(--text3);opacity:.4;width:3px;position:absolute;top:0;bottom:0;left:0}.metric:has(.value.green):before{background:var(--green);opacity:1}.metric:has(.value.blue):before{background:var(--blue);opacity:1}.metric:has(.value.amber):before{background:var(--amber);opacity:1}.metric:has(.value.red):before{background:var(--red);opacity:1}.metric:hover{box-shadow:var(--shadow-md);border-color:var(--border2);transform:translateY(-1px)}.metric .label{font-family:var(--font-mono);color:var(--text3);text-transform:uppercase;letter-spacing:.12em;margin-bottom:6px;font-size:9.5px;font-weight:600}.metric .value{font-family:var(--font-mono);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:21px;font-weight:600;line-height:1.12}.metric .value.green{color:var(--green)}.metric .value.blue{color:var(--blue)}.metric .value.amber{color:var(--amber)}.metric .value.red{color:var(--red)}@keyframes rise{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.card,.metric{animation:none}*{transition-duration:.01ms!important}}.spinner{border:2px solid var(--border2);border-top-color:var(--blue);border-radius:50%;width:20px;height:20px;animation:.7s linear infinite spin;display:inline-block}.empty-state{text-align:center;color:var(--text3);font-family:var(--font-mono);letter-spacing:.05em;padding:3.5rem 2rem;font-size:12px}.empty-state:before{content:"· · ·";letter-spacing:.4em;opacity:.6;margin-bottom:8px;display:block}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--text3)}::selection{background:var(--blue-bg);color:var(--blue-text)}
