:root{font-family:Noto Sans TC,Inter,Segoe UI,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body,html,#root{margin:0;width:100%;min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(145deg,#0f172a,#1e293b)}:root{font-family:Noto Sans TC,Inter,Segoe UI,system-ui,-apple-system,sans-serif;background:linear-gradient(145deg,#0f172a,#1e293b);color:#0f172a}html{-webkit-text-size-adjust:100%}*{box-sizing:border-box}body,html,#root{margin:0;min-height:100%}.login-wrapper{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:clamp(24px,5vw,60px)}.login-card{width:min(400px,100%);background:#f8fafcf2;border-radius:24px;padding:clamp(28px,6vw,40px);box-shadow:0 30px 70px #0f172a73;display:flex;flex-direction:column;gap:24px;text-align:center}.login-card h1{margin:0;color:#0f172a;font-size:clamp(1.8rem,4vw,2.3rem);letter-spacing:.04em}.login-subtitle{margin:0;color:#475569;font-size:1rem}.login-form{display:flex;flex-direction:column;gap:18px}.login-field{display:flex;flex-direction:column;gap:8px;text-align:left}.login-label{font-weight:600;color:#1f2937}.login-input{width:100%;border-radius:12px;border:1px solid rgba(59,130,246,.35);padding:12px 14px;font-size:1rem;transition:border-color .2s ease,box-shadow .2s ease}.login-input:focus{outline:none;border-color:#3b82f6bf;box-shadow:0 0 0 4px #3b82f626}.login-error{margin:0;color:#ef4444;font-size:.9rem;text-align:center}.login-button{border:none;border-radius:999px;background:linear-gradient(135deg,#2563eb,#4c1d95);color:#f8fafc;padding:12px 20px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.login-button:hover{transform:translateY(-1px);box-shadow:0 18px 30px #2563eb59}.login-button:disabled{opacity:.6;cursor:not-allowed;box-shadow:none;transform:none}.login-success{margin:0;color:#16a34a;font-size:.9rem;text-align:center}.login-register-row{display:flex;justify-content:flex-end}.login-register-link{background:none;border:none;color:#2563eb;cursor:pointer;font-size:.9rem;padding:0;text-decoration:underline;transition:color .2s ease}.login-register-link:hover{color:#1d4ed8}.register-card{width:min(520px,100%);text-align:left;gap:20px}.register-card h1{text-align:left}.register-subtitle{margin:0;color:#475569;font-size:.95rem;text-align:left}.register-form{display:flex;flex-direction:column;gap:16px}.register-field{display:flex;flex-direction:column;gap:6px}.field-tip{margin:0;font-size:.8rem;color:#64748b}.field-required{color:#ef4444;margin-left:4px}.field-error{margin:0;font-size:.8rem;color:#ef4444}.register-error{margin:0;color:#ef4444;font-size:.9rem;text-align:left}.input-error{border-color:#ef4444a6!important;box-shadow:0 0 0 4px #ef44441f!important}.register-textarea{min-height:120px;resize:vertical}.register-actions{display:flex;align-items:center;gap:12px}.register-actions button{flex:1}.register-secondary-button{border-radius:999px;border:1px solid rgba(148,163,184,.6);background:transparent;color:#1f2937;padding:10px 18px;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease}.register-secondary-button:hover:not(:disabled){background:#94a3b833;border-color:#3b82f680}.register-secondary-button:disabled{opacity:.6;cursor:not-allowed}.register-primary-button{border:none;border-radius:999px;background:linear-gradient(135deg,#16a34a,#0f766e);color:#f0fdf4;padding:10px 18px;font-size:.95rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.register-primary-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 18px 30px #16a34a59}.register-primary-button:disabled{opacity:.6;cursor:not-allowed;box-shadow:none;transform:none}.terms-modal-backdrop{position:fixed;inset:0;background:#0f172ab8;display:flex;align-items:center;justify-content:center;padding:clamp(16px,4vw,32px);z-index:999}.terms-modal{width:min(560px,100%);max-height:min(80vh,720px);background:#f8fafc;border-radius:20px;box-shadow:0 28px 80px #0f172a73;padding:clamp(20px,3vw,28px);display:flex;flex-direction:column;gap:18px}.terms-modal h2{margin:0;font-size:1.25rem;color:#0f172a;text-align:center}.terms-modal-scroll{flex:1 1 auto;overflow-y:auto;padding:16px;border-radius:16px;background:#94a3b81f;color:#1f2937;white-space:pre-wrap;line-height:1.6;font-size:.95rem;border:1px solid rgba(148,163,184,.25)}.terms-modal-actions{display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap}.terms-button{min-width:110px;border-radius:999px;padding:10px 18px;font-size:.95rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.terms-button:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.terms-button-secondary{border:1px solid rgba(148,163,184,.6);background:#fff;color:#1f2937}.terms-button-secondary:hover{background:#94a3b833}.terms-button-primary{border:none;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#eff6ff;box-shadow:0 20px 35px #2563eb59}.terms-button-primary:hover{transform:translateY(-1px);box-shadow:0 26px 45px #2563eb73}.app-container{min-height:100vh;display:flex;justify-content:center;align-items:stretch;width:100%;max-width:100vw;padding:clamp(20px,4vw,48px)}.app-shell{width:min(1200px,100%);display:flex;gap:clamp(16px,3vw,24px);align-items:flex-start}.sidebar{width:clamp(220px,70vw,260px);background:#0f172ad9;border-radius:22px;padding:28px clamp(18px,3vw,24px);box-shadow:0 24px 60px #0f172a73;display:flex;flex-direction:column;gap:24px;color:#f8fafc;position:sticky;top:clamp(20px,4vw,48px);max-height:calc(100vh - (clamp(20px,4vw,48px)*2));overflow:hidden}.sidebar-title{margin:0;font-size:1.2rem;font-weight:600;letter-spacing:.04em}.sidebar-nav{display:flex;flex-direction:column;gap:14px;flex:1 1 auto;min-height:0;overflow-y:auto;padding-right:6px}.sidebar-divider{border-top:1px solid rgba(148,163,184,.45);margin:6px 6px 14px;opacity:.9}.sidebar-link{border:1px solid rgba(148,163,184,.35);border-radius:14px;padding:12px 16px;background:transparent;color:#e2e8f0;font-size:.95rem;text-align:left;cursor:pointer;transition:background .2s ease,border-color .2s ease,transform .2s ease}.sidebar-link--dispatch{margin-top:4px}.coming-soon-card{background:#0f172a99;border:1px dashed rgba(94,234,212,.4);border-radius:18px;padding:32px;text-align:center;color:#e2e8f0;box-shadow:inset 0 0 0 1px #94a3b81f}.coming-soon-card h3{margin-bottom:12px;font-size:1.25rem}.sidebar-link:hover{background:#94a3b840;border-color:#3b82f6a6;transform:translateY(-1px)}.sidebar-link.active{background:#3b82f659;border-color:#3b82f6bf;color:#f8fafc}.content-area{flex:1;display:flex;flex-direction:column;gap:clamp(16px,3vw,24px);min-width:0}.top-banner{display:flex;justify-content:space-between;align-items:center;gap:clamp(12px,2vw,20px);background:#0f172ae6;color:#f8fafc;border-radius:22px;padding:clamp(18px,3vw,28px);box-shadow:0 20px 48px #0f172a73;position:sticky;top:16px;z-index:20;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.banner-left{display:flex;align-items:center;gap:clamp(12px,2vw,20px);flex-wrap:wrap}.sidebar-toggle{border:none;border-radius:999px;background:#f8fafc26;color:#f8fafc;padding:10px 18px;font-size:.95rem;cursor:pointer;transition:background .2s ease,transform .2s ease}.sidebar-toggle:hover{background:#f8fafc40;transform:translateY(-1px)}.banner-text h1{margin:0;font-size:clamp(1.6rem,3.5vw,2.2rem);letter-spacing:.04em}.banner-text p{margin:0;color:#cbd5f5;font-size:clamp(.95rem,2.5vw,1.05rem)}.banner-user{display:flex;align-items:center;gap:10px;background:#94a3b833;padding:10px 16px;border-radius:999px;min-height:44px}.user-icon{font-size:1.5rem}.user-name{font-weight:600;letter-spacing:.02em;color:#f8fafc}.template-actions{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0}.template-modal-backdrop{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:120;padding:16px}.template-modal{background:#0f172a;color:#f8fafc;border:1px solid rgba(148,163,184,.4);border-radius:16px;max-width:800px;width:100%;box-shadow:0 24px 60px #00000073;display:flex;flex-direction:column;gap:16px;padding:16px 18px 20px}.template-modal-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.template-modal-close{background:transparent;border:none;color:#e2e8f0;font-size:1.2rem;cursor:pointer}.template-modal-body{display:flex;flex-direction:column;gap:12px}.template-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.template-row-wrap span{line-height:1.6}.template-input{min-width:140px;font-size:1rem;padding:10px 12px;border-radius:10px}.template-modal-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}@media(max-width:640px){.template-modal{max-width:none}.template-row{gap:6px}.template-input{min-width:180px;flex:1}.template-modal-actions .button-primary,.template-modal-actions .button-secondary{flex:1;font-size:1rem;padding:12px 14px}}.logout-button{border:none;border-radius:999px;padding:8px 14px;font-size:.9rem;font-weight:600;cursor:pointer;color:#0f172a;background:linear-gradient(135deg,#fca5a5,#f87171);box-shadow:0 12px 24px #f8717159;transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease}.logout-button:hover,.logout-button:focus{transform:translateY(-1px);box-shadow:0 16px 28px #f8717173}.logout-button:active{transform:translateY(0)}.app-main{flex:1;padding:clamp(8px,3vw,24px) 0}.form-section{width:min(100%,960px);margin:0 auto;background:#f8fafcf2;border-radius:18px;padding:clamp(18px,3vw,32px);display:flex;flex-direction:column;gap:clamp(16px,2.5vw,24px);box-shadow:0 24px 60px #0f172a66}.field-group{display:flex;flex-direction:column;gap:8px}.levels-container{display:grid;gap:clamp(12px,2vw,18px);grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.field-label{font-weight:600;color:#1f2937}.field-select,.field-textarea{width:100%;border-radius:12px;border:1px solid rgba(59,130,246,.35);padding:12px 14px;font-size:1rem;background:#fff;color:#0f172a;transition:border-color .2s ease,box-shadow .2s ease}.field-select:focus,.field-textarea:focus{outline:none;border-color:#3b82f6bf;box-shadow:0 0 0 4px #3b82f626}.field-textarea{resize:vertical;min-height:160px}.tag-danger{display:inline-flex;align-items:center;justify-content:center;margin-left:8px;padding:2px 10px;border-radius:999px;background:#f8717133;color:#f87171;font-size:.75rem;font-weight:600;border:1px solid rgba(248,113,113,.35)}.tag-success{display:inline-flex;align-items:center;justify-content:center;margin-left:8px;padding:2px 10px;border-radius:999px;background:#22c55e2e;color:#16a34a;font-size:.75rem;font-weight:600;border:1px solid rgba(34,197,94,.28)}.field-actions{display:flex;flex-wrap:wrap;gap:12px}.action-button{border:none;border-radius:999px;background:#3b82f62e;color:#1d4ed8;padding:10px 18px;font-size:.95rem;cursor:pointer;transition:background .2s ease,transform .2s ease}.action-button:hover{background:#3b82f64d;transform:translateY(-1px)}.action-button.active{background:#6366f159;color:#312e81}.action-button:disabled{opacity:.5;cursor:not-allowed}.field-error{margin:0;font-size:.9rem;color:#ef4444}.field-success{margin:0;font-size:.9rem;color:#16a34a}.field-message{margin:0;font-size:.85rem;color:#6b7280}.voice-hint{color:#4f46e5;font-weight:500}.orders-view{display:flex;flex-direction:column;gap:16px;width:100%}.order-filters{background:#1a447e2e;border:1px solid #6fa8ff;border-radius:14px;padding:16px 18px;color:#dfeaff}.order-filter-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.order-filter-header h3{margin:0;font-size:16px;color:#dfeaff}.order-filter-body{display:flex;flex-direction:column;gap:10px}.cascade-selects{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.cascade-select{display:flex;flex-direction:column;gap:4px}.cascade-label{font-size:14px;color:#cfe0ff}.cascade-select select{background:#10315f;color:#eaf2ff;border:1px solid #6fa8ff;border-radius:10px;padding:12px 14px;font-size:16px}.order-filters .ghost-button{color:#0b1b33;background:linear-gradient(90deg,#8cc2ff,#66a3ff);border:none;border-radius:10px;padding:10px 14px;font-weight:800;font-size:15px;box-shadow:0 4px 12px #66a3ff59}.order-filters .field-message{color:#dfeaff}.order-search-row{display:flex;flex-direction:column;gap:6px}.order-search-input{width:100%;background:#10315f;color:#eaf2ff;border:1px solid #6fa8ff;border-radius:10px;padding:10px 12px;font-size:16px}.order-search-input::placeholder{color:#eaf2ffb3}.history-button{background:linear-gradient(90deg,#7fb3ff,#5c9cff);color:#0b1b33;border:none;border-radius:10px;padding:8px 12px;font-weight:700;cursor:pointer;box-shadow:0 4px 10px #5c9cff66}.history-button:hover,.history-button:focus{box-shadow:0 6px 14px #5c9cff80}.orders-list{display:flex;flex-direction:column;gap:12px}.order-card{width:100%;border:none;display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:16px;border-radius:18px;background:#0f172ad9;border:1px solid rgba(59,130,246,.22);color:#e2e8f0;box-shadow:0 12px 24px #0f172a66;text-align:left}.order-card:hover,.order-card:focus{background:#1e40af59;border-color:#60a5fa73}.order-card-header{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px}.order-card-header h3{margin:0;font-size:1.05rem;color:#bfdbfe}.order-card-status,.order-detail-status{display:flex;align-items:center;justify-content:flex-end}.order-card-warning{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:2px 10px;border-radius:999px;border:1px solid rgba(248,113,113,.45);background:#f871711f;color:#fecaca;font-size:.75rem;font-weight:600;white-space:nowrap}.order-card-warning-icon{font-size:.9rem;line-height:1}.status-chip{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:999px;font-size:.85rem;font-weight:600;letter-spacing:.02em;border:1px solid rgba(148,163,184,.35);color:#e2e8f0;background:#94a3b826;white-space:nowrap}.status-chip-reported{color:#f472b6;border-color:#f472b699;background:#f472b626}.status-chip-accepted{color:#60a5fa;border-color:#60a5fa99;background:#60a5fa26}.status-chip-dispatched{color:#facc15;border-color:#facc1599;background:#facc152e}.status-chip-completed{color:#86efac;border-color:#86efac99;background:#86efac2e}.status-chip-reviewed{color:#4ade80;border-color:#4ade8099;background:#4ade802e}.status-chip-closed{color:#34d399;border-color:#34d39999;background:#34d3992e}.status-chip-merged{color:#c084fc;border-color:#c084fc99;background:#c084fc2e}.status-chip-transferred,.status-chip-void{color:#f97373;border-color:#f9737399;background:#f9737329}.order-card-meta{display:flex;flex-wrap:wrap;gap:10px;font-size:.85rem;color:#94a3b8}.order-card-path{margin:0;font-size:.9rem;color:#e2e8f0}.order-card-desc{margin:0;font-size:.9rem;color:#cbd5f5}.orders-empty,.orders-error{margin:0;font-size:.95rem;color:#cbd5f5}.orders-error{color:#fda4af}.order-detail{display:flex;flex-direction:column;gap:16px}.back-button{align-self:flex-start;padding:8px 14px;border-radius:999px;border:1px solid rgba(148,163,184,.4);background:#0f172a99;color:#e2e8f0;font-size:.9rem}.back-button:hover,.back-button:focus{border-color:#60a5fa99;color:#bfdbfe}.order-detail-card{background:#0f172ad9;border:1px solid rgba(59,130,246,.18);border-radius:18px;padding:18px;display:flex;flex-direction:column;gap:12px;box-shadow:0 12px 24px #0f172a59}.order-detail-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.order-detail-title{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.order-detail-assignments{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.order-detail-assignments .assignment-chip{font-size:.8rem}.order-detail-header h2{margin:0;font-size:1.2rem;color:#c7d2fe}.completion-log-list{display:flex;flex-direction:column;gap:10px}.completion-log-entry{border:1px solid rgba(148,163,184,.3);border-radius:12px;padding:10px 14px;background:#0f172a99}.completion-log-meta{margin:0 0 6px;font-size:.9rem;display:flex;gap:8px;color:#cbd5f5}.completion-log-meta strong{color:#facc15}.completion-log-report{margin:0;color:#e2e8f0;white-space:pre-wrap}.order-claim-button{border:none;border-radius:999px;padding:8px 18px;font-size:.9rem;font-weight:600;cursor:pointer;background:linear-gradient(135deg,#facc15,#f59e0b);color:#1f2937;box-shadow:0 12px 24px #facc1559;transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease}.order-claim-button:hover,.order-claim-button:focus{transform:translateY(-1px);box-shadow:0 16px 28px #facc1566}.order-claim-button:disabled{cursor:not-allowed;opacity:.6;box-shadow:none;transform:none}.order-dispatch-button{margin-top:8px;padding:8px 16px;background:#f8717138;border:1px solid rgba(248,113,113,.7);color:#fee2e2;border-radius:12px;cursor:pointer;font-size:.9rem;transition:background .2s ease,border-color .2s ease,transform .2s ease}.order-dispatch-button:disabled{opacity:.5;cursor:not-allowed}.order-dispatch-button:not(:disabled):hover,.order-dispatch-button:not(:disabled):focus{background:#f8717159;border-color:#f87171e6;transform:translateY(-1px)}.order-claim-status{display:flex;flex-direction:column;gap:4px;padding:10px 16px;border-radius:12px;background:linear-gradient(135deg,#86efac33,#10b98159);border:1px solid rgba(16,185,129,.5);color:#bbf7d0;font-size:.9rem;font-weight:600}.order-claim-status-text{color:#ecfdf5}.order-claim-status-meta{font-size:.85rem;color:#a7f3d0;font-weight:500}.order-claim-actions{display:flex;align-items:stretch;gap:12px;flex-wrap:wrap}.order-claim-cancel{border:none;border-radius:12px;padding:10px 18px;font-size:.95rem;font-weight:600;cursor:pointer;background:linear-gradient(135deg,#dc2626,#ef4444);color:#fef2f2;box-shadow:0 12px 24px #ef444459;transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease}.order-claim-cancel:hover,.order-claim-cancel:focus-visible{transform:translateY(-1px);box-shadow:0 16px 28px #ef444466}.order-claim-cancel:disabled{cursor:not-allowed;opacity:.6;box-shadow:none;transform:none}.completion-card{display:flex;flex-direction:column;gap:16px}.completion-field{display:flex;flex-direction:column;gap:8px}.completion-grid{display:grid;gap:16px}@media(min-width:640px){.completion-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.completion-label{font-size:.9rem;color:#cbd5f5;font-weight:600}.completion-select,.completion-input,.completion-textarea{border-radius:12px;border:1px solid rgba(148,163,184,.45);background:#0f172a99;color:#e2e8f0;padding:10px 14px;font-size:.95rem;transition:border-color .2s ease,box-shadow .2s ease}.completion-select:focus,.completion-input:focus,.completion-textarea:focus{outline:none;border-color:#3b82f6b3;box-shadow:0 0 0 3px #3b82f633}.completion-textarea{min-height:160px;resize:vertical;line-height:1.5}.completion-photo-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.completion-photo-button{border:none;border-radius:12px;padding:10px 18px;font-size:.95rem;font-weight:600;cursor:pointer;background:linear-gradient(135deg,#1d4ed8,#3b82f6);color:#f8fafc;box-shadow:0 10px 20px #2563eb4d;transition:transform .2s ease,box-shadow .2s ease}.completion-photo-button:hover,.completion-photo-button:focus-visible{transform:translateY(-1px);box-shadow:0 14px 24px #2563eb59}.completion-upload-status{display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:12px;background:#2563eb1a;border:1px solid rgba(37,99,235,.2)}.completion-progress{width:100%;height:8px;border-radius:999px;background:#94a3b84d;overflow:hidden}.completion-progress-bar{height:100%;background:linear-gradient(135deg,#22c55e,#86efac)}.completion-progress-text{margin:0;font-size:.85rem;color:#cbd5f5}.completion-upload-failures{background:#f871711f;border-radius:10px;padding:10px;border:1px solid rgba(248,113,113,.35)}.completion-upload-failures p{margin:0 0 6px;font-size:.85rem;color:#fecaca}.completion-upload-failures ul{margin:0;padding-left:18px;color:#fecaca;font-size:.85rem}.completion-submit-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:8px}.completion-breaked-toggle{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;border:1px solid rgba(251,146,60,.5);background:#fb923c26;color:#fb923c;font-size:.9rem;font-weight:600}.completion-breaked-checkbox{width:18px;height:18px;accent-color:#fb923c}.completion-breaked-label{white-space:nowrap}.completion-submit-button{align-self:flex-start;border:none;border-radius:14px;padding:12px 22px;font-size:1rem;font-weight:700;cursor:pointer;background:linear-gradient(135deg,#ec4899,#f97316);color:#fff7ed;box-shadow:0 18px 32px #ec489959;transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease}.completion-submit-button:hover,.completion-submit-button:focus-visible{transform:translateY(-1px);box-shadow:0 22px 36px #ec489966}.completion-submit-button:disabled{cursor:not-allowed;opacity:.65;transform:none;box-shadow:none}.order-claim-status-error{color:#fca5a5}.order-detail-meta{display:flex;flex-wrap:wrap;gap:10px;font-size:.85rem;color:#94a3b8}.order-history-tip{color:#d97706;font-weight:700}.order-detail-grid{display:grid;gap:16px}.order-detail-card>h3{margin:0;font-size:.95rem;color:#a5b4fc}.dispatch-setup-card{gap:18px}.dispatch-title{margin:0;font-size:1.2rem;color:#c7d2fe}.dispatch-field-block{display:flex;flex-direction:column;gap:10px}.dispatch-field-group{display:flex;flex-direction:column;gap:6px}.dispatch-field-title{margin:0;font-size:.95rem;color:#a5b4fc}.dispatch-field-block .field-select,.dispatch-field-block .field-textarea{background:#0f172af2;border-color:#94a3b873;color:#f8fafc}.dispatch-field-block .field-select:focus,.dispatch-field-block .field-textarea:focus{border-color:#3b82f6cc;box-shadow:0 0 0 4px #3b82f626}.dispatch-location-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.dispatch-hint{font-size:.85rem;color:#94a3b8}.dispatch-hint.inline-spinner{display:inline-flex;align-items:center;gap:6px}.dispatch-hint-error{font-size:.85rem;color:#fca5a5}.dispatch-hint-success{font-size:.85rem;color:#4ade80}.dispatch-actions-bar{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.dispatch-submit-button{background:linear-gradient(135deg,#38bdf8,#6366f1);border-color:transparent;color:#0f172a;box-shadow:0 12px 24px #6366f159}.dispatch-submit-button:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}@media(min-width:640px){.order-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.order-detail-grid h3{margin:0 0 6px;font-size:.95rem;color:#a5b4fc}.order-detail-grid p{margin:0;font-size:.9rem;color:#e2e8f0;white-space:pre-wrap;word-break:break-word}.order-detail-path{margin:0;color:#e2e8f0;font-size:.9rem;display:flex;flex-direction:column;gap:6px}.order-detail-path .path-row{display:flex;align-items:flex-start;gap:6px}.order-detail-path .path-branch{color:#c7d2fe;flex-shrink:0}.order-detail-path .path-name{white-space:pre-wrap;word-break:break-word}.order-pictures-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.completion-photos-section{margin-top:24px;border-top:1px solid rgba(148,163,184,.2);padding-top:16px}.completion-photos-section h4{margin-top:0;margin-bottom:12px;font-size:1.05rem;color:#e2e8f0}.operation-history{display:flex;flex-direction:column;gap:12px}.operation-history-card{border:1px solid rgba(148,163,184,.2);border-radius:14px;padding:12px 14px;background:#0f172a8c;display:flex;flex-direction:column;gap:10px}.operation-history-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.operation-history-card header p{margin:2px 0 0;color:#e2e8f0}.operation-history-label{display:block;font-size:.85rem;color:#93c5fd}.operation-history-type{padding:2px 12px;border-radius:999px;background:#3b82f640;color:#bfdbfe;font-size:.85rem;white-space:nowrap}.operation-history-content{display:flex;flex-direction:column;gap:8px}.operation-history-content p{margin:2px 0 0;color:#e2e8f0;white-space:pre-wrap}@media(min-width:640px){.operation-history-content{flex-direction:row;justify-content:space-between}.operation-history-content>div{flex:1}}.order-note-block{border:1px solid rgba(148,163,184,.2);border-radius:12px;padding:16px;background:#0f172a73;color:#e2e8f0;display:flex;flex-direction:column;gap:6px}.maintenance-history{display:flex;flex-direction:column;gap:16px}.maintenance-entry{border:1px solid rgba(148,163,184,.2);border-radius:16px;padding:16px;background:#0f172a80;display:flex;flex-direction:column;gap:10px}.maintenance-entry-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.maintenance-entry-info{display:flex;flex-direction:column;gap:6px;color:#f8fafc}.maintenance-entry-name{font-size:1rem}.maintenance-entry-uno{margin-left:6px;font-size:.9rem;color:#cbd5f5}.maintenance-status-chip{align-self:flex-start;padding:2px 12px;border-radius:999px;font-size:.85rem;color:#e2e8f0}.maintenance-status-chip.completed{background:#22c55e40;color:#bbf7d0}.maintenance-status-chip.pending{background:#f8717133;color:#fecaca}.maintenance-breaked-flag{display:inline-flex;align-items:center;gap:4px;margin-left:10px;padding:2px 10px;border-radius:999px;border:1px solid rgba(251,146,60,.7);background:#fb923c2e;color:#ffedd5;font-size:.8rem;font-weight:600}.maintenance-breaked-icon{font-size:.85rem;line-height:1}.maintenance-entry-meta{display:flex;flex-direction:column;gap:4px;color:#cbd5f5;font-size:.9rem}.maintenance-entry-label{font-size:.85rem;color:#93c5fd}.maintenance-entry-times,.maintenance-entry-block{display:flex;flex-direction:column;gap:4px;margin:6px 0}.maintenance-entry-times p,.maintenance-entry-block p{margin:0;color:#e2e8f0;font-size:.95rem;white-space:pre-wrap}.maintenance-entry-path{display:flex;flex-direction:column;gap:6px}.maintenance-entry-path-list{display:flex;flex-direction:column;gap:4px}.maintenance-entry-path-item{display:flex;align-items:center;gap:6px;color:#e2e8f0;white-space:pre}.maintenance-entry-hazard{border:1px dashed rgba(248,113,113,.6);border-radius:12px;padding:10px 12px;background:#ef444426;color:#fee2e2;display:flex;flex-direction:column;gap:4px}.maintenance-entry-hazard span{font-weight:600;font-size:.9rem}.maintenance-entry-hazard p{margin:0}.maintenance-entry-pictures{margin-top:8px}.order-picture{margin:0;display:flex;flex-direction:column;gap:6px;background:#1e293b99;border-radius:14px;padding:8px;border:1px solid rgba(59,130,246,.2)}.order-picture img{width:100%;border-radius:10px;object-fit:cover}.order-picture figcaption{font-size:.8rem;color:#cbd5f5;display:flex;flex-direction:column;gap:2px}.profile-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:32px;border-radius:18px;background:#0f172ad9;border:1px solid rgba(148,163,184,.35);color:#e2e8f0;text-align:center}.profile-placeholder h2{margin:0;font-size:1.1rem;color:#a5b4fc}.image-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.image-card{position:relative;border-radius:14px;overflow:hidden;box-shadow:0 12px 24px #0f172a40}.image-card img{width:100%;height:140px;object-fit:cover;display:block}.image-delete{position:absolute;top:8px;right:8px;border:none;border-radius:999px;width:28px;height:28px;background:#1e293bbf;color:#f8fafc;font-size:.85rem;cursor:pointer;transition:background .2s ease}.image-delete:hover{background:#1e293bf2}.upload-status{display:flex;flex-direction:column;gap:8px;margin-top:clamp(12px,2vw,20px);padding:14px 16px;border-radius:14px;background:#3b82f61f;border:1px solid rgba(59,130,246,.3);color:#1e293b}.upload-progress{width:100%;height:10px;border-radius:999px;background:#3b82f62e;overflow:hidden}.upload-progress-bar{height:100%;border-radius:999px;background:linear-gradient(135deg,#2563eb,#4c1d95);transition:width .3s ease}.upload-progress-text{margin:0;font-size:.9rem;font-weight:600}.upload-failures{margin:0;font-size:.9rem;color:#b91c1c}.upload-failures ul{margin:4px 0 0;padding-left:18px}.inline-spinner{display:inline-flex;align-items:center;gap:6px}.inline-spinner-dot{width:12px;height:12px;border-radius:50%;border:2px solid rgba(148,197,255,.25);border-top-color:#93c5fd;animation:inlineSpinner .75s linear infinite}@keyframes inlineSpinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.upload-failures li{margin-bottom:2px}.submit-row{display:flex;justify-content:flex-end;margin-top:clamp(12px,2vw,24px)}.submit-button{border:none;border-radius:999px;background:linear-gradient(135deg,#2563eb,#4c1d95);color:#f8fafc;padding:12px 28px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease}.submit-button:hover{transform:translateY(-1px);box-shadow:0 18px 30px #2563eb59}.submit-button:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}@media(max-width:768px){.app-shell{flex-direction:row}.top-banner{flex-direction:column;align-items:flex-start}.banner-user{align-self:stretch;justify-content:space-between}.form-section{padding:18px}.field-actions{flex-direction:column;align-items:stretch}.action-button{width:100%}.levels-container{grid-template-columns:1fr}.submit-row{justify-content:stretch}.submit-button{width:100%}}@media(max-width:600px){.login-card{padding:24px}.app-shell{flex-direction:row}}.dispatch-actions{display:flex;flex-direction:column;gap:12px}.dispatch-action{width:100%;border:none;border-radius:14px;padding:12px 16px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease,filter .2s ease}.dispatch-action-label{display:block}.dispatch-action-meta{font-size:.85rem;font-weight:500;opacity:.85}.dispatch-action:hover:not(:disabled),.dispatch-action:focus-visible:not(:disabled){transform:translateY(-1px);filter:brightness(1.05)}.dispatch-action:disabled{cursor:not-allowed;transform:none;box-shadow:none;filter:none}.dispatch-action--travel{background:linear-gradient(135deg,#1d4ed8,#2563eb);color:#f8fafc;box-shadow:0 14px 28px #2563eb59}.dispatch-action--travel:disabled{background:#bfdbfe;color:#1e3a8a}.dispatch-action--start{background:linear-gradient(135deg,#facc15,#f59e0b);color:#1f2937;box-shadow:0 14px 28px #facc1559}.dispatch-action--start:disabled{background:#fef3c7;color:#a16207}.dispatch-action--finish{background:linear-gradient(135deg,#16a34a,#22c55e);color:#ecfdf5;box-shadow:0 14px 28px #22c55e59}.dispatch-action--finish:disabled{background:#bbf7d0;color:#166534}
