:root{--ground: #f4f5f1;--surface: #ffffff;--ink: #1c2118;--ink-soft: #4a5145;--ink-mute: #6b7264;--ink-faint: #9aa093;--accent: #3f6b3a;--rule: #e2e0d8;--rule-soft: #eeece5;--signal: #b4531e}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--ground);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-tap-highlight-color:transparent}.app-shell{display:flex;flex-direction:column;min-height:100%}.app-main{flex:1;padding:16px;max-width:900px;width:100%;margin:0 auto;padding-bottom:calc(16px + env(safe-area-inset-bottom))}.app-loading{display:flex;align-items:center;justify-content:center;height:100vh}.demo-banner{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 16px;padding-top:calc(8px + env(safe-area-inset-top));background:var(--surface);border-bottom:1px solid var(--rule)}.demo-banner-left{display:flex;align-items:center;gap:10px;min-width:0}.demo-chip{flex:none;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--signal);border:1px solid var(--signal);border-radius:3px;padding:2px 6px;white-space:nowrap}.demo-user{font-size:13px;color:var(--ink-mute);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.demo-banner-right{display:flex;align-items:center;gap:4px;flex:none}.banner-btn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 10px;color:var(--ink-soft);font-size:13px}.banner-btn:hover{color:var(--accent);background:var(--rule-soft)}.banner-btn-exit{border:1px solid var(--rule)}@media (max-width: 700px){.banner-btn-label{display:none}.banner-btn{padding:0 8px}}.demo-offline{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--signal)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.login-card{width:100%;max-width:420px;box-shadow:0 8px 32px -16px #1c211840}.login-head{margin-bottom:20px;text-align:center}.login-head .logo{margin:0 auto}.login-hint{margin-top:24px;padding-top:16px;border-top:1px solid var(--rule);text-align:center}.login-hint .login-role{text-align:left}.login-roles{display:flex;flex-direction:column;gap:6px;margin-top:10px}.login-role{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:10px 12px;background:var(--ground);border:1px solid var(--rule);border-radius:8px;cursor:pointer;font:inherit;text-align:left;transition:border-color .15s}.login-role:hover,.login-role:focus-visible{border-color:var(--accent)}.login-role-name{font-size:14px}.login-role-meta{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-mute)}.screen-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:16px}.screen-title{font-size:21px;font-weight:650;letter-spacing:-.01em;margin:0}.screen-head-left{display:flex;align-items:center;gap:4px;min-width:0}.help-btn{color:var(--ink-faint);font-size:19px}.help-btn:hover{color:var(--accent)}.help-list{list-style:none;counter-reset:help;margin:0;padding:0;display:flex;flex-direction:column;gap:16px}.help-item{counter-increment:help;display:grid;grid-template-columns:28px 1fr;gap:10px}.help-item:before{content:counter(help);display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--rule-soft);color:var(--accent);font-size:13px;font-weight:650}.help-item-title{font-size:15px;font-weight:600;margin-bottom:3px}.help-item-text{grid-column:2;font-size:13.5px;line-height:1.5;color:var(--ink-soft)}.req-list{display:flex;flex-direction:column;gap:12px}.req-card{display:block;background:var(--surface);border:1px solid var(--rule);border-radius:10px;padding:14px 16px 16px;box-shadow:0 1px 2px #1c21180a;transition:border-color .15s,box-shadow .15s}.req-card-clickable{cursor:pointer}.req-card-clickable:hover{border-color:var(--accent);box-shadow:0 4px 14px -8px #1c211840}.req-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:10px;margin-bottom:12px;border-bottom:1px solid var(--rule-soft)}.req-number{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;font-variant-numeric:tabular-nums;letter-spacing:.02em;color:var(--ink-mute)}.req-body{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.req-main{min-width:0;flex:1}.req-title{font-size:16px;font-weight:600;line-height:1.35;margin:0;text-wrap:balance}.req-substance{font-size:12.5px;color:var(--ink-mute);margin:3px 0 0;line-height:1.4}.req-qty-box{flex:none;text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:2px}.req-qty{font-size:24px;font-weight:650;line-height:1.1;font-variant-numeric:tabular-nums;color:var(--accent);white-space:nowrap}.req-unit{font-size:14px;font-weight:500;margin-left:4px;color:var(--ink-mute)}.req-qty-fact{font-size:12px;color:var(--signal);white-space:nowrap}.req-meta{display:flex;flex-direction:column;gap:5px;margin:14px 0 0;padding:0}.req-meta-row{display:grid;grid-template-columns:18px 1fr;align-items:start;gap:8px;font-size:13px;line-height:1.4}.req-meta-row dt{display:flex;align-items:center;justify-content:center;height:18px;color:var(--ink-faint);font-size:15px}.req-meta-row dd{margin:0;color:var(--ink-soft);min-width:0}.req-meta-sep{margin:0 6px;color:var(--ink-faint)}.req-vehicle{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;letter-spacing:.03em;white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.req-actions{display:flex;gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid var(--rule-soft)}.req-actions .ant-btn{height:44px;padding-inline:22px;font-weight:500}@media (max-width: 560px){.req-actions .ant-btn{flex:1}.req-body{gap:12px}.req-qty{font-size:21px}}.empty-state{text-align:center;padding:48px 16px;color:var(--ink-mute)}.timeline-time{font-variant-numeric:tabular-nums;font-size:12px;color:var(--ink-mute)}.gate-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:10px;margin-bottom:12px;border-bottom:1px solid var(--rule-soft)}.gate-vehicle{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:26px;font-weight:700;letter-spacing:.06em;font-variant-numeric:tabular-nums;line-height:1.1}.req-card-ready{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.gate-issued{background:#eaf0e6;border:1px solid var(--accent);border-radius:8px;padding:12px 14px;margin:12px 0 0}.gate-issued-label{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:4px}.gate-issued-title{font-size:15px;font-weight:600;line-height:1.35}.gate-issued-qty{font-size:26px;font-weight:700;line-height:1.15;font-variant-numeric:tabular-nums;color:var(--accent);margin-top:2px}.gate-issued-unit{font-size:15px;font-weight:500;color:var(--ink-mute);margin-left:5px}@media (max-width: 560px){.gate-vehicle{font-size:22px}}.status{display:inline-flex;align-items:center;gap:6px;flex:none;padding:4px 10px 4px 8px;border-radius:999px;font-size:12px;font-weight:600;line-height:1.35;letter-spacing:.01em;white-space:nowrap;border:1px solid transparent}.status-dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}.status-blocked{color:#9f2d13;background:#fdeeea;border-color:#f3c9bd}.status-pending_department,.status-pending_accounting{color:#8a5a06;background:#fdf4e3;border-color:#f0dcb4}.status-reserved{color:#1f4d80;background:#e9f1fa;border-color:#c4dbf0}.status-picking{color:#0f5f68;background:#e4f4f5;border-color:#b7e0e3}.status-issued{color:#fff;background:var(--accent);border-color:var(--accent)}.status-issued .status-dot{background:#fff}.status-completed{color:var(--ink-mute);background:var(--rule-soft);border-color:var(--rule)}.status-cancelled{color:#7d5548;background:#f6efec;border-color:#e6d5cd}.gate-head .status{font-size:13px;padding:5px 12px 5px 9px}@media (max-width: 560px){.status{font-size:11.5px;padding:3px 9px 3px 7px}}.req-date{display:inline-flex;align-items:center;gap:4px;margin-right:auto;margin-left:12px;font-size:12.5px;font-variant-numeric:tabular-nums;color:var(--ink-mute);white-space:nowrap}.req-date svg{font-size:14px;color:var(--ink-faint)}
