@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800;900&family=IBM+Plex+Mono:wght@400;500;600&display=swap";@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800;900&family=IBM+Plex+Mono:wght@400;500;600&family=Inter:wght@300;400;500;600;700&display=swap";.top-bar{display:flex;justify-content:space-between;align-items:center;padding:16px 32px;position:sticky;top:0;z-index:50;background:#ffffff73;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.5)}.top-bar-left{display:flex;align-items:center;gap:14px}.top-bar-logo{width:44px;height:44px;border-radius:14px;background:#1a1a2e;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:900;color:#fff;font-family:IBM Plex Mono,monospace;letter-spacing:-.05em}.top-bar-brand{display:flex;align-items:center;gap:10px}.top-bar-name{font-size:20px;font-weight:800;color:#1a1a2e;letter-spacing:-.04em}.top-bar-role{padding:3px 10px;border-radius:8px;background:#e8e7e3;font-size:10px;font-weight:700;color:#6b6b80;letter-spacing:.08em;font-family:IBM Plex Mono,monospace}.top-bar-right{display:flex;align-items:center;gap:16px}.top-bar-live{display:flex;align-items:center;gap:6px}.top-bar-live-dot{width:8px;height:8px;border-radius:50%;background:#22c55e;animation:livePulse 2s ease-in-out infinite}.top-bar-live-text{font-size:12px;font-weight:600;color:#8b8b99;font-family:IBM Plex Mono,monospace}.top-bar-icon-btn{width:40px;height:40px;border-radius:12px;background:#fff;border:1.5px solid #e8e7e3;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#6b6b80;transition:all .2s ease}.top-bar-icon-btn:hover{border-color:#d0d0cc;background:#f8f8f5;color:#1a1a2e}.top-bar-divider{width:1px;height:28px;background:#e8e7e3}.top-bar-user{display:flex;align-items:center;gap:10px;padding:6px 8px 6px 16px;background:#fff;border-radius:14px;border:1.5px solid #e8e7e3;cursor:pointer;transition:all .2s ease}.top-bar-user:hover{border-color:#d0d0cc}.top-bar-user-name{font-size:13px;font-weight:600;color:#1a1a2e}.top-bar-avatar{width:32px;height:32px;border-radius:10px;background:linear-gradient(135deg,#22c55e,#16a34a);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff}@keyframes livePulse{0%,to{opacity:.45}50%{opacity:1}}.floating-nav{position:fixed;bottom:28px;left:50%;transform:translate(-50%);z-index:100;display:flex;gap:4px;padding:6px;background:#ffffffd9;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-radius:22px;border:1px solid rgba(0,0,0,.08);box-shadow:0 8px 40px #00000014,0 1px 3px #0000000d;animation:navRise .6s cubic-bezier(.16,1,.3,1) .8s both}.floating-nav-pill{padding:10px 20px;border-radius:16px;border:none;font-size:13px;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1);font-family:Outfit,system-ui,sans-serif;display:flex;align-items:center;gap:8px;color:#6b6b80;background:transparent;letter-spacing:-.01em;text-decoration:none}.floating-nav-pill:hover{background:#f5f5f0;color:#1a1a2e}.floating-nav-pill.active{background:#1a1a2e;color:#fff;box-shadow:0 4px 15px #1a1a2e40}.floating-nav-badge{min-width:18px;height:18px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;font-family:IBM Plex Mono,monospace;background:#fee2e2;color:#dc2626}.floating-nav-pill.active .floating-nav-badge{background:#fff3;color:#fff}@keyframes navRise{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.app-layout-bento{min-height:100vh;background:#f2f1ee;font-family:Outfit,system-ui,sans-serif;position:relative}.app-layout-bento:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.3;background-image:radial-gradient(circle at 1px 1px,rgba(0,0,0,.03) 1px,transparent 0);background-size:24px 24px;z-index:0}.app-content-bento{max-width:1320px;margin:0 auto;padding:0 32px 120px;position:relative;z-index:1}.page-header-bento{margin-bottom:28px;animation:bentoSlideDown .5s cubic-bezier(.16,1,.3,1) both}.page-title-bento{margin:0;font-size:26px;font-weight:800;color:#1a1a2e;letter-spacing:-.03em}.page-subtitle-bento{margin:4px 0 0;font-size:14px;color:#8b8b99}@keyframes bentoSlideDown{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}.auth-page{min-height:100vh;background:#0f0f14;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:20px}.auth-bg-grid{position:absolute;inset:0;background-image:radial-gradient(circle at 1px 1px,rgba(255,255,255,.03) 1px,transparent 0);background-size:32px 32px;pointer-events:none}.auth-bg-glow{position:absolute;border-radius:50%;filter:blur(80px);pointer-events:none;opacity:.4}.auth-bg-glow-1{width:500px;height:500px;background:#6366f1;top:-150px;left:-100px}.auth-bg-glow-2{width:400px;height:400px;background:#f59e0b;bottom:-100px;right:-80px}.auth-wrapper{display:flex;width:100%;max-width:900px;min-height:480px;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:24px;overflow:hidden;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 40px 100px #0006;position:relative;z-index:1;animation:authRise .7s cubic-bezier(.16,1,.3,1) both}@keyframes authRise{0%{opacity:0;transform:translateY(30px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.auth-brand{flex:1;padding:0;display:flex;align-items:center;justify-content:center;position:relative;background:linear-gradient(135deg,rgba(99,102,241,.08) 0%,transparent 60%)}.auth-brand-content{position:relative;z-index:1}.auth-brand-image{width:100%;height:100%;overflow:hidden}.auth-brand-image img{width:100%;height:100%;object-fit:cover}.auth-logo{display:flex;align-items:center;gap:12px;margin-bottom:40px}.auth-logo-header .auth-logo{margin-bottom:16px}.auth-logo-icon{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#6366f1,#4f46e5);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:900;color:#fff;font-family:IBM Plex Mono,monospace;box-shadow:0 4px 20px #6366f159}.auth-logo-text{font-size:20px;font-weight:800;color:#fff;letter-spacing:-.04em}.auth-logo-header .auth-logo-text{color:#1a1a2e}.auth-brand-title{font-size:36px;font-weight:800;color:#fff;line-height:1.15;letter-spacing:-.04em;margin-bottom:16px}.auth-brand-highlight{background:linear-gradient(135deg,#a78bfa,#6366f1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;color:transparent}.auth-brand-desc{font-size:15px;color:#fff6;line-height:1.6;margin-bottom:36px;max-width:340px}.auth-brand-stats{display:flex;gap:28px}.auth-brand-stat{display:flex;flex-direction:column;gap:2px}.auth-brand-stat-value{font-size:20px;font-weight:800;color:#fff;letter-spacing:-.03em}.auth-brand-stat-label{font-size:11px;font-weight:600;color:#ffffff4d;letter-spacing:.06em;font-family:IBM Plex Mono,monospace;text-transform:uppercase}.auth-form-side{flex:1;padding:32px 36px;display:flex;align-items:center;justify-content:center;background:#fff}.auth-form-card{width:100%;max-width:340px}.auth-logo-header,.auth-form-header{margin-bottom:24px}.auth-logo-header .auth-form-title{font-size:22px;font-weight:800;color:#1a1a2e;line-height:1.2;letter-spacing:-.03em;margin:0 0 4px}.auth-form-subtitle{font-size:14px;color:#8b8b99;margin:0}.auth-form{display:flex;flex-direction:column;gap:14px}.auth-field{display:flex;flex-direction:column;gap:4px}.auth-label{font-size:12px;font-weight:600;color:#4a4a5a;letter-spacing:-.01em}.auth-input{width:100%;padding:10px 14px;border-radius:12px;border:1.5px solid #ededeb;font-size:14px;font-family:Outfit,system-ui,sans-serif;color:#1a1a2e;background:#fafaf8;outline:none;transition:all .25s ease}.auth-input:focus{border-color:#6366f1;background:#fff;box-shadow:0 0 0 4px #6366f114}.auth-input::placeholder{color:#c0c0bb}.auth-submit{width:100%;padding:12px;border-radius:12px;border:none;background:#1a1a2e;color:#fff;font-size:14px;font-weight:700;font-family:Outfit,system-ui,sans-serif;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1);display:flex;align-items:center;justify-content:center;gap:8px;margin-top:4px}.auth-submit:hover{background:#2d2b55;transform:translateY(-1px);box-shadow:0 8px 30px #1a1a2e40}.auth-submit:disabled{opacity:.6;cursor:not-allowed;transform:none}.auth-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:authSpin .6s linear infinite}@keyframes authSpin{to{transform:rotate(360deg)}}.auth-footer-link{text-align:center;margin-top:16px;font-size:13px;color:#8b8b99}.auth-link-accent{color:#6366f1;font-weight:600;text-decoration:none;transition:color .2s}.auth-link-accent:hover{color:#4f46e5}.auth-quick{margin-top:20px}.auth-quick-divider{display:flex;align-items:center;gap:12px;margin-bottom:14px}.auth-quick-divider:before,.auth-quick-divider:after{content:"";flex:1;height:1px;background:#ededeb}.auth-quick-divider span{font-size:11px;font-weight:600;color:#a0a09b;letter-spacing:.06em;font-family:IBM Plex Mono,monospace;text-transform:uppercase;white-space:nowrap}.auth-quick-buttons{display:flex;gap:8px}.auth-quick-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 8px;border-radius:12px;border:1.5px solid #ededeb;background:#fafaf8;font-size:12px;font-weight:600;color:#4a4a5a;font-family:Outfit,system-ui,sans-serif;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1)}.auth-quick-btn:hover{border-color:var(--accent);background:#fff;transform:translateY(-2px);box-shadow:0 8px 25px #0000000f}.auth-quick-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.auth-quick-emoji{font-size:18px;line-height:1}.auth-role-selector{display:flex;gap:6px}.auth-role-option{flex:1;padding:10px 8px;border-radius:12px;border:1.5px solid #ededeb;background:#fafaf8;text-align:center;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1)}.auth-role-option:hover{border-color:#c8c6c0;background:#fff}.auth-role-option.active{border-color:#6366f1;background:#eef2ff}.auth-role-emoji{font-size:18px;display:block;margin-bottom:4px}.auth-role-label{font-size:12px;font-weight:600;color:#4a4a5a}.auth-role-option.active .auth-role-label{color:#4f46e5}.auth-wrapper-register{max-width:900px}.auth-brand-features{display:flex;flex-direction:column;gap:18px;margin-top:8px}.auth-feature{display:flex;align-items:flex-start;gap:14px}.auth-feature-icon{font-size:20px;line-height:1;flex-shrink:0;margin-top:2px}.auth-feature-title{font-size:14px;font-weight:700;color:#fff;margin-bottom:2px}.auth-feature-desc{font-size:12px;color:#ffffff59;line-height:1.4}.auth-row{display:flex;gap:10px}.auth-row .auth-field{flex:1}@media(max-width:768px){.auth-wrapper{flex-direction:column;max-width:420px;min-height:auto}.auth-wrapper-register{max-width:420px}.auth-brand{min-height:160px}.auth-brand-title{font-size:26px}.auth-brand-stats{gap:20px}.auth-brand-features{display:none}.auth-form-side{padding:28px 24px}.auth-quick-buttons{flex-direction:column}.auth-row{flex-direction:column;gap:14px}.auth-logo-header .auth-form-title{font-size:20px}}@media(max-width:480px){.auth-brand{min-height:140px}.auth-brand-desc{display:none}.auth-form-side{padding:20px 18px}.auth-logo-header .auth-form-title{font-size:18px}}.bento-card{background:#fff;border-radius:24px;border:1px solid rgba(0,0,0,.05);overflow:hidden;transition:all .4s cubic-bezier(.16,1,.3,1);cursor:pointer;position:relative;animation:bentoRise .6s cubic-bezier(.16,1,.3,1) both}.bento-card:hover{box-shadow:0 20px 60px #00000012,0 0 0 1px #00000008;transform:translateY(-2px)}.bento-accent{background:linear-gradient(135deg,#1a1a2e,#2d2b55);color:#fff}.bento-accent:hover{box-shadow:0 20px 60px #1a1a2e33}@keyframes bentoRise{0%{opacity:0;transform:translateY(30px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.pd-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;animation:bentoRise .5s cubic-bezier(.16,1,.3,1) both}.pd-title{margin:0;font-size:26px;font-weight:800;color:#1a1a2e;letter-spacing:-.03em}.pd-subtitle{margin:4px 0 0;font-size:14px;color:#8b8b99}.pd-live{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:12px;background:#f0fdf4;border:1px solid #d1fae5}.pd-live-dot{width:7px;height:7px;border-radius:50%;background:#22c55e;animation:livePulse 2s ease-in-out infinite}.pd-live-label{font-size:12px;font-weight:600;color:#059669;font-family:IBM Plex Mono,monospace}.pd-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}.pd-hero{display:flex;flex-direction:column;justify-content:space-between;min-height:210px}.pd-hero-label{font-size:11px;font-weight:600;letter-spacing:.1em;color:#ffffff73;font-family:IBM Plex Mono,monospace;margin-bottom:6px}.pd-hero-value{display:flex;align-items:baseline;gap:8px;font-size:64px;font-weight:900;letter-spacing:-.05em;line-height:1}.pd-hero-unit{font-size:22px;font-weight:500;opacity:.5}.pd-hero-bar-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:12px;color:#fff6;font-family:IBM Plex Mono,monospace}.pd-hero-percent{font-size:13px;font-weight:700;color:#a78bfa}.pd-hero-track{height:6px;border-radius:3px;background:#ffffff26;overflow:hidden}.pd-hero-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,#a78bfa,#c4b5fd);transition:width 1.2s cubic-bezier(.16,1,.3,1)}.pd-hero-circle-1{position:absolute;top:-30px;right:-30px;width:140px;height:140px;border-radius:50%;border:1px solid rgba(255,255,255,.06);pointer-events:none}.pd-hero-circle-2{position:absolute;top:-10px;right:-10px;width:100px;height:100px;border-radius:50%;border:1px solid rgba(255,255,255,.04);pointer-events:none}.pd-metrics-col{grid-column:span 7;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.pd-metric{display:flex;flex-direction:column;justify-content:space-between;height:100%}.pd-metric-icon{width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:16px}.pd-metric-dot{width:10px;height:10px;border-radius:50%}.pd-metric-value-row{display:flex;align-items:baseline;gap:4px}.pd-metric-value{font-size:36px;font-weight:900;color:#1a1a2e;letter-spacing:-.04em;line-height:1}.pd-metric-sub{font-size:14px;font-weight:500;color:#8b8b99}.pd-metric-label{font-size:13px;font-weight:600;color:#4a4a5a;margin-top:4px}.pd-metric-right{margin-top:auto}.pd-metric-detail{font-size:11px;color:#a0a09b;font-family:IBM Plex Mono,monospace;margin-bottom:8px}.pd-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.pd-section-label{font-size:11px;font-weight:600;letter-spacing:.08em;color:#a0a09b;font-family:IBM Plex Mono,monospace;text-transform:uppercase}.pd-view-all{display:flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:#6366f1;padding:4px 10px;border-radius:8px;transition:background .2s;text-decoration:none}.pd-view-all:hover{background:#eef2ff}.pd-contract-list{display:flex;flex-direction:column;gap:12px}.pd-contract-item{padding:14px 16px;border-radius:14px;border:1.5px solid #ededeb;background:#fafaf8;cursor:pointer;transition:all .2s ease}.pd-contract-item:hover{border-color:#c8c6c0;background:#fff}.pd-contract-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.pd-contract-name{font-size:14px;font-weight:700;color:#1a1a2e}.pd-contract-type{font-weight:400;color:#8b8b99;margin-left:4px}.pd-days-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:8px;font-size:11px;font-weight:600;font-family:IBM Plex Mono,monospace}.pd-contract-meta{display:flex;gap:6px;font-size:12px;color:#6b6b80;font-family:IBM Plex Mono,monospace;margin-bottom:10px}.pd-dot{color:#d0d0cc}.pd-contract-bar{height:4px;border-radius:2px;background:#f0f0ed;overflow:hidden}.pd-contract-bar-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,#6366f1,#818cf8);transition:width 1s cubic-bezier(.16,1,.3,1)}.pd-demand-list{display:flex;flex-direction:column;gap:10px}.pd-demand-item{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-radius:14px;border:1.5px solid #ededeb;background:#fafaf8;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1)}.pd-demand-item:hover{border-color:#c8c6c0;background:#fff;transform:translate(4px)}.pd-demand-name{font-size:14px;font-weight:700;color:#1a1a2e;display:flex;align-items:center;gap:8px;margin-bottom:6px}.pd-demand-type-tag{padding:2px 8px;border-radius:6px;font-size:10px;font-weight:600;font-family:IBM Plex Mono,monospace}.pd-demand-meta{display:flex;gap:8px;font-size:12px;color:#6b6b80;font-family:IBM Plex Mono,monospace}.pd-demand-days{font-size:20px;font-weight:800;color:#1a1a2e;letter-spacing:-.03em;line-height:1;display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0}.pd-demand-days span{font-size:9px;font-weight:600;color:#a0a09b;letter-spacing:.05em;font-family:IBM Plex Mono,monospace}.pd-actions{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.pd-action-btn{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;border:1.5px solid #ededeb;background:#fafaf8;font-size:13px;font-weight:600;color:#1a1a2e;text-decoration:none;transition:all .25s ease}.pd-action-btn:hover{background:#fff;border-color:#c8c6c0;transform:translateY(-1px)}.pd-action-icon{width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center}.pd-status-row{display:flex;gap:8px;flex-wrap:wrap;padding-top:16px;border-top:1px solid #ededeb}.pd-status-tag{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:8px;font-size:11px;font-weight:600;font-family:IBM Plex Mono,monospace;background:#f0fdf4;color:#16a34a}.pd-status-dot{width:5px;height:5px;border-radius:50%}.pd-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:32px 16px;color:#a0a09b;font-size:13px}@media(max-width:1024px){.pd-grid{grid-template-columns:repeat(6,1fr)}.pd-hero{grid-column:span 6!important}.pd-metrics-col{grid-column:span 6}}@media(max-width:768px){.pd-metrics-col{grid-template-columns:1fr}.pd-hero-value{font-size:48px}}.pp-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;animation:bentoRise .5s cubic-bezier(.16,1,.3,1) both}.pp-title{margin:0;font-size:24px;font-weight:800;color:#1a1a2e;letter-spacing:-.03em}.pp-subtitle{margin:4px 0 0;font-size:14px;color:#8b8b99}.pp-add-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:14px;border:none;background:#1a1a2e;color:#fff;font-size:13px;font-weight:700;font-family:Outfit,system-ui,sans-serif;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1)}.pp-add-btn:hover{background:#2d2b55;transform:translateY(-1px);box-shadow:0 8px 25px #1a1a2e33}.pp-summary-strip{display:flex;gap:12px;margin-bottom:24px;animation:bentoRise .5s cubic-bezier(.16,1,.3,1) .05s both}.pp-summary-item{flex:1;display:flex;flex-direction:column;gap:2px;padding:16px 20px;background:#fff;border:1px solid rgba(0,0,0,.05);border-radius:16px;transition:transform .2s ease}.pp-summary-item:hover{transform:translateY(-1px)}.pp-summary-value{font-size:22px;font-weight:800;color:#1a1a2e;letter-spacing:-.03em;font-family:IBM Plex Mono,monospace}.pp-summary-label{font-size:11px;font-weight:600;color:#a0a09b;letter-spacing:.06em;text-transform:uppercase;font-family:IBM Plex Mono,monospace}.pp-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}.pp-card{background:#fff;border:1px solid rgba(0,0,0,.05);border-radius:20px;padding:24px;display:flex;flex-direction:column;gap:14px;transition:all .3s cubic-bezier(.16,1,.3,1);animation:bentoRise .5s cubic-bezier(.16,1,.3,1) both}.pp-card:hover{border-color:#0000001a;transform:translateY(-2px);box-shadow:0 12px 40px #0000000f}.pp-card-top{display:flex;justify-content:space-between;align-items:center}.pp-ash-tag{padding:4px 12px;border-radius:8px;font-size:11px;font-weight:600;font-family:IBM Plex Mono,monospace;letter-spacing:.02em}.pp-status-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.pp-card-desc{font-size:13px;color:#6b6b80;line-height:1.5;margin:0}.pp-card-stats{display:flex;gap:16px;padding:14px 0;border-top:1px solid #f0f0ed;border-bottom:1px solid #f0f0ed}.pp-card-stat{display:flex;flex-direction:column;gap:2px}.pp-card-stat-value{font-size:18px;font-weight:800;color:#1a1a2e;letter-spacing:-.03em}.pp-card-stat-label{font-size:10px;font-weight:600;color:#a0a09b;letter-spacing:.06em;text-transform:uppercase;font-family:IBM Plex Mono,monospace}.pp-card-usage{display:flex;flex-direction:column;gap:6px}.pp-card-usage-info{display:flex;justify-content:space-between;font-size:11px;color:#8b8b99}.pp-card-usage-percent{font-weight:700;color:#1a1a2e;font-family:IBM Plex Mono,monospace}.pp-card-usage-track{height:4px;border-radius:2px;background:#f0f0ed;overflow:hidden}.pp-card-usage-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,#6366f1,#818cf8);transition:width 1s cubic-bezier(.16,1,.3,1)}.pp-card-footer{display:flex;justify-content:space-between;align-items:center}.pp-card-expires{font-size:11px;color:#a0a09b;font-family:IBM Plex Mono,monospace}.pp-card-actions{display:flex;gap:6px}.pp-icon-btn{width:34px;height:34px;border-radius:10px;border:1.5px solid #ededeb;background:#fafaf8;color:#6b6b80;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.pp-icon-btn:hover{border-color:#c8c6c0;background:#fff;color:#1a1a2e}.pp-icon-btn-danger:hover{border-color:#fca5a5;background:#fef2f2;color:#dc2626}.pp-empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:64px 24px;text-align:center;animation:bentoRise .5s cubic-bezier(.16,1,.3,1) both}.pp-empty-icon{width:64px;height:64px;border-radius:20px;background:#f0f0ed;display:flex;align-items:center;justify-content:center;color:#a0a09b;margin-bottom:4px}.pp-empty-title{font-size:18px;font-weight:700;color:#1a1a2e;margin:0}.pp-empty-desc{font-size:14px;color:#8b8b99;margin:0;max-width:320px}.pp-modal-overlay{position:fixed;inset:0;background:#0f0f1499;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px;animation:modalFadeIn .25s ease}.pp-modal{background:#fff;border-radius:24px;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:0 40px 100px #00000040;animation:modalSlideUp .35s cubic-bezier(.16,1,.3,1)}.pp-modal-body{padding:0 28px 28px}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.pp-modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px 28px 0}.pp-modal-title{font-size:20px;font-weight:800;color:#1a1a2e;letter-spacing:-.03em;margin:0}.pp-modal-close{width:36px;height:36px;border-radius:12px;border:none;background:#f0f0ed;color:#6b6b80;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.pp-modal-close:hover{background:#e5e5e0;color:#1a1a2e}.pp-modal-form{padding:24px 28px 28px;display:flex;flex-direction:column;gap:18px}.pp-form-field{display:flex;flex-direction:column;gap:6px}.pp-form-label{font-size:13px;font-weight:600;color:#4a4a5a}.pp-form-input,.pp-form-select{width:100%;padding:12px 16px;border-radius:14px;border:1.5px solid #ededeb;font-size:14px;font-family:Outfit,system-ui,sans-serif;color:#1a1a2e;background:#fafaf8;outline:none;transition:all .25s ease}.pp-form-input:focus,.pp-form-select:focus{border-color:#6366f1;background:#fff;box-shadow:0 0 0 4px #6366f114}.pp-form-input::placeholder{color:#c0c0bb}.pp-form-row{display:flex;gap:12px}.pp-form-row .pp-form-field{flex:1}.pp-form-submit{width:100%;padding:14px;border-radius:14px;border:none;background:#1a1a2e;color:#fff;font-size:14px;font-weight:700;font-family:Outfit,system-ui,sans-serif;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1);margin-top:4px}.pp-form-submit:hover{background:#2d2b55;transform:translateY(-1px);box-shadow:0 8px 25px #1a1a2e33}.pp-filters{display:flex;align-items:center;gap:10px;margin-bottom:20px;flex-wrap:wrap;animation:bentoRise .5s cubic-bezier(.16,1,.3,1) .08s both}.pp-filter-chip{padding:8px 16px;border-radius:12px;border:1.5px solid #ededeb;background:#fafaf8;font-size:13px;font-weight:600;color:#6b6b80;cursor:pointer;font-family:Outfit,system-ui,sans-serif;transition:all .2s ease}.pp-filter-chip:hover{border-color:#c8c6c0;background:#fff}.pp-filter-chip.active{border-color:#6366f1;background:#eef2ff;color:#4f46e5}.pp-filter-select{padding:8px 14px;border-radius:12px;border:1.5px solid #ededeb;background:#fafaf8;font-size:13px;font-weight:500;color:#4a4a5a;font-family:Outfit,system-ui,sans-serif;outline:none;cursor:pointer}.pp-filter-select:focus{border-color:#6366f1}.pp-filter-count{margin-left:auto;font-size:12px;color:#a0a09b;font-family:IBM Plex Mono,monospace}.pp-table-wrap{background:#fff;border:1px solid rgba(0,0,0,.05);border-radius:20px;overflow:hidden;animation:bentoRise .5s cubic-bezier(.16,1,.3,1) .1s both}.pp-table{width:100%;border-collapse:collapse}.pp-table th{text-align:left;padding:14px 20px;font-size:11px;font-weight:600;color:#a0a09b;text-transform:uppercase;letter-spacing:.06em;font-family:IBM Plex Mono,monospace;background:#fafaf8;border-bottom:1px solid #f0f0ed}.pp-table td{padding:14px 20px;font-size:13px;color:#4a4a5a;border-bottom:1px solid #f8f8f6;vertical-align:middle}.pp-table tr:last-child td{border-bottom:none}.pp-table tr:hover td{background:#fafaf8}.pp-table-bold{font-weight:700;color:#1a1a2e}.pp-table-mono{font-family:IBM Plex Mono,monospace;font-size:12px}.pp-card-urgent{border-color:#fecaca}.vd-specific-tag{padding:3px 8px;border-radius:6px;font-size:9px;font-weight:700;letter-spacing:.08em;background:#fef3c7;color:#b45309;font-family:IBM Plex Mono,monospace}.vd-days-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:8px;font-size:11px;font-weight:700;font-family:IBM Plex Mono,monospace}.vd-consumer{font-size:16px;font-weight:800;color:#1a1a2e;letter-spacing:-.02em}.vd-meta-row{display:flex;justify-content:space-between;align-items:center}.vd-meta-tag{font-size:11px;font-weight:600;color:#6b6b80;font-family:IBM Plex Mono,monospace}.vd-meta-expires{font-size:11px;color:#a0a09b;font-family:IBM Plex Mono,monospace}.vd-accept-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;border-radius:14px;border:none;background:#059669;color:#fff;font-size:13px;font-weight:700;font-family:Outfit,system-ui,sans-serif;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1)}.vd-accept-btn:hover{background:#047857;transform:translateY(-1px);box-shadow:0 8px 25px #05966940}.vd-modal-summary{display:flex;flex-direction:column;gap:10px;padding:18px 20px;background:#fafaf8;border:1px solid #f0f0ed;border-radius:16px}.vd-modal-summary-row{display:flex;justify-content:space-between;align-items:center}.vd-modal-summary-label{font-size:12px;color:#8b8b99;font-family:IBM Plex Mono,monospace}.vd-modal-summary-value{font-size:13px;font-weight:700;color:#1a1a2e}.vd-modal-highlight{font-size:16px;color:#059669}.vd-warning-text{font-size:11px;color:#dc2626;margin-top:4px;font-family:IBM Plex Mono,monospace}.vd-confirm-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;border-radius:14px;border:none;background:#059669;color:#fff;font-size:14px;font-weight:700;font-family:Outfit,system-ui,sans-serif;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1)}.vd-confirm-btn:hover{background:#047857;transform:translateY(-1px);box-shadow:0 8px 25px #05966940}.pc-consumer-cell{display:flex;flex-direction:column;gap:2px}.pc-consumer-addr{font-size:11px;color:#a0a09b;font-family:IBM Plex Mono,monospace}.pc-progress-cell{display:flex;flex-direction:column;gap:6px;min-width:140px}.pc-progress-track{height:5px;border-radius:3px;background:#f0f0ed;overflow:hidden}.pc-progress-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,#6366f1,#818cf8);transition:width 1s cubic-bezier(.16,1,.3,1)}.pc-progress-text{font-size:11px;color:#6b6b80;font-family:IBM Plex Mono,monospace;display:flex;justify-content:space-between}.pc-progress-pct{font-weight:700;color:#1a1a2e}.pc-deadline-cell{display:flex;flex-direction:column;gap:2px}.pc-deadline-days{display:flex;align-items:center;gap:4px;font-size:12px;font-weight:700;font-family:IBM Plex Mono,monospace}.pc-deadline-date{font-size:11px;color:#a0a09b;font-family:IBM Plex Mono,monospace}.pg-refresh-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:14px;border:1.5px solid #ededeb;background:#fafaf8;font-size:13px;font-weight:600;color:#4a4a5a;font-family:Outfit,system-ui,sans-serif;cursor:pointer;transition:all .2s ease}.pg-refresh-btn:hover{border-color:#c8c6c0;background:#fff}.pg-info-banner{display:flex;align-items:flex-start;gap:12px;padding:16px 20px;background:#eef2ff;border:1px solid #c7d2fe;border-radius:16px;font-size:13px;color:#4338ca;line-height:1.5;margin-bottom:20px;animation:bentoRise .5s cubic-bezier(.16,1,.3,1) .06s both}.pg-info-banner svg{flex-shrink:0;margin-top:2px}.pg-tabs{display:flex;gap:4px;margin-bottom:20px;background:#f0f0ed;border-radius:14px;padding:4px;width:fit-content;animation:bentoRise .5s cubic-bezier(.16,1,.3,1) .08s both}.pg-tab{display:flex;align-items:center;gap:8px;padding:10px 18px;border-radius:11px;border:none;background:transparent;font-size:13px;font-weight:600;color:#6b6b80;font-family:Outfit,system-ui,sans-serif;cursor:pointer;transition:all .25s ease}.pg-tab:hover{color:#1a1a2e}.pg-tab.active{background:#fff;color:#1a1a2e;box-shadow:0 2px 8px #0000000f}.pg-tab-count{padding:2px 8px;border-radius:8px;font-size:11px;font-weight:700;font-family:IBM Plex Mono,monospace;background:#0000000f}.pg-tab.active .pg-tab-count{background:#eef2ff;color:#4f46e5}.pg-trip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px}.pg-trip-card{background:#fff;border:1px solid rgba(0,0,0,.05);border-radius:20px;padding:24px;display:flex;flex-direction:column;gap:16px;transition:all .3s cubic-bezier(.16,1,.3,1);animation:bentoRise .5s cubic-bezier(.16,1,.3,1) both}.pg-trip-card:hover{border-color:#0000001a;transform:translateY(-2px);box-shadow:0 12px 40px #0000000f}.pg-trip-ready{border-color:#bbf7d0;box-shadow:0 0 0 1px #22c55e1a}.pg-trip-ready:hover{border-color:#86efac}.pg-trip-top{display:flex;justify-content:space-between;align-items:center}.pg-trip-vehicle{display:flex;align-items:center;gap:10px}.pg-vehicle-icon{width:36px;height:36px;border-radius:12px;background:#f0f0ed;display:flex;align-items:center;justify-content:center;color:#6b6b80}.pg-vehicle-number{font-size:17px;font-weight:800;color:#1a1a2e;font-family:IBM Plex Mono,monospace;letter-spacing:-.02em}.pg-stages{display:flex;flex-direction:column;gap:10px}.pg-stages-track{height:4px;border-radius:2px;background:#f0f0ed;overflow:hidden}.pg-stages-fill{height:100%;border-radius:2px;transition:width .8s cubic-bezier(.16,1,.3,1)}.pg-stages-labels{display:flex;justify-content:space-between}.pg-stage{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1}.pg-stage-dot{width:10px;height:10px;border-radius:50%;border:2px solid #d0d0cc;background:#fff;transition:all .3s ease}.pg-stage.active .pg-stage-dot{border-width:0}.pg-stage-label{font-size:10px;font-weight:600;color:#c0c0bb;text-transform:uppercase;letter-spacing:.04em;font-family:IBM Plex Mono,monospace}.pg-stage.active .pg-stage-label{color:#4a4a5a}.pg-stage-time{font-size:10px;color:#a0a09b;font-family:IBM Plex Mono,monospace}.pg-details{display:flex;flex-direction:column;gap:8px;padding:16px 18px;background:#fafaf8;border-radius:14px}.pg-detail-row{display:flex;justify-content:space-between;font-size:12px;color:#6b6b80}.pg-detail-row span:first-child{display:flex;align-items:center;gap:4px;color:#8b8b99;font-family:IBM Plex Mono,monospace}.pg-detail-row span:last-child{font-weight:600;color:#1a1a2e}.pg-detail-bold{font-weight:700!important}.pg-detail-highlight{padding-top:8px;margin-top:4px;border-top:1px solid #ededeb}.pg-detail-highlight span:last-child{font-size:14px;font-weight:800!important;color:#059669!important}.pg-dispatch-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:13px;border-radius:14px;border:none;background:#1a1a2e;color:#fff;font-size:13px;font-weight:700;font-family:Outfit,system-ui,sans-serif;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1)}.pg-dispatch-btn:hover{background:#2d2b55;transform:translateY(-1px);box-shadow:0 8px 25px #1a1a2e33}.pg-waiting{text-align:center;padding:10px;font-size:12px;color:#a0a09b;border-top:1px dashed #ededeb;font-family:IBM Plex Mono,monospace}.pg-dispatch-summary{display:flex;flex-direction:column;gap:18px;padding:22px;background:#fafaf8;border:1px solid #f0f0ed;border-radius:18px}.pg-dispatch-vehicle{display:flex;align-items:center;gap:14px;padding-bottom:16px;border-bottom:1px solid #ededeb}.pg-vehicle-icon-lg{width:48px;height:48px;border-radius:16px;background:#eef2ff;color:#6366f1;display:flex;align-items:center;justify-content:center}.pg-dispatch-vehicle-num{font-size:22px;font-weight:800;color:#1a1a2e;font-family:IBM Plex Mono,monospace;letter-spacing:-.03em}.pg-dispatch-rows{display:flex;flex-direction:column;gap:10px}.pg-dispatch-row{display:flex;justify-content:space-between;font-size:13px}.pg-dispatch-row span:first-child{color:#8b8b99}.pg-dispatch-row span:last-child{font-weight:600;color:#1a1a2e}.pg-dispatch-net{padding-top:10px;margin-top:4px;border-top:1px solid #ededeb}.pg-dispatch-net span:last-child{font-size:16px;font-weight:800;color:#059669}.pg-dispatch-note{padding:14px 16px;background:#fef3c7;border-radius:12px;font-size:12px;color:#92400e;line-height:1.5}.pg-dispatch-actions{display:flex;gap:10px}.pg-cancel-btn{flex:1;padding:14px;border-radius:14px;border:1.5px solid #ededeb;background:#fafaf8;font-size:14px;font-weight:600;color:#4a4a5a;font-family:Outfit,system-ui,sans-serif;cursor:pointer;transition:all .2s ease}.pg-cancel-btn:hover{border-color:#c8c6c0;background:#fff}.pg-confirm-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;border-radius:14px;border:none;background:#1a1a2e;color:#fff;font-size:14px;font-weight:700;font-family:Outfit,system-ui,sans-serif;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1)}.pg-confirm-btn:hover{background:#2d2b55;transform:translateY(-1px);box-shadow:0 8px 25px #1a1a2e33}@media(max-width:768px){.pp-header{flex-direction:column;align-items:flex-start;gap:16px}.pp-summary-strip{flex-wrap:wrap}.pp-summary-item{flex:1 1 calc(50% - 6px)}.pp-card-grid{grid-template-columns:1fr}.pp-form-row{flex-direction:column}.pp-filters{flex-direction:column;align-items:stretch}.pp-filter-count{margin-left:0}}.pp-slip-body{padding:0;background:#f8fafc}.pp-slip-header{background:#1a1a2e;color:#fff;padding:20px 28px;display:flex;justify-content:space-between;align-items:center}.pp-slip-title{display:flex;align-items:center;gap:12px;font-size:18px;font-weight:800;letter-spacing:.05em}.pp-slip-number{font-size:14px;font-weight:600;background:#ffffff26;padding:6px 14px;border-radius:8px}.pp-slip-content{display:flex;gap:24px;padding:24px}.pp-slip-left{display:flex;flex-direction:column;gap:20px;flex:0 0 auto}.pp-slip-qr{background:#fff;padding:16px;border-radius:12px;box-shadow:0 2px 8px #00000014;display:flex;align-items:center;justify-content:center}.pp-slip-vehicle-info{background:#fff;padding:16px;border-radius:12px;box-shadow:0 2px 8px #00000014}.pp-slip-vehicle-header{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:700;color:#1a1a2e;padding-bottom:12px;border-bottom:2px solid #e5e7eb;margin-bottom:12px}.pp-slip-driver{display:flex;flex-direction:column;gap:4px;font-size:14px}.pp-slip-phone{color:#6b7280;font-size:13px}.pp-slip-right{flex:1;display:flex;flex-direction:column;gap:20px}.pp-slip-weights{background:#fff;padding:18px;border-radius:12px;box-shadow:0 2px 8px #00000014}.pp-slip-weights h4{margin:0 0 14px;font-size:14px;font-weight:700;color:#374151;text-transform:uppercase;letter-spacing:.05em}.pp-slip-weight-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px}.pp-slip-weight-item{text-align:center;padding:12px;background:#f8fafc;border-radius:8px}.pp-slip-weight-label{display:block;font-size:12px;color:#6b7280;margin-bottom:4px}.pp-slip-weight-value{display:block;font-size:20px;font-weight:800;color:#1a1a2e}.pp-slip-weight-net{background:#dcfce7;border:2px solid #16a34a}.pp-slip-weight-net .pp-slip-weight-value{color:#16a34a}.pp-slip-ash-type{display:flex;justify-content:center}.pp-slip-route{background:#fff;padding:18px;border-radius:12px;box-shadow:0 2px 8px #00000014}.pp-slip-route-section{display:flex;flex-direction:column;gap:8px}.pp-slip-route-header{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:#6b7280;letter-spacing:.05em;margin-bottom:8px}.pp-slip-route-content{padding-left:20px}.pp-slip-route-name{font-size:15px;font-weight:700;color:#1a1a2e;margin-bottom:4px}.pp-slip-route-addr{font-size:13px;color:#6b7280;line-height:1.4}.pp-slip-route-divider{display:flex;align-items:center;justify-content:center;color:#94a3b8;padding:8px 0}.pp-slip-footer{background:#1a1a2e;color:#fff;padding:14px 28px;font-size:12px}.pp-slip-meta{display:flex;justify-content:space-between;align-items:center;color:#ffffffb3}@media(max-width:768px){.pp-slip-content{flex-direction:column}.pp-slip-weight-grid{grid-template-columns:1fr}.pp-slip-route{gap:16px}}.cd-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;animation:bentoRise .5s cubic-bezier(.16,1,.3,1) both}.cd-title{margin:0;font-size:26px;font-weight:800;color:#1a1a2e;letter-spacing:-.03em}.cd-subtitle{margin:4px 0 0;font-size:14px;color:#8b8b99}.cd-live{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:12px;background:#f0fdf4;border:1px solid #d1fae5}.cd-live-dot{width:7px;height:7px;border-radius:50%;background:#22c55e;animation:livePulse 2s ease-in-out infinite}.cd-live-label{font-size:12px;font-weight:600;color:#059669;font-family:IBM Plex Mono,monospace}.cd-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}.cd-hero{display:flex;flex-direction:column;justify-content:space-between;min-height:210px}.cd-hero-label{font-size:11px;font-weight:600;letter-spacing:.1em;color:#ffffff73;font-family:IBM Plex Mono,monospace;margin-bottom:6px}.cd-hero-value{display:flex;align-items:baseline;gap:8px;font-size:64px;font-weight:900;letter-spacing:-.05em;line-height:1}.cd-hero-unit{font-size:22px;font-weight:500;opacity:.5}.cd-hero-bar-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:12px;color:#fff6;font-family:IBM Plex Mono,monospace}.cd-hero-percent{font-size:13px;font-weight:700;color:#67e8f9}.cd-hero-track{height:6px;border-radius:3px;background:#ffffff26;overflow:hidden}.cd-hero-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,#67e8f9,#22d3ee);transition:width 1.2s cubic-bezier(.16,1,.3,1)}.cd-hero-circle-1{position:absolute;top:-30px;right:-30px;width:140px;height:140px;border-radius:50%;border:1px solid rgba(255,255,255,.06);pointer-events:none}.cd-hero-circle-2{position:absolute;top:-10px;right:-10px;width:100px;height:100px;border-radius:50%;border:1px solid rgba(255,255,255,.04);pointer-events:none}.cd-metrics-col{grid-column:span 7;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.cd-metric{display:flex;flex-direction:column;justify-content:space-between;height:100%}.cd-metric-icon{width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:16px}.cd-metric-dot{width:10px;height:10px;border-radius:50%}.cd-metric-value-row{display:flex;align-items:baseline;gap:4px}.cd-metric-value{font-size:36px;font-weight:900;color:#1a1a2e;letter-spacing:-.04em;line-height:1}.cd-metric-sub{font-size:14px;font-weight:500;color:#8b8b99}.cd-metric-label{font-size:13px;font-weight:600;color:#4a4a5a;margin-top:4px}.cd-metric-right{margin-top:auto}.cd-metric-detail{font-size:11px;color:#a0a09b;font-family:IBM Plex Mono,monospace;margin-bottom:8px}.cd-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.cd-section-label{font-size:11px;font-weight:600;letter-spacing:.08em;color:#a0a09b;font-family:IBM Plex Mono,monospace;text-transform:uppercase}.cd-view-all{display:flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:#6366f1;padding:4px 10px;border-radius:8px;transition:background .2s;text-decoration:none}.cd-view-all:hover{background:#eef2ff}.cd-demand-list{display:flex;flex-direction:column;gap:10px}.cd-demand-item{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-radius:14px;border:1.5px solid #ededeb;background:#fafaf8;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1)}.cd-demand-item:hover{border-color:#c8c6c0;background:#fff;transform:translate(4px)}.cd-demand-name{font-size:14px;font-weight:700;color:#1a1a2e;display:flex;align-items:center;gap:8px;margin-bottom:6px}.cd-demand-qty{font-size:12px;font-weight:600;color:#6b6b80;padding:2px 8px;border-radius:6px;background:#f0f0ed;font-family:IBM Plex Mono,monospace}.cd-demand-meta{display:flex;gap:6px;font-size:12px;color:#6b6b80;font-family:IBM Plex Mono,monospace}.cd-dot{color:#d0d0cc}.cd-demand-days{font-size:20px;font-weight:800;color:#1a1a2e;letter-spacing:-.03em;line-height:1;display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0}.cd-demand-days span{font-size:9px;font-weight:600;color:#a0a09b;letter-spacing:.05em;font-family:IBM Plex Mono,monospace}.cd-status-chip{padding:4px 10px;border-radius:8px;font-size:11px;font-weight:600;font-family:IBM Plex Mono,monospace;text-transform:capitalize}.cd-avail-list{display:flex;flex-direction:column;gap:10px}.cd-avail-item{padding:14px 16px;border-radius:14px;border:1.5px solid #ededeb;background:#fafaf8;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1)}.cd-avail-item:hover{border-color:#c8c6c0;background:#fff;transform:translate(4px)}.cd-avail-name{font-size:14px;font-weight:700;color:#1a1a2e;display:flex;align-items:center;gap:8px;margin-bottom:6px}.cd-avail-type-tag{padding:2px 8px;border-radius:6px;font-size:10px;font-weight:600;font-family:IBM Plex Mono,monospace}.cd-avail-meta{display:flex;gap:8px;font-size:12px;color:#6b6b80;font-family:IBM Plex Mono,monospace}.cd-actions{display:flex;flex-direction:column;gap:8px}.cd-action-btn{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;border:1.5px solid #ededeb;background:#fafaf8;font-size:13px;font-weight:600;color:#1a1a2e;text-decoration:none;transition:all .25s ease}.cd-action-btn:hover{background:#fff;border-color:#c8c6c0;transform:translateY(-1px)}.cd-action-icon{width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center}.cd-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:32px 16px;color:#a0a09b;font-size:13px}@media(max-width:1024px){.cd-grid{grid-template-columns:repeat(6,1fr)}.cd-hero{grid-column:span 6!important}.cd-metrics-col{grid-column:span 6}}@media(max-width:768px){.cd-metrics-col{grid-template-columns:1fr}.cd-hero-value{font-size:48px}}.cp-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;animation:bentoRise .5s cubic-bezier(.16,1,.3,1) both}.cp-title{margin:0;font-size:24px;font-weight:800;color:#1a1a2e;letter-spacing:-.03em}.cp-subtitle{margin:4px 0 0;font-size:14px;color:#8b8b99}.cp-add-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:14px;border:none;background:#1a1a2e;color:#fff;font-size:13px;font-weight:700;font-family:Outfit,system-ui,sans-serif;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1)}.cp-add-btn:hover{background:#2d2b55;transform:translateY(-1px);box-shadow:0 8px 25px #1a1a2e33}.cp-summary-strip{display:flex;gap:12px;margin-bottom:24px;animation:bentoRise .5s cubic-bezier(.16,1,.3,1) .05s both}.cp-summary-item{flex:1;display:flex;flex-direction:column;gap:2px;padding:16px 20px;background:#fff;border:1px solid rgba(0,0,0,.05);border-radius:16px;transition:transform .2s ease}.cp-summary-item:hover{transform:translateY(-1px)}.cp-summary-value{font-size:22px;font-weight:800;color:#1a1a2e;letter-spacing:-.03em;font-family:IBM Plex Mono,monospace}.cp-summary-label{font-size:11px;font-weight:600;color:#a0a09b;letter-spacing:.06em;text-transform:uppercase;font-family:IBM Plex Mono,monospace}.cp-filters{display:flex;align-items:center;gap:10px;margin-bottom:20px;flex-wrap:wrap;animation:bentoRise .5s cubic-bezier(.16,1,.3,1) .08s both}.cp-filter-chip{padding:8px 16px;border-radius:12px;border:1.5px solid #ededeb;background:#fafaf8;font-size:13px;font-weight:600;color:#6b6b80;cursor:pointer;font-family:Outfit,system-ui,sans-serif;transition:all .2s ease;text-transform:capitalize}.cp-filter-chip:hover{border-color:#c8c6c0;background:#fff}.cp-filter-chip.active{border-color:#6366f1;background:#eef2ff;color:#4f46e5}.cp-filter-count{margin-left:auto;font-size:12px;color:#a0a09b;font-family:IBM Plex Mono,monospace}.cp-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}.cp-card{background:#fff;border:1px solid rgba(0,0,0,.05);border-radius:20px;padding:24px;display:flex;flex-direction:column;gap:14px;transition:all .3s cubic-bezier(.16,1,.3,1);animation:bentoRise .5s cubic-bezier(.16,1,.3,1) both}.cp-card:hover{border-color:#0000001a;transform:translateY(-2px);box-shadow:0 12px 40px #0000000f}.cp-card-top{display:flex;justify-content:space-between;align-items:center}.cp-ash-tag{padding:4px 12px;border-radius:8px;font-size:11px;font-weight:600;font-family:IBM Plex Mono,monospace;letter-spacing:.02em}.cp-specific-tag{padding:3px 8px;border-radius:6px;font-size:9px;font-weight:700;letter-spacing:.08em;background:#fef3c7;color:#b45309;font-family:IBM Plex Mono,monospace}.cp-target-plant{font-size:12px;color:#8b8b99;font-family:IBM Plex Mono,monospace}.cp-card-desc{font-size:13px;color:#6b6b80;line-height:1.5;margin:0}.cp-card-stats{display:flex;gap:16px;padding:14px 0;border-top:1px solid #f0f0ed;border-bottom:1px solid #f0f0ed}.cp-card-stat{display:flex;flex-direction:column;gap:2px}.cp-card-stat-value{font-size:18px;font-weight:800;color:#1a1a2e;letter-spacing:-.03em}.cp-card-stat-label{font-size:10px;font-weight:600;color:#a0a09b;letter-spacing:.06em;text-transform:uppercase;font-family:IBM Plex Mono,monospace}.cp-card-usage{display:flex;flex-direction:column;gap:6px}.cp-card-usage-info{display:flex;justify-content:space-between;font-size:11px;color:#8b8b99}.cp-card-usage-percent{font-weight:700;color:#1a1a2e;font-family:IBM Plex Mono,monospace}.cp-card-usage-track{height:4px;border-radius:2px;background:#f0f0ed;overflow:hidden}.cp-card-usage-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,#f59e0b,#fbbf24);transition:width 1s cubic-bezier(.16,1,.3,1)}.cp-card-footer{display:flex;justify-content:space-between;align-items:center}.cp-card-meta-row{display:flex;align-items:center;gap:10px}.cp-meta-tag{font-size:11px;font-weight:600;color:#6b6b80;font-family:IBM Plex Mono,monospace}.cp-days-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:8px;font-size:11px;font-weight:700;font-family:IBM Plex Mono,monospace}.cp-card-actions{display:flex;gap:6px}.cp-icon-btn{width:34px;height:34px;border-radius:10px;border:1.5px solid #ededeb;background:#fafaf8;color:#6b6b80;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.cp-icon-btn:hover{border-color:#c8c6c0;background:#fff;color:#1a1a2e}.cp-icon-btn-danger:hover{border-color:#fca5a5;background:#fef2f2;color:#dc2626}.cp-empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:64px 24px;text-align:center;animation:bentoRise .5s cubic-bezier(.16,1,.3,1) both}.cp-empty-icon{width:64px;height:64px;border-radius:20px;background:#f0f0ed;display:flex;align-items:center;justify-content:center;color:#a0a09b;margin-bottom:4px}.cp-empty-title{font-size:18px;font-weight:700;color:#1a1a2e;margin:0}.cp-empty-desc{font-size:14px;color:#8b8b99;margin:0;max-width:320px}.cp-modal-overlay{position:fixed;inset:0;background:#0f0f1499;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px;animation:modalFadeIn .25s ease}.cp-modal{background:#fff;border-radius:24px;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:0 40px 100px #00000040;animation:modalSlideUp .35s cubic-bezier(.16,1,.3,1)}.cp-modal-body{padding:0 28px 28px}.cp-modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px 28px 0}.cp-modal-title{font-size:20px;font-weight:800;color:#1a1a2e;letter-spacing:-.03em;margin:0}.cp-modal-close{width:36px;height:36px;border-radius:12px;border:none;background:#f0f0ed;color:#6b6b80;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.cp-modal-close:hover{background:#e5e5e0;color:#1a1a2e}.cp-modal-form{padding:24px 28px 28px;display:flex;flex-direction:column;gap:18px}.cp-form-field{display:flex;flex-direction:column;gap:6px}.cp-form-label{font-size:13px;font-weight:600;color:#4a4a5a}.cp-form-input,.cp-form-select{width:100%;padding:12px 16px;border-radius:14px;border:1.5px solid #ededeb;font-size:14px;font-family:Outfit,system-ui,sans-serif;color:#1a1a2e;background:#fafaf8;outline:none;transition:all .25s ease}.cp-form-input:focus,.cp-form-select:focus{border-color:#6366f1;background:#fff;box-shadow:0 0 0 4px #6366f114}.cp-form-input::placeholder{color:#c0c0bb}.cp-form-row{display:flex;gap:12px}.cp-form-row .cp-form-field{flex:1}.cp-checkbox{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:500;color:#4a4a5a;cursor:pointer;-webkit-user-select:none;user-select:none}.cp-checkbox input{width:18px;height:18px;accent-color:#6366f1;cursor:pointer}.cp-form-submit{width:100%;padding:14px;border-radius:14px;border:none;background:#1a1a2e;color:#fff;font-size:14px;font-weight:700;font-family:Outfit,system-ui,sans-serif;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1);margin-top:4px}.cp-form-submit:hover{background:#2d2b55;transform:translateY(-1px);box-shadow:0 8px 25px #1a1a2e33}.cp-table-wrap{background:#fff;border:1px solid rgba(0,0,0,.05);border-radius:20px;overflow:hidden;animation:bentoRise .5s cubic-bezier(.16,1,.3,1) .1s both}.cp-table{width:100%;border-collapse:collapse}.cp-table th{text-align:left;padding:14px 20px;font-size:11px;font-weight:600;color:#a0a09b;text-transform:uppercase;letter-spacing:.06em;font-family:IBM Plex Mono,monospace;background:#fafaf8;border-bottom:1px solid #f0f0ed}.cp-table td{padding:14px 20px;font-size:13px;color:#4a4a5a;border-bottom:1px solid #f8f8f6;vertical-align:middle}.cp-table tr:last-child td{border-bottom:none}.cp-table tr:hover td{background:#fafaf8}.cp-table-bold{font-weight:700;color:#1a1a2e}.cp-table-mono{font-family:IBM Plex Mono,monospace;font-size:12px}.cp-distance-tag{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:8px;font-size:11px;font-weight:700;font-family:IBM Plex Mono,monospace;background:#f0fdf4;color:#16a34a}.ba-plant-name{font-size:16px;font-weight:800;color:#1a1a2e;letter-spacing:-.02em}.cp-card-address{font-size:11px;color:#a0a09b;font-family:IBM Plex Mono,monospace;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cp-card-expires{font-size:11px;color:#a0a09b;font-family:IBM Plex Mono,monospace;flex-shrink:0}.cp-filter-select{padding:8px 14px;border-radius:12px;border:1.5px solid #ededeb;background:#fafaf8;font-size:13px;font-weight:500;color:#4a4a5a;font-family:Outfit,system-ui,sans-serif;outline:none;cursor:pointer;transition:all .2s ease}.cp-filter-select:focus{border-color:#6366f1}.cc-plant-cell{display:flex;flex-direction:column;gap:2px}.cc-plant-addr{font-size:11px;color:#a0a09b;font-family:IBM Plex Mono,monospace}.cc-progress-cell{display:flex;flex-direction:column;gap:6px;min-width:140px}.cc-progress-track{height:5px;border-radius:3px;background:#f0f0ed;overflow:hidden}.cc-progress-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,#f59e0b,#fbbf24);transition:width 1s cubic-bezier(.16,1,.3,1)}.cc-progress-text{font-size:11px;color:#6b6b80;font-family:IBM Plex Mono,monospace;display:flex;justify-content:space-between}.cc-progress-pct{font-weight:700;color:#1a1a2e}.cc-deadline-cell{display:flex;flex-direction:column;gap:2px}.cc-deadline-days{display:flex;align-items:center;gap:4px;font-size:12px;font-weight:700;font-family:IBM Plex Mono,monospace}.cc-deadline-date{font-size:11px;color:#a0a09b;font-family:IBM Plex Mono,monospace}@media(max-width:768px){.cp-header{flex-direction:column;align-items:flex-start;gap:16px}.cp-summary-strip{flex-wrap:wrap}.cp-summary-item{flex:1 1 calc(50% - 6px)}.cp-card-grid{grid-template-columns:1fr}.cp-form-row{flex-direction:column}.cp-filters{flex-direction:column;align-items:stretch}.cp-filter-count{margin-left:0}}.td-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;animation:bentoRise .5s cubic-bezier(.16,1,.3,1) both}.td-title{margin:0;font-size:26px;font-weight:800;color:#1a1a2e;letter-spacing:-.03em}.td-subtitle{margin:4px 0 0;font-size:14px;color:#8b8b99}.td-live{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:12px;background:#f0fdf4;border:1px solid #d1fae5}.td-live-dot{width:7px;height:7px;border-radius:50%;background:#22c55e;animation:livePulse 2s ease-in-out infinite}.td-live-label{font-size:12px;font-weight:600;color:#059669;font-family:IBM Plex Mono,monospace}.td-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}.td-hero{display:flex;flex-direction:column;justify-content:space-between;min-height:210px}.td-hero-label{font-size:11px;font-weight:600;letter-spacing:.1em;color:#ffffff73;font-family:IBM Plex Mono,monospace;margin-bottom:6px}.td-hero-value{display:flex;align-items:baseline;gap:8px;font-size:64px;font-weight:900;letter-spacing:-.05em;line-height:1}.td-hero-unit{font-size:22px;font-weight:500;opacity:.5}.td-hero-bar-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:12px;color:#fff6;font-family:IBM Plex Mono,monospace}.td-hero-percent{font-size:13px;font-weight:700;color:#4ade80}.td-hero-track{height:6px;border-radius:3px;background:#ffffff26;overflow:hidden}.td-hero-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,#4ade80,#22c55e);transition:width 1.2s cubic-bezier(.16,1,.3,1)}.td-hero-circle-1{position:absolute;top:-30px;right:-30px;width:140px;height:140px;border-radius:50%;border:1px solid rgba(255,255,255,.06);pointer-events:none}.td-hero-circle-2{position:absolute;top:-10px;right:-10px;width:100px;height:100px;border-radius:50%;border:1px solid rgba(255,255,255,.04);pointer-events:none}.td-metrics-col{grid-column:span 7;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.td-metric{display:flex;flex-direction:column;justify-content:space-between;height:100%}.td-metric-icon{width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:16px}.td-metric-dot{width:10px;height:10px;border-radius:50%}.td-metric-value-row{display:flex;align-items:baseline;gap:4px}.td-metric-value{font-size:36px;font-weight:900;color:#1a1a2e;letter-spacing:-.04em;line-height:1}.td-metric-sub{font-size:14px;font-weight:500;color:#8b8b99}.td-metric-label{font-size:13px;font-weight:600;color:#4a4a5a;margin-top:4px}.td-metric-right{margin-top:auto}.td-metric-detail{font-size:11px;color:#a0a09b;font-family:IBM Plex Mono,monospace;margin-bottom:8px}.td-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.td-section-label{font-size:11px;font-weight:600;letter-spacing:.08em;color:#a0a09b;font-family:IBM Plex Mono,monospace;text-transform:uppercase}.td-view-all{display:flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:#6366f1;padding:4px 10px;border-radius:8px;transition:background .2s;text-decoration:none}.td-view-all:hover{background:#eef2ff}.td-trip-list{display:flex;flex-direction:column;gap:10px}.td-trip-item{padding:14px 16px;border-radius:14px;border:1.5px solid #ededeb;background:#fafaf8;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1)}.td-trip-item:hover{border-color:#c8c6c0;background:#fff;transform:translate(4px)}.td-trip-name{display:flex;align-items:center;gap:8px;margin-bottom:6px}.td-trip-vehicle{font-size:14px;font-weight:700;color:#1a1a2e;font-family:IBM Plex Mono,monospace}.td-trip-status-tag{padding:2px 8px;border-radius:6px;font-size:10px;font-weight:600;font-family:IBM Plex Mono,monospace;text-transform:capitalize}.td-trip-meta{display:flex;gap:6px;font-size:12px;color:#4a4a5a;font-weight:500;margin-bottom:4px}.td-arrow{color:#a0a09b}.td-trip-detail{display:flex;gap:6px;font-size:11px;color:#6b6b80;font-family:IBM Plex Mono,monospace}.td-dot{color:#d0d0cc}.td-assign-list{display:flex;flex-direction:column;gap:12px}.td-assign-item{padding:14px 16px;border-radius:14px;border:1.5px solid #ededeb;background:#fafaf8;cursor:pointer;transition:all .2s ease}.td-assign-item:hover{border-color:#c8c6c0;background:#fff}.td-assign-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.td-assign-name{font-size:14px;font-weight:700;color:#1a1a2e;display:flex;align-items:center;gap:8px}.td-assign-tonnes{font-size:12px;font-weight:600;color:#6b6b80;padding:2px 8px;border-radius:6px;background:#f0f0ed;font-family:IBM Plex Mono,monospace}.td-days-chip{padding:4px 10px;border-radius:8px;font-size:11px;font-weight:600;font-family:IBM Plex Mono,monospace}.td-assign-meta{display:flex;gap:6px;font-size:12px;color:#6b6b80;margin-bottom:10px}.td-assign-bar{height:4px;border-radius:2px;background:#f0f0ed;overflow:hidden;margin-bottom:4px}.td-assign-bar-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,#10b981,#34d399);transition:width 1s cubic-bezier(.16,1,.3,1)}.td-assign-progress{font-size:10px;color:#a0a09b;font-family:IBM Plex Mono,monospace}.td-actions{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.td-action-btn{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;border:1.5px solid #ededeb;background:#fafaf8;font-size:13px;font-weight:600;color:#1a1a2e;text-decoration:none;transition:all .25s ease}.td-action-btn:hover{background:#fff;border-color:#c8c6c0;transform:translateY(-1px)}.td-action-icon{width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center}.td-fleet-status{padding-top:16px;border-top:1px solid #ededeb}.td-fleet-bar-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:12px;color:#6b6b80}.td-fleet-percent{font-weight:700;color:#1a1a2e;font-family:IBM Plex Mono,monospace}.td-fleet-track{height:6px;border-radius:3px;background:#f0f0ed;overflow:hidden}.td-fleet-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,#6366f1,#818cf8);transition:width 1.2s cubic-bezier(.16,1,.3,1)}.td-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:32px 16px;color:#a0a09b;font-size:13px}@media(max-width:1024px){.td-grid{grid-template-columns:repeat(6,1fr)}.td-hero{grid-column:span 6!important}.td-metrics-col{grid-column:span 6}}@media(max-width:768px){.td-metrics-col{grid-template-columns:1fr}.td-hero-value{font-size:48px}}.tp-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;animation:bentoRise .5s cubic-bezier(.16,1,.3,1) both}.tp-title{margin:0;font-size:24px;font-weight:800;color:#1a1a2e;letter-spacing:-.03em}.tp-subtitle{margin:4px 0 0;font-size:14px;color:#8b8b99}.tp-add-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:14px;border:none;background:#1a1a2e;color:#fff;font-size:13px;font-weight:700;font-family:Outfit,system-ui,sans-serif;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1)}.tp-add-btn:hover{background:#2d2b55;transform:translateY(-1px);box-shadow:0 8px 25px #1a1a2e33}.tp-summary-strip{display:flex;gap:12px;margin-bottom:24px;animation:bentoRise .5s cubic-bezier(.16,1,.3,1) .05s both}.tp-summary-item{flex:1;display:flex;flex-direction:column;gap:2px;padding:16px 20px;background:#fff;border:1px solid rgba(0,0,0,.05);border-radius:16px;transition:transform .2s ease}.tp-summary-item:hover{transform:translateY(-1px)}.tp-summary-value{font-size:22px;font-weight:800;color:#1a1a2e;letter-spacing:-.03em;font-family:IBM Plex Mono,monospace}.tp-summary-label{font-size:11px;font-weight:600;color:#a0a09b;letter-spacing:.06em;text-transform:uppercase;font-family:IBM Plex Mono,monospace}.tp-filters{display:flex;align-items:center;gap:10px;margin-bottom:20px;flex-wrap:wrap;animation:bentoRise .5s cubic-bezier(.16,1,.3,1) .08s both}.tp-filter-chip{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:12px;border:1.5px solid #ededeb;background:#fafaf8;font-size:13px;font-weight:600;color:#6b6b80;cursor:pointer;font-family:Outfit,system-ui,sans-serif;transition:all .2s ease;text-transform:capitalize}.tp-filter-chip:hover{border-color:#c8c6c0;background:#fff}.tp-filter-chip.active{border-color:#6366f1;background:#eef2ff;color:#4f46e5}.tp-filter-count{margin-left:auto;font-size:12px;color:#a0a09b;font-family:IBM Plex Mono,monospace}.tp-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px}.tp-card{background:#fff;border:1px solid rgba(0,0,0,.05);border-radius:20px;padding:24px;display:flex;flex-direction:column;gap:14px;transition:all .3s cubic-bezier(.16,1,.3,1);animation:bentoRise .5s cubic-bezier(.16,1,.3,1) both}.tp-card:hover{border-color:#0000001a;transform:translateY(-2px);box-shadow:0 12px 40px #0000000f}.tp-card-top{display:flex;justify-content:space-between;align-items:center}.tp-ash-tag{padding:4px 12px;border-radius:8px;font-size:11px;font-weight:600;font-family:IBM Plex Mono,monospace;letter-spacing:.02em}.tp-days-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:8px;font-size:11px;font-weight:700;font-family:IBM Plex Mono,monospace}.tp-card-stats{display:flex;gap:16px;padding:14px 0;border-top:1px solid #f0f0ed;border-bottom:1px solid #f0f0ed}.tp-card-stat{display:flex;flex-direction:column;gap:2px}.tp-card-stat-value{font-size:18px;font-weight:800;color:#1a1a2e;letter-spacing:-.03em}.tp-card-stat-label{font-size:10px;font-weight:600;color:#a0a09b;letter-spacing:.06em;text-transform:uppercase;font-family:IBM Plex Mono,monospace}.tp-card-footer-meta{display:flex;justify-content:space-between;align-items:center}.tp-card-expires{font-size:11px;color:#a0a09b;font-family:IBM Plex Mono,monospace}.tp-empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:64px 24px;text-align:center;animation:bentoRise .5s cubic-bezier(.16,1,.3,1) both}.tp-empty-icon{width:64px;height:64px;border-radius:20px;background:#f0f0ed;display:flex;align-items:center;justify-content:center;color:#a0a09b;margin-bottom:4px}.tp-empty-title{font-size:18px;font-weight:700;color:#1a1a2e;margin:0}.tp-empty-desc{font-size:14px;color:#8b8b99;margin:0;max-width:320px}.tp-modal-overlay{position:fixed;inset:0;background:#0f0f1499;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px;animation:modalFadeIn .25s ease}.tp-modal{background:#fff;border-radius:24px;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:0 40px 100px #00000040;animation:modalSlideUp .35s cubic-bezier(.16,1,.3,1)}.tp-modal-body{padding:0 28px 28px}.tp-modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px 28px 0}.tp-modal-title{font-size:20px;font-weight:800;color:#1a1a2e;letter-spacing:-.03em;margin:0}.tp-modal-close{width:36px;height:36px;border-radius:12px;border:none;background:#f0f0ed;color:#6b6b80;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.tp-modal-close:hover{background:#e5e5e0;color:#1a1a2e}.tp-modal-form{padding:24px 28px 28px;display:flex;flex-direction:column;gap:18px}.tp-form-field{display:flex;flex-direction:column;gap:6px}.tp-form-label{font-size:13px;font-weight:600;color:#4a4a5a}.tp-form-input,.tp-form-select{width:100%;padding:12px 16px;border-radius:14px;border:1.5px solid #ededeb;font-size:14px;font-family:Outfit,system-ui,sans-serif;color:#1a1a2e;background:#fafaf8;outline:none;transition:all .25s ease}.tp-form-input:focus,.tp-form-select:focus{border-color:#6366f1;background:#fff;box-shadow:0 0 0 4px #6366f114}.tp-form-input::placeholder{color:#c0c0bb}.tp-form-row{display:flex;gap:12px}.tp-form-row .tp-form-field{flex:1}.tp-form-submit{width:100%;padding:14px;border-radius:14px;border:none;background:#1a1a2e;color:#fff;font-size:14px;font-weight:700;font-family:Outfit,system-ui,sans-serif;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1);display:flex;align-items:center;justify-content:center;gap:8px}.tp-form-submit:hover{background:#2d2b55;transform:translateY(-1px);box-shadow:0 8px 25px #1a1a2e33}.tp-table-wrap{background:#fff;border:1px solid rgba(0,0,0,.05);border-radius:20px;overflow:hidden;animation:bentoRise .5s cubic-bezier(.16,1,.3,1) .1s both}.tp-table{width:100%;border-collapse:collapse}.tp-table th{text-align:left;padding:14px 20px;font-size:11px;font-weight:600;color:#a0a09b;text-transform:uppercase;letter-spacing:.06em;font-family:IBM Plex Mono,monospace;background:#fafaf8;border-bottom:1px solid #f0f0ed}.tp-table td{padding:14px 20px;font-size:13px;color:#4a4a5a;border-bottom:1px solid #f8f8f6;vertical-align:middle}.tp-table tr:last-child td{border-bottom:none}.tp-table tr:hover td{background:#fafaf8}.tp-table-bold{font-weight:700;color:#1a1a2e}.tp-table-mono{font-family:IBM Plex Mono,monospace;font-size:12px}.ac-route{display:flex;flex-direction:column;gap:0;padding:16px 18px;background:#fafaf8;border-radius:14px}.ac-route-point{display:flex;align-items:flex-start;gap:12px}.ac-route-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;margin-top:4px}.ac-dot-green{background:#22c55e;box-shadow:0 0 0 3px #22c55e26}.ac-dot-orange{background:#f59e0b;box-shadow:0 0 0 3px #f59e0b26}.ac-route-info{display:flex;flex-direction:column;gap:1px}.ac-route-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#a0a09b;font-family:IBM Plex Mono,monospace}.ac-route-name{font-size:14px;font-weight:700;color:#1a1a2e}.ac-route-addr{font-size:11px;color:#8b8b99}.ac-route-connector{display:flex;align-items:center;gap:8px;padding:6px 0 6px 4px;margin-left:0}.ac-route-line{width:2px;height:18px;background:#e0e0db;border-radius:1px;margin-left:3px}.ac-route-dist{font-size:10px;font-weight:700;color:#6b6b80;font-family:IBM Plex Mono,monospace}.ac-route-arrow{color:#c0c0bb}.ac-pick-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:13px;border-radius:14px;border:none;background:#1a1a2e;color:#fff;font-size:13px;font-weight:700;font-family:Outfit,system-ui,sans-serif;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1)}.ac-pick-btn:hover{background:#2d2b55;transform:translateY(-1px);box-shadow:0 8px 25px #1a1a2e33}.ac-modal-summary{display:flex;flex-direction:column;gap:10px;padding:18px 20px;background:#fafaf8;border:1px solid #f0f0ed;border-radius:16px}.ac-modal-summary-row{display:flex;justify-content:space-between;align-items:center}.ac-modal-label{font-size:12px;color:#8b8b99;font-family:IBM Plex Mono,monospace}.ac-modal-value{font-size:13px;font-weight:700;color:#1a1a2e}.ac-modal-highlight{font-size:16px;color:#059669}.ac-form-hint{font-size:11px;color:#a0a09b;line-height:1.5;font-family:IBM Plex Mono,monospace}.datatable-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;animation:bentoRise .5s cubic-bezier(.16,1,.3,1) .1s both;flex-wrap:wrap}.datatable-search{position:relative;flex:1;max-width:420px}.datatable-search-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:#a0a09b;pointer-events:none}.datatable-search-input{width:100%;height:46px;padding:0 48px;border-radius:14px;border:1.5px solid #EDEDEB;background:#fafaf8;font-size:14px;font-family:Outfit,system-ui,sans-serif;color:#1a1a2e;outline:none;transition:all .25s ease}.datatable-search-input:focus{border-color:#6366f1;background:#fff;box-shadow:0 0 0 4px #6366f114}.datatable-search-input::placeholder{color:#c0c0bb}.datatable-search-clear{position:absolute;right:14px;top:50%;transform:translateY(-50%);width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:#e5e5e0;border-radius:50%;font-size:12px;color:#6b6b80;cursor:pointer;transition:all .2s}.datatable-search-clear:hover{background:#d0d0c8;color:#1a1a2e}.datatable-actions{display:flex;gap:10px}.datatable-export-btn{display:flex;align-items:center;gap:8px;padding:12px 20px;border-radius:12px;border:1.5px solid #EDEDEB;background:#fff;color:#1a1a2e;font-size:13px;font-weight:600;font-family:Outfit,system-ui,sans-serif;cursor:pointer;transition:all .25s cubic-bezier(.16,1,.3,1)}.datatable-export-btn:hover{border-color:#6366f1;background:#eef2ff;color:#4f46e5;transform:translateY(-1px)}.tp-results-info{margin-left:auto;font-size:12px;color:#8b8b99;font-family:IBM Plex Mono,monospace;padding:8px 14px;background:#f3f4f6;border-radius:8px}.assignment-list{display:flex;flex-direction:column;gap:14px;animation:bentoRise .5s cubic-bezier(.16,1,.3,1) .12s both;width:100%}.assignment-card{background:#fff;border:1px solid rgba(0,0,0,.05);border-radius:18px;overflow:hidden;transition:all .3s cubic-bezier(.16,1,.3,1);animation:bentoRise .5s cubic-bezier(.16,1,.3,1) both;width:100%}.assignment-card:hover{border-color:#00000014;box-shadow:0 8px 30px #0000000a}.assignment-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;cursor:pointer;background:#fff;transition:background .2s ease}.assignment-header:hover{background:#fafaf8}.assignment-header-left{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.assignment-type{padding:4px 12px;border-radius:8px;font-size:11px;font-weight:600;font-family:IBM Plex Mono,monospace;letter-spacing:.02em;background:#eef2ff;color:#4f46e5}.assignment-route{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:#1a1a2e}.assignment-header-right{display:flex;align-items:center;gap:14px}.assignment-trip-count{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:#6b6b80;font-family:IBM Plex Mono,monospace;padding:4px 10px;background:#f0f0ed;border-radius:8px}.assignment-expand{font-size:10px;color:#a0a09b;transition:transform .3s cubic-bezier(.16,1,.3,1)}.assignment-progress-section{padding:0 20px 16px;background:#fff}.assignment-progress-bar{display:flex;align-items:center;gap:12px;margin-bottom:12px}.assignment-progress-track{flex:1;height:8px;background:#f0f0ed;border-radius:6px;overflow:hidden}.assignment-progress-fill{height:100%;background:linear-gradient(90deg,#6366f1,#8b5cf6);border-radius:6px;transition:width .5s cubic-bezier(.16,1,.3,1)}.assignment-progress-text{font-size:13px;font-weight:700;color:#1a1a2e;font-family:IBM Plex Mono,monospace;min-width:80px;text-align:right}.assignment-meta{display:flex;justify-content:space-between;align-items:center}.assignment-meta-item{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:#8b8b99}.trip-list-expanded{padding:0;background:#fafaf8;border-top:1px solid #f0f0ed;width:100%}.trip-list-header{display:grid;grid-template-columns:1.8fr 1.5fr 1fr 1.2fr 1.2fr 1.4fr;gap:16px;padding:14px 24px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#a0a09b;font-family:IBM Plex Mono,monospace;border-bottom:1px solid #e5e5e0;width:100%}.trip-row{display:grid;grid-template-columns:1.8fr 1.5fr 1fr 1.2fr 1.2fr 1.4fr;gap:16px;padding:14px 24px;font-size:13px;color:#4a4a5a;border-bottom:1px solid #f0f0ed;align-items:center;transition:background .2s;width:100%}.trip-vehicle,.trip-driver{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trip-row:hover{background:#fff}.trip-vehicle{font-weight:700;color:#1a1a2e;font-family:IBM Plex Mono,monospace;display:flex;align-items:center;gap:6px}.trip-driver{font-weight:500}.trip-weight{font-family:IBM Plex Mono,monospace;font-weight:600;color:#1a1a2e}.trip-time{font-size:12px;color:#8b8b99;font-family:IBM Plex Mono,monospace}.trip-status{display:flex;align-items:center}.trip-empty-state{display:flex;flex-direction:column;align-items:center;gap:10px;padding:32px 16px;color:#8b8b99;font-size:13px}.ac-compact-head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px 10px;cursor:pointer;transition:background .15s}.ac-compact-head:hover{background:#fafafb}.ac-compact-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.ac-compact-ash{padding:3px 10px;border-radius:7px;font-size:10px;font-weight:700;font-family:IBM Plex Mono,monospace;background:#eef2ff;color:#4f46e5;letter-spacing:.02em;flex-shrink:0}.ac-compact-route{display:flex;align-items:center;gap:5px;font-size:13px;font-weight:600;color:#4a4a5a;min-width:0}.ac-compact-route-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}.ac-compact-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.ac-compact-trips{display:flex;align-items:center;gap:4px;padding:4px 10px;border-radius:8px;font-size:11px;font-weight:700;color:#6b6b80;font-family:IBM Plex Mono,monospace;background:#f0f0ed}.ac-compact-deadline{display:flex;align-items:center;gap:3px;padding:4px 10px;border-radius:8px;font-size:11px;font-weight:700;font-family:IBM Plex Mono,monospace;background:#dbeafe;color:#2563eb}.ac-compact-deadline.urgent{background:#fee2e2;color:#dc2626}.ac-eye-btn{width:30px;height:30px;border-radius:10px;border:1.5px solid #ededeb;background:#fafaf8;color:#8b8b99;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0}.ac-eye-btn:hover{border-color:#6366f1;color:#6366f1;background:#eef2ff}.a-expand{width:28px;height:28px;border-radius:8px;background:#f0f0ed;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:10px;color:#8b8b99;transition:all .3s cubic-bezier(.16,1,.3,1);flex-shrink:0}.a-expand:hover{background:#e5e5e0}.a-expand.open{transform:rotate(180deg);background:#eef2ff;color:#4f46e5}.trip-date-filters{display:flex;align-items:center;gap:6px;margin-left:auto}.trip-date-field{display:flex;align-items:center;gap:4px;padding:4px 10px;border-radius:8px;border:1.5px solid #ededeb;background:#fff;color:#6b6b80;transition:all .2s}.trip-date-field:focus-within{border-color:#6366f1;box-shadow:0 0 0 3px #6366f10f}.trip-date-field input[type=date]{border:none;background:none;font-size:11px;font-family:IBM Plex Mono,monospace;color:#4a4a5a;outline:none;width:110px;padding:0}.trip-date-field input[type=date]::-webkit-calendar-picker-indicator{opacity:.4;cursor:pointer}.trip-date-sep{font-size:10px;color:#a0a09b;font-family:IBM Plex Mono,monospace}.trip-date-clear{width:22px;height:22px;border-radius:6px;border:none;background:#f0f0ed;color:#8b8b99;font-size:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.trip-date-clear:hover{background:#fee2e2;color:#dc2626}.trip-card .ac-eye-btn{width:28px;height:28px;border-radius:8px;flex-shrink:0}.ac-compact-progress{padding:0 20px 16px}.ac-compact-bar{display:flex;align-items:center;gap:10px;margin-bottom:6px}.ac-compact-track{flex:1;height:6px;background:#f0f0ed;border-radius:4px;overflow:hidden}.ac-compact-fill{height:100%;border-radius:4px;transition:width 1s cubic-bezier(.16,1,.3,1)}.ac-compact-fill.normal{background:linear-gradient(90deg,#6366f1,#818cf8)}.ac-compact-fill.good{background:linear-gradient(90deg,#059669,#34d399)}.ac-compact-fill.urgent{background:linear-gradient(90deg,#dc2626,#f87171)}.ac-compact-pct{font-size:12px;font-weight:800;color:#1a1a2e;font-family:IBM Plex Mono,monospace;min-width:36px;text-align:right}.ac-compact-stats{display:flex;justify-content:space-between;font-size:11px;color:#8b8b99;font-family:IBM Plex Mono,monospace}.ac-compact-stats strong{color:#1a1a2e;font-weight:700}.ac-compact-remaining{color:#a0a09b}.trip-section{border-top:1px solid #f0f0ed;background:#fafafb;animation:tripSlideDown .35s cubic-bezier(.16,1,.3,1)}@keyframes tripSlideDown{0%{opacity:0}to{opacity:1}}.trip-summary-bar{display:flex;gap:0;margin:16px 20px 0;background:#fff;border:1px solid #f0f0ed;border-radius:12px;overflow:hidden}.trip-summary-stat{flex:1;padding:12px 14px;display:flex;flex-direction:column;gap:2px;border-right:1px solid #f0f0ed}.trip-summary-stat:last-child{border-right:none}.trip-summary-val{font-size:16px;font-weight:800;color:#1a1a2e;font-family:IBM Plex Mono,monospace}.trip-summary-label{font-size:9px;font-weight:600;color:#a0a09b;text-transform:uppercase;letter-spacing:.06em;font-family:IBM Plex Mono,monospace}.trip-toolbar{display:flex;gap:8px;align-items:center;padding:14px 20px 0;flex-wrap:wrap}.trip-search{position:relative;flex:1;max-width:260px;display:flex;align-items:center}.trip-search svg{position:absolute;left:12px;color:#b0b0a8;pointer-events:none}.trip-search input{width:100%;height:34px;padding:0 12px 0 32px;border-radius:10px;border:1.5px solid #ededeb;background:#fff;font-size:12px;font-family:Outfit,system-ui,sans-serif;color:#1a1a2e;outline:none;transition:all .2s}.trip-search input:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f10f}.trip-search input::placeholder{color:#c8c8c0}.trip-chip{padding:5px 12px;border-radius:8px;border:1.5px solid #ededeb;background:#fff;font-size:11px;font-weight:600;color:#8b8b99;cursor:pointer;font-family:Outfit,system-ui,sans-serif;transition:all .2s;text-transform:capitalize}.trip-chip:hover{border-color:#c8c6c0}.trip-chip.active{border-color:#6366f1;background:#eef2ff;color:#4f46e5}.trip-export-btn{margin-left:auto;padding:6px 14px;border-radius:8px;border:1.5px solid #ededeb;background:#fff;font-size:11px;font-weight:600;color:#6b6b80;cursor:pointer;font-family:Outfit,system-ui,sans-serif;display:flex;align-items:center;gap:5px;transition:all .2s}.trip-export-btn:hover{border-color:#6366f1;color:#4f46e5}.trip-cards{display:flex;flex-direction:column;gap:8px;padding:14px 20px 20px}.trip-card{display:flex;align-items:center;gap:16px;padding:14px 18px;background:#fff;border:1px solid #f0f0ed;border-radius:14px;border-left:4px solid transparent;transition:all .2s ease}.trip-card:hover{border-color:#e5e5e0;box-shadow:0 4px 16px #00000008}.trip-card.status-transit{border-left-color:#6366f1}.trip-card.status-dispatched{border-left-color:#f59e0b}.trip-card.status-delivered{border-left-color:#22c55e}.trip-card.status-verified{border-left-color:#059669}.trip-card.status-loading{border-left-color:#b45309}.trip-plate{display:flex;align-items:center;gap:10px;min-width:150px}.trip-plate-icon{width:34px;height:34px;border-radius:10px;background:#f0f0ed;display:flex;align-items:center;justify-content:center;color:#6b6b80;flex-shrink:0}.trip-card.status-transit .trip-plate-icon{background:#eef2ff;color:#6366f1}.trip-card.status-dispatched .trip-plate-icon{background:#fef3c7;color:#b45309}.trip-card.status-delivered .trip-plate-icon{background:#f0fdf4;color:#22c55e}.trip-card.status-verified .trip-plate-icon{background:#ecfdf5;color:#059669}.trip-card.status-loading .trip-plate-icon{background:#fff7ed;color:#c2410c}.trip-plate-info{display:flex;flex-direction:column;gap:1px}.trip-plate-num{font-size:13px;font-weight:800;color:#1a1a2e;font-family:IBM Plex Mono,monospace;letter-spacing:-.02em}.trip-plate-driver{font-size:11px;color:#8b8b99}.trip-stages{display:flex;align-items:center;flex:1;min-width:180px}.trip-stage{display:flex;flex-direction:column;align-items:center;gap:3px;flex:1;position:relative}.trip-stage:before{content:"";position:absolute;top:5px;left:50%;width:100%;height:2px;background:#e5e5e0;z-index:0}.trip-stage:last-child:before{display:none}.trip-stage-dot{width:12px;height:12px;border-radius:50%;border:2px solid #d0d0cc;background:#fff;z-index:1;transition:all .3s}.trip-stage.done .trip-stage-dot{background:#6366f1;border-color:#6366f1}.trip-stage.done:before{background:#6366f1}.trip-stage-label{font-size:8px;font-weight:600;color:#c0c0bb;text-transform:uppercase;letter-spacing:.04em;font-family:IBM Plex Mono,monospace}.trip-stage.done .trip-stage-label{color:#6366f1}.trip-stage-time{font-size:9px;color:#a0a09b;font-family:IBM Plex Mono,monospace}.trip-weight-block{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:60px}.trip-weight-val{font-size:15px;font-weight:800;color:#1a1a2e;font-family:IBM Plex Mono,monospace}.trip-weight-val.muted{color:#c0c0bb}.trip-weight-label{font-size:9px;color:#a0a09b;font-family:IBM Plex Mono,monospace;text-transform:uppercase;letter-spacing:.04em}.trip-badge{padding:5px 12px;border-radius:8px;font-size:10px;font-weight:700;font-family:IBM Plex Mono,monospace;letter-spacing:.02em;text-transform:capitalize;min-width:75px;text-align:center}.trip-badge.dispatched{background:#fef3c7;color:#b45309}.trip-badge.delivered{background:#f0fdf4;color:#16a34a}.trip-badge.verified{background:#ecfdf5;color:#059669}.trip-badge.loading{background:#fff7ed;color:#c2410c}.trip-badge.transit{background:#eef2ff;color:#4f46e5}.trip-empty-card{display:flex;align-items:center;gap:14px;padding:28px 20px;margin:0;border:2px dashed #e5e5e0;border-radius:14px;color:#a0a09b;font-size:13px}.trip-empty-card svg{flex-shrink:0;color:#c8c8c0}@media(max-width:768px){.tp-header{flex-direction:column;align-items:flex-start;gap:16px}.tp-summary-strip{flex-wrap:wrap}.tp-summary-item{flex:1 1 calc(50% - 6px)}.tp-card-grid{grid-template-columns:1fr}.tp-form-row{flex-direction:column}.tp-filters{flex-direction:column;align-items:stretch}.tp-filter-count{margin-left:0}.trip-date-filters{width:100%;flex-wrap:wrap;margin-left:0}.trip-export-btn{width:100%;justify-content:center;margin-left:0}.datatable-toolbar{flex-direction:column;align-items:stretch}.datatable-search{max-width:100%}.datatable-actions{justify-content:stretch}.datatable-export-btn{justify-content:center;flex:1}.tp-results-info{margin-left:0;text-align:center}.assignment-header{flex-direction:column;align-items:flex-start;gap:12px}.assignment-header-right{width:100%;justify-content:space-between}.trip-list-header,.trip-row{grid-template-columns:1fr 1fr;gap:8px;padding:12px 16px}.trip-list-header span:nth-child(4),.trip-list-header span:nth-child(5),.trip-list-header span:nth-child(6),.trip-row>*:nth-child(4),.trip-row>*:nth-child(5),.trip-row>*:nth-child(6){display:none}.ac-compact-head{flex-direction:column;align-items:flex-start;gap:10px}.ac-compact-right{width:100%;justify-content:flex-end}.ac-compact-route-name{max-width:100px}.trip-card{flex-wrap:wrap;gap:12px}.trip-stages{min-width:100%;order:5}.trip-toolbar{flex-direction:column;align-items:stretch}.trip-search{max-width:100%}.trip-export-btn{margin-left:0;justify-content:center}.trip-summary-bar{flex-wrap:wrap}.trip-summary-stat{flex:1 1 calc(50% - 1px)}}.mt-type-select{padding:10px 16px;border-radius:12px;border:1.5px solid #ededeb;background:#fff;font-size:13px;font-weight:600;color:#4a4a5a;font-family:Outfit,system-ui,sans-serif;outline:none;cursor:pointer;transition:all .2s ease}.mt-type-select:focus{border-color:#6366f1}.mt-table-truck{display:flex;align-items:center;gap:12px}.mt-table-truck-icon{width:38px;height:38px;border-radius:12px;background:#eef2ff;display:flex;align-items:center;justify-content:center;color:#6366f1;flex-shrink:0}.mt-table-truck-num{font-size:14px;font-weight:800;color:#1a1a2e;font-family:IBM Plex Mono,monospace;letter-spacing:-.02em}.mt-status-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:10px;font-size:12px;font-weight:700;font-family:IBM Plex Mono,monospace}.mt-status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.mt-table-actions{display:flex;gap:6px;justify-content:flex-end}.mt-tag-row{display:flex;align-items:center;gap:8px}.mt-actions{display:flex;gap:6px}.mt-icon-btn{width:34px;height:34px;border-radius:10px;border:1.5px solid #ededeb;background:#fafaf8;color:#6b6b80;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.mt-icon-btn:hover{border-color:#6366f1;color:#6366f1;background:#fff}.mt-icon-btn-danger:hover{border-color:#fca5a5;background:#fef2f2;color:#ef4444}.mt-truck-identity{display:flex;align-items:center;gap:12px}.mt-truck-icon{width:44px;height:44px;border-radius:14px;background:#eef2ff;display:flex;align-items:center;justify-content:center;color:#6366f1;flex-shrink:0}.mt-truck-number{font-size:18px;font-weight:800;color:#1a1a2e;letter-spacing:-.03em;font-family:IBM Plex Mono,monospace}.mt-truck-sub{font-size:12px;color:#8b8b99;margin-top:2px}@keyframes bentoRise{0%{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}*{margin:0;padding:0;box-sizing:border-box}:root{--primary: #2563eb;--primary-dark: #1d4ed8;--primary-light: #dbeafe;--success: #16a34a;--warning: #f59e0b;--danger: #dc2626;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827;--radius: 8px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow: 0 1px 3px rgba(0, 0, 0, .1), 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1)}body{font-family:Outfit,Inter,-apple-system,sans-serif;background-color:#f2f1ee;color:var(--gray-800);line-height:1.5}a{text-decoration:none;color:inherit}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit;font-size:.9rem}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1e3a5f,#2563eb);padding:1rem}.auth-card{background:#fff;border-radius:12px;padding:2.5rem;width:100%;max-width:420px;box-shadow:0 20px 60px #00000026}.auth-card h1{font-size:1.6rem;font-weight:700;color:var(--gray-900);margin-bottom:.25rem}.auth-card p.subtitle{color:var(--gray-500);font-size:.9rem;margin-bottom:1.5rem}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.85rem;font-weight:500;color:var(--gray-700);margin-bottom:.35rem}.form-group input,.form-group select{width:100%;padding:.65rem .85rem;border:1.5px solid var(--gray-300);border-radius:var(--radius);font-size:.9rem;transition:border-color .2s;outline:none}.form-group input:focus,.form-group select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.65rem 1.25rem;border-radius:var(--radius);font-size:.9rem;font-weight:500;border:none;transition:all .2s}.btn-primary{background:var(--primary);color:#fff;width:100%}.btn-primary:hover{background:var(--primary-dark)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-outline{background:transparent;border:1.5px solid var(--gray-300);color:var(--gray-700)}.btn-outline:hover{border-color:var(--primary);color:var(--primary)}.btn-sm{padding:.4rem .85rem;font-size:.8rem}.btn-danger{background:var(--danger);color:#fff}.btn-success{background:var(--success);color:#fff}.auth-link{text-align:center;margin-top:1.25rem;font-size:.85rem;color:var(--gray-500)}.auth-link a{color:var(--primary);font-weight:500}.auth-link a:hover{text-decoration:underline}.error-text{color:var(--danger);font-size:.8rem;margin-top:.5rem}.role-selector{display:flex;gap:.5rem;margin-bottom:1rem}.role-option{flex:1;padding:.75rem .5rem;border:1.5px solid var(--gray-300);border-radius:var(--radius);text-align:center;cursor:pointer;font-size:.8rem;font-weight:500;color:var(--gray-600);transition:all .2s}.role-option:hover{border-color:var(--primary)}.role-option.active{border-color:var(--primary);background:var(--primary-light);color:var(--primary-dark)}.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.5rem}.page-header h2{font-size:1.25rem;font-weight:600;color:var(--gray-800)}.page-subtitle{font-size:.85rem;color:var(--gray-500);margin-top:.15rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}.data-card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius);padding:1.25rem;display:flex;flex-direction:column;gap:.6rem;box-shadow:var(--shadow-sm);transition:box-shadow .15s}.data-card:hover{box-shadow:var(--shadow)}.data-card-header{display:flex;justify-content:space-between;align-items:center}.data-card-type{font-size:.85rem;font-weight:600;color:var(--primary-dark)}.data-card-consumer{font-size:.9rem;font-weight:600;color:var(--gray-800);margin:-.2rem 0}.data-card-desc{font-size:.82rem;color:var(--gray-500);line-height:1.4}.data-card-stats{display:flex;gap:1rem;padding:.65rem 0;border-top:1px solid var(--gray-100);border-bottom:1px solid var(--gray-100)}.stat{display:flex;flex-direction:column;gap:.1rem}.stat-label{font-size:.7rem;color:var(--gray-400);text-transform:uppercase;letter-spacing:.3px}.stat-value{font-size:.9rem;font-weight:600;color:var(--gray-800)}.data-card-meta{display:flex;justify-content:space-between;font-size:.75rem;color:var(--gray-500)}.data-card-actions{display:flex;gap:.5rem;margin-top:.25rem}.badge-specific{font-size:.6rem;font-weight:700;background:#fef3c7;color:#b45309;padding:.15rem .45rem;border-radius:4px;letter-spacing:.5px}.table-wrapper{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius);overflow-x:auto;box-shadow:var(--shadow-sm)}.data-table{width:100%;border-collapse:collapse;font-size:.85rem}.data-table th{text-align:left;padding:.75rem 1rem;background:var(--gray-50);font-size:.75rem;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid var(--gray-200);white-space:nowrap}.data-table td{padding:.75rem 1rem;border-bottom:1px solid var(--gray-100);color:var(--gray-700);vertical-align:middle}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--gray-50)}.progress-bar-bg{width:80px;height:6px;background:var(--gray-200);border-radius:3px;overflow:hidden}.progress-bar-fill{height:100%;background:var(--primary);border-radius:3px;transition:width .3s}.modal-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:9999;padding:1rem}.modal-container{background:#fff;border-radius:12px;width:100%;box-shadow:0 20px 60px #0003;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--gray-200)}.modal-title{font-size:1.05rem;font-weight:600}.modal-close{background:none;border:none;color:var(--gray-400);padding:.25rem;border-radius:4px}.modal-close:hover{background:var(--gray-100);color:var(--gray-700)}.modal-body{padding:1.5rem}.spinner{width:28px;height:28px;border:3px solid var(--gray-200);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.filter-bar{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem;padding:.75rem 1rem;background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius);flex-wrap:wrap}.filter-group{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--gray-600)}.filter-group select{padding:.35rem .65rem;border:1.5px solid var(--gray-300);border-radius:6px;font-size:.82rem;color:var(--gray-700);background:#fff;outline:none}.filter-group select:focus{border-color:var(--primary)}.filter-group label{font-size:.8rem;font-weight:500;color:var(--gray-500)}.filter-count{margin-left:auto;font-size:.8rem;color:var(--gray-400);font-weight:500}.alert-bar{padding:.75rem 1rem;border-radius:var(--radius);font-size:.85rem;margin-bottom:1rem}.alert-warning{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.contract-route{display:flex;flex-direction:column;gap:.15rem;padding:.5rem 0}.route-point{display:flex;align-items:flex-start;gap:.6rem}.route-dot{width:10px;height:10px;border-radius:50%;margin-top:.2rem;flex-shrink:0}.route-dot-green{background:var(--success)}.route-dot-red{background:var(--danger)}.route-label{font-size:.68rem;text-transform:uppercase;color:var(--gray-400);letter-spacing:.3px;display:block}.route-name{font-size:.85rem;font-weight:500;color:var(--gray-800);display:block}.route-address{font-size:.75rem;color:var(--gray-500);display:block}.route-line{width:2px;height:12px;background:var(--gray-300);margin-left:4px}.assignments-list{display:flex;flex-direction:column;gap:.75rem}.assignment-card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.assignment-header{display:flex;justify-content:space-between;align-items:center;padding:.85rem 1.25rem;cursor:pointer;transition:background .1s}.assignment-header:hover{background:var(--gray-50)}.assignment-header-left{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.assignment-type{font-size:.85rem;font-weight:600;color:var(--primary-dark)}.assignment-route{font-size:.82rem;color:var(--gray-600);display:flex;align-items:center}.assignment-header-right{display:flex;align-items:center;gap:.75rem}.assignment-truck{font-size:.8rem;font-weight:500;font-family:monospace;color:var(--gray-600);background:var(--gray-100);padding:.2rem .5rem;border-radius:4px}.assignment-expand{font-size:.7rem;color:var(--gray-400);transition:transform .2s}.assignment-summary{padding:0 1.25rem .85rem}.assignment-progress-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.assignment-progress-text{font-size:.82rem;font-weight:500;color:var(--gray-700);white-space:nowrap}.assignment-meta{display:flex;align-items:center;gap:1rem;font-size:.8rem;color:var(--gray-500)}.trip-list{border-top:1px solid var(--gray-200);background:var(--gray-50)}.trip-list-header{display:grid;grid-template-columns:60px 80px 120px 100px 100px 1fr;padding:.55rem 1.25rem;font-size:.72rem;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid var(--gray-200)}.trip-row{display:grid;grid-template-columns:60px 80px 120px 100px 100px 1fr;padding:.6rem 1.25rem;font-size:.82rem;align-items:center;border-bottom:1px solid var(--gray-100)}.trip-row:last-child{border-bottom:none}.trip-num{font-weight:600;color:var(--gray-600)}.trip-date{font-size:.78rem;color:var(--gray-500)}.trip-empty{padding:1.5rem;text-align:center;color:var(--gray-400);font-size:.85rem}.truck-status-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem;margin-bottom:1.5rem}.stat-card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius);padding:1.15rem 1.25rem;display:flex;align-items:center;gap:1rem;box-shadow:var(--shadow-sm)}.stat-card-icon{width:48px;height:48px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-card-info{display:flex;flex-direction:column;min-width:0}.stat-card-value{font-size:1.35rem;font-weight:700;color:var(--gray-900);line-height:1.2}.stat-card-label{font-size:.78rem;color:var(--gray-500);margin-top:.1rem}.stat-card-sub{font-size:.72rem;color:var(--gray-400);margin-top:.15rem}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:1rem}.dashboard-card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.dashboard-card-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid var(--gray-100)}.dashboard-card-header h3{font-size:.95rem;font-weight:600;color:var(--gray-800)}.dashboard-card-link{display:flex;align-items:center;gap:.3rem;font-size:.78rem;font-weight:500;color:var(--primary)}.dashboard-card-link:hover{text-decoration:underline}.dashboard-card-body{padding:.5rem 0;max-height:360px;overflow-y:auto}.activity-item{display:flex;align-items:flex-start;gap:.75rem;padding:.7rem 1.25rem;transition:background .1s}.activity-item:hover{background:var(--gray-50)}.activity-dot{width:8px;height:8px;border-radius:50%;margin-top:.35rem;flex-shrink:0}.activity-content{flex:1;min-width:0;display:flex;flex-direction:column}.activity-title{font-size:.83rem;font-weight:500;color:var(--gray-800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.activity-desc{font-size:.75rem;color:var(--gray-500);margin-top:.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.activity-time{font-size:.75rem;font-weight:500;white-space:nowrap;flex-shrink:0}.empty-text{text-align:center;padding:1.5rem;color:var(--gray-400);font-size:.85rem}.quick-login-section{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--gray-200)}.quick-login-label{display:block;font-size:.78rem;color:var(--gray-500);text-align:center;margin-bottom:.65rem;font-weight:500}.quick-login-buttons{display:flex;gap:.5rem}.quick-login-btn{flex:1;padding:.55rem .5rem;border-radius:var(--radius);font-size:.78rem;font-weight:500;border:1.5px solid var(--gray-200);background:var(--gray-50);color:var(--gray-700);transition:all .15s}.quick-login-btn:hover{border-color:var(--primary);background:var(--primary-light);color:var(--primary-dark)}.quick-login-btn:disabled{opacity:.5;cursor:not-allowed}.dashboard-card-body::-webkit-scrollbar{width:5px}.dashboard-card-body::-webkit-scrollbar-track{background:transparent}.dashboard-card-body::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:3px}@media(max-width:768px){.stat-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.card-grid{grid-template-columns:1fr}.trip-list-header,.trip-row{grid-template-columns:50px 60px 90px 80px 80px 1fr;font-size:.75rem}.filter-bar{flex-direction:column;align-items:stretch}.filter-count{margin-left:0}}@media(max-width:480px){.stat-grid{grid-template-columns:1fr}.auth-card{padding:1.5rem}.quick-login-buttons,.role-selector{flex-direction:column}}.gate-tabs{display:flex;gap:0;margin-bottom:1.25rem;border-bottom:2px solid var(--gray-200)}.gate-tab{padding:.65rem 1.25rem;background:none;border:none;font-size:.85rem;font-weight:500;color:var(--gray-500);border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s}.gate-tab:hover{color:var(--gray-700)}.gate-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.gate-trip-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1rem}.gate-trip-card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius);padding:1.15rem;box-shadow:var(--shadow-sm)}.gate-trip-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.gate-trip-vehicle{display:flex;align-items:center;gap:.5rem}.gate-vehicle-number{font-size:1rem;font-weight:700;font-family:monospace;color:var(--gray-800)}.gate-progress{display:flex;justify-content:space-between;margin-bottom:.85rem;padding:.5rem 0}.gate-progress-step{display:flex;flex-direction:column;align-items:center;gap:.3rem;flex:1}.gate-progress-dot{width:12px;height:12px;border-radius:50%;background:var(--gray-200);transition:all .2s}.gate-progress-dot.filled{box-shadow:0 0 0 3px #6366f126}.gate-progress-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.3px;color:var(--gray-400);text-align:center;font-weight:500}.gate-progress-label.active{color:var(--gray-700);font-weight:600}.gate-trip-details{display:flex;flex-direction:column;gap:.3rem;padding:.5rem 0;border-top:1px solid var(--gray-100)}.gate-detail-row{display:flex;justify-content:space-between;font-size:.82rem}.gate-detail-label{color:var(--gray-500)}.gate-net-weight{font-weight:700;color:var(--primary-dark)}.trip-list-header-v2{display:grid;grid-template-columns:120px 110px 70px 70px 70px 120px;padding:.55rem 1.25rem;font-size:.72rem;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid var(--gray-200)}.trip-row-v2{display:grid;grid-template-columns:120px 110px 70px 70px 70px 120px;padding:.6rem 1.25rem;font-size:.82rem;align-items:center;border-bottom:1px solid var(--gray-100)}.trip-row-v2:last-child{border-bottom:none}.trip-vehicle{font-weight:600;font-family:monospace;font-size:.8rem}.alert-info{background:#eff6ff;color:#1e40af;border:1px solid #bfdbfe}.gate-trip-ready{border-color:var(--success);box-shadow:0 0 0 1px #05966926,var(--shadow-sm)}.gate-waiting-msg{text-align:center;padding:.6rem;font-size:.8rem;color:var(--gray-400);margin-top:.5rem;border-top:1px dashed var(--gray-200)}.gate-progress-time{font-size:.6rem;color:var(--gray-400);margin-top:.1rem}.dispatch-summary{background:var(--gray-50);border-radius:var(--radius);padding:1.25rem}.dispatch-vehicle-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--gray-200)}.dispatch-vehicle-num{font-size:1.15rem;font-weight:700;font-family:monospace;color:var(--gray-800)}.dispatch-details{display:flex;flex-direction:column;gap:.4rem}.dispatch-detail-row{display:flex;justify-content:space-between;font-size:.85rem}.dispatch-detail-row span:first-child{color:var(--gray-500)}.dispatch-net{margin-top:.3rem;padding-top:.5rem;border-top:1px solid var(--gray-200);font-weight:600;font-size:.95rem}.dispatch-net span:last-child{color:var(--primary-dark)}.dispatch-note{margin-top:1rem;padding:.65rem;background:#fef3c7;border-radius:6px;font-size:.78rem;color:#92400e;line-height:1.4}
