:root{--bg: #0b0f17;--bg-panel: #111a2e;--bg-card: #151c28;--bg-hover: #1c2b4a;--border: #243044;--text: #e2e8f0;--text-dim: #94a3b8;--accent: #38bdf8;--success: #34d399;--info: #94a3b8;--warning: #fbbf24;--danger: #f87171;--bracket-badge: #38bdf8;--crown-badge: #fbbf24;--green: #34d399;--yellow: #fbbf24;--red: #f87171}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:PingFang SC,Microsoft YaHei,Segoe UI,sans-serif;font-size:14px}#app{min-height:100vh}a{color:var(--accent);text-decoration:none}button{font-family:inherit;cursor:pointer}.top-nav{display:flex;align-items:center;gap:20px;height:54px;padding:0 20px;background:#0f172ae0;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid rgba(148,163,184,.14);position:sticky;top:0;z-index:100;box-shadow:0 2px 12px #00000040}.top-nav .brand{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:700;letter-spacing:.5px;white-space:nowrap;color:#f1f5f9}.top-nav .brand .brand-icon{font-size:18px}.top-nav .brand .brand-title{background:linear-gradient(135deg,#fff 40%,#94a3b8);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.top-nav .brand .tag{font-size:10.5px;font-weight:600;color:#38bdf8;background:#38bdf81f;border:1px solid rgba(56,189,248,.28);border-radius:4px;padding:1px 6px;margin-left:4px;letter-spacing:.5px}.top-nav .nav-links{display:flex;align-items:center;gap:6px;flex:1}.top-nav .nav-links a{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:6px;color:#94a3b8;font-size:13.5px;font-weight:500;transition:all .2s cubic-bezier(.4,0,.2,1);border:1px solid transparent}.top-nav .nav-links a .nav-icon{font-size:14px;opacity:.8}.top-nav .nav-links a:hover{background:#33415580;color:#f8fafc}.top-nav .nav-links a.active{background:#38bdf81f;color:#38bdf8;border-color:#38bdf847;font-weight:600;box-shadow:0 0 12px #38bdf814}.top-nav .nav-center{display:flex;align-items:center;gap:6px;white-space:nowrap;background:#1e293b99;border:1px solid rgba(148,163,184,.16);border-radius:8px;padding:3px 8px}.top-nav .nav-center-pin{font-size:12px}.top-nav .nav-center-label{color:#94a3b8;font-size:12px;font-weight:500}.top-nav .user-box{display:flex;align-items:center;gap:12px;color:var(--text-dim);font-size:13px}.top-nav .user-box .version-link{color:var(--text-dim);border:1px solid var(--border);border-radius:6px;padding:4px 10px;font-size:12px}.top-nav .user-box .version-link:hover{color:var(--accent);border-color:var(--accent)}.top-nav .user-box button{background:transparent;border:1px solid var(--border);color:var(--text-dim);border-radius:6px;padding:4px 10px;font-size:12px}.top-nav .user-box button:hover{color:var(--text);border-color:var(--accent)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center}.login-card{width:360px;background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;padding:32px}.login-card h1{font-size:18px;margin:0 0 4px}.login-card .sub{color:var(--text-dim);font-size:12px;margin-bottom:24px}.login-card input{width:100%;background:var(--bg-card);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:10px 12px;margin-bottom:14px;font-size:14px;font-family:inherit}.login-card .login-btn{width:100%;padding:10px;border-radius:8px;border:none;background:var(--accent);color:#06121f;font-weight:700;font-size:15px}.login-card .test-btn{width:100%;margin-top:10px;padding:8px;border-radius:8px;background:transparent;border:1px dashed var(--border);color:var(--text-dim);font-size:13px}.login-card .qr-box{display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:14px}.login-card .qr-box canvas{border-radius:8px;background:#fff;padding:6px}.login-card .err{color:var(--red);font-size:13px;margin-bottom:12px;min-height:18px}.daily-slip{position:relative;width:76mm;background:#fff;color:#000;font-family:PingFang SC,Microsoft YaHei,Segoe UI,sans-serif;padding:2mm;margin:0 auto 14px;box-shadow:0 4px 12px #00000040;line-height:1.35}.daily-slip .void-watermark{position:absolute;top:38%;left:0;right:0;text-align:center;font-size:46px;font-weight:900;letter-spacing:12px;color:#0000002e;transform:rotate(-18deg);pointer-events:none;z-index:5}.daily-slip *{-webkit-print-color-adjust:exact;print-color-adjust:exact}.daily-slip .marker-big{font-size:40px;font-weight:900;text-align:center;letter-spacing:6px;line-height:1.1;margin:2px 0 4px}.daily-slip .marker-date{text-align:center;font-size:13px;font-weight:700;margin-bottom:4px}.daily-slip .barcode-wrap{display:flex;flex-direction:column;align-items:center;gap:2px;margin-bottom:6px}.daily-slip .exception-box{border:1px dashed #000;border-radius:3px;padding:4px 6px;margin:6px 0}.daily-slip .exception-title{font-size:12px;font-weight:700;margin-bottom:3px}.daily-slip .exception-item{display:flex;justify-content:space-between;font-size:13px}.daily-slip .ex-marker{font-weight:800}.daily-slip .ex-left{display:flex;align-items:baseline;gap:6px}.daily-slip .ex-date{font-size:12px}.daily-slip .hr{border-top:1px solid #000;margin:6px 0}.daily-slip .cust-info{margin-top:0;padding-top:0}.daily-slip .cust-row{display:flex;gap:6px;font-size:13px;margin-bottom:2px}.daily-slip .cust-row>span{width:48px;flex-shrink:0;font-weight:600}.daily-slip .cust-row>b{flex:1;word-break:break-all}.daily-slip .cut-page-break{display:block;height:8mm;margin:0;border:none}.daily-slip .slip-formal{page-break-before:always;break-before:page;padding-top:6px}.daily-slip .company-title{font-size:14px;font-weight:800;text-align:center;margin-bottom:2px}.daily-slip .slip-title{font-size:20px;font-weight:900;letter-spacing:6px;text-align:center;margin-bottom:8px}.daily-slip .meta-row{display:flex;gap:6px;font-size:13px;margin-bottom:3px}.daily-slip .meta-row>span{width:60px;flex-shrink:0;font-weight:600}.daily-slip table{width:100%;border-collapse:collapse;font-size:12px;margin:6px 0}.daily-slip table th{border-bottom:1.5px solid #000;padding:3px 2px;text-align:left}.daily-slip table td{border-bottom:1px solid #ccc;padding:3px 2px;word-break:break-all}.daily-slip table td.c,.daily-slip table th.c{text-align:center;width:34px}.daily-slip table td.r,.daily-slip table th.r{text-align:right;width:40px}.daily-slip .legend{font-size:11px;margin:4px 0}.daily-slip table tr.marker-sub-row td{border-top:1.5px solid #000;border-bottom:1px solid #000;font-weight:700;padding-top:4px}.daily-slip .ms-marker{letter-spacing:1px}.daily-slip .ms-sub{white-space:nowrap}.daily-slip .legend span{margin-right:8px}.daily-slip .formal-exception{margin-top:6px}.daily-slip .ex-block{border-top:1px dashed #000;padding-top:4px;margin-top:4px}.daily-slip .ex-block-title{font-size:12px;font-weight:700;margin-bottom:2px}.daily-slip .divider,.daily-slip .note,.daily-slip .foot{font-size:11px;text-align:center;margin-top:6px}.print-actions{display:flex;gap:10px}.print-root{position:absolute;left:-10000px;top:0;visibility:hidden;pointer-events:none}@media print{@page{size:80mm auto;margin:2mm}body *{visibility:hidden!important}.print-root,.print-root *{visibility:visible!important}.print-root{position:absolute;left:0;top:0;width:80mm;background:#fff}.no-print{display:none!important}.daily-slip{width:76mm;margin:0;box-shadow:none;page-break-after:always;break-after:page}.daily-slip:last-child{page-break-after:auto;break-after:auto}}.sys-badge{font-size:11px;letter-spacing:1px;color:#38bdf8;font-weight:700}.plate-num-pill{display:inline-flex;align-items:center;justify-content:center;padding:1px 7px;border-radius:9999px;font-size:11px;font-weight:700;color:#1e40af;background:#dbeafe;border:1px solid #bfdbfe;letter-spacing:.02em;line-height:1.4;margin-right:6px;vertical-align:middle}.plate-num-pill.square{color:#7c2d12;background:#ffedd5;border-color:#fed7aa}.quick-date-group{display:inline-flex;align-items:center;background:#f1f5f9;padding:2px;border-radius:6px;gap:2px}.quick-date-btn{border:none;background:transparent;padding:4px 10px;font-size:12px;color:#64748b;border-radius:4px;cursor:pointer;transition:all .15s ease;font-weight:500}.quick-date-btn:hover{color:#0f172a;background:#fff9}.quick-date-btn.active{background:#fff;color:#2563eb;font-weight:600;box-shadow:0 1px 2px #0000000f}.meta-tab-nav{display:flex;gap:3px;background:#0f1622;padding:3px;border-radius:8px;border:1px solid #243044;margin-bottom:12px}.meta-tab-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:5px 12px;border:1px solid transparent;background:transparent;font-size:13px;font-weight:500;color:#94a3b8;border-radius:6px;cursor:pointer;transition:all .15s ease}.meta-tab-btn:hover{color:#e2e8f0;background:#94a3b81f}.meta-tab-btn.active{background:#243044;color:#f1f5f9;font-weight:600;border-color:#334155;box-shadow:none}.thermal-paper-shadow{box-shadow:0 8px 30px #0000001f,0 2px 8px #0000000f!important;border:1px solid #e2e8f0!important;border-radius:4px!important}.custom-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;color:#94a3b8;text-align:center}.custom-empty-state .empty-icon{font-size:40px;margin-bottom:12px;opacity:.9}.custom-empty-state .empty-title{font-size:15px;font-weight:600;color:#f1f5f9;margin-bottom:6px}.custom-empty-state .empty-desc{font-size:13px;color:#94a3b8;max-width:320px;line-height:1.6;margin-bottom:16px}
