:root{--bg: #f4f6f8;--surface: #ffffff;--text: #1a2330;--muted: #6b7a8c;--border: #e1e6ec;--primary: #0f766e;--primary-contrast: #ffffff;--danger: #b42318;--success: #15803d;--sidebar: #0b2b33;--sidebar-text: #cfe3e6;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.layout{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{background:var(--sidebar);color:var(--sidebar-text);padding:20px 14px;display:flex;flex-direction:column;gap:4px}.sidebar .brand{font-weight:700;letter-spacing:.04em;color:#fff;margin-bottom:20px;padding:0 10px}.sidebar .section{font-size:11px;text-transform:uppercase;opacity:.6;padding:14px 10px 4px}.sidebar a{display:block;padding:9px 10px;border-radius:6px}.sidebar a.active,.sidebar a:hover{background:#ffffff1a;color:#fff}.sidebar .user{margin-top:auto;padding:10px;font-size:13px;border-top:1px solid rgba(255,255,255,.1)}.main{padding:24px 28px}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.page-header h1{margin:0;font-size:22px}.btn{border:1px solid var(--border);background:var(--surface);padding:8px 14px;border-radius:6px;cursor:pointer}.btn.primary{background:var(--primary);color:var(--primary-contrast);border-color:var(--primary)}.btn.danger{color:var(--danger)}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:16px 18px;margin-bottom:12px}.lot-row{display:grid;grid-template-columns:110px 1fr 140px 160px 120px;gap:16px;align-items:center}.lot-row .route{font-weight:600}.lot-row .sub{color:var(--muted);font-size:13px}.price{font-size:18px;font-weight:700;color:var(--success)}.price.empty{color:var(--muted);font-weight:400;font-size:14px}.badge{display:inline-block;padding:3px 8px;border-radius:999px;font-size:12px;background:#e8f3f1;color:var(--primary)}.badge.muted{background:#eef1f4;color:var(--muted)}.login{max-width:360px;margin:12vh auto}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.field input{padding:9px 10px;border:1px solid var(--border);border-radius:6px}.error{color:var(--danger);font-size:14px}.muted{color:var(--muted)}.field select,.field textarea{padding:9px 10px;border:1px solid var(--border);border-radius:6px;background:var(--surface)}.field textarea{resize:vertical;min-height:60px}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid rgba(15,118,110,.35);outline-offset:0;border-color:var(--primary)}.field>span:first-child{font-size:13px;color:var(--muted)}.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:var(--danger)}.field.check{justify-content:flex-end}.field.check .row{align-items:center;color:var(--text)}.field.check input[type=checkbox]{width:16px;height:16px}.field-error{color:var(--danger);font-size:12px}.hint{color:var(--muted);font-size:12px}.hint.warn,.notice.warn{color:#9a5b00}.req{color:var(--danger);font-weight:600}.row{display:flex;gap:8px;align-items:center}.row.between{justify-content:space-between}.row input{flex:1;min-width:0}.row.dims input{width:100px;flex:0 0 auto}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 20px}.form-grid .full{grid-column:1 / -1}.lot-form .card h3,.lot-grid .card h3,.modal h3{margin:0 0 12px;font-size:16px}.lot-form .card h3{margin-bottom:14px}.card.invalid{border-color:var(--danger)}.form-actions{display:flex;gap:10px;align-items:center;margin:4px 0 24px}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.danger{border-color:#f1c3bf}.recipients{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:6px 14px;margin-top:8px}.recipient{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border:1px solid var(--border);border-radius:8px;cursor:pointer}.recipient:hover{background:var(--bg)}.recipient input{margin-top:3px}.recipient .name{display:block;font-weight:500}.recipient .sub{display:block;font-size:12px;color:var(--muted)}.recipient.unlinked{border-style:dashed}.tag{display:inline-block;padding:1px 7px;border-radius:999px;font-size:11px;background:#eef1f4;color:var(--muted);margin-left:6px;vertical-align:middle}.tag.warn{background:#fff3e0;color:#9a5b00}.tag.tg{background:#e3f2fd;color:#0b5394}.page-header .row h1{margin:0}.badge.danger{background:#fdecea;color:var(--danger)}.notice{padding:10px 14px;border:1px solid var(--border);border-radius:8px;background:var(--surface);margin:0 0 12px}.lot-head{display:grid;grid-template-columns:1fr 200px 220px;gap:20px;align-items:center}.lot-head .route{font-size:18px;font-weight:600}.lot-head .sub,.lot-grid .sub,.timer .sub{color:var(--muted);font-size:13px}.timer .left{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums}.timer .left.soon{color:var(--danger)}.timer .left.muted{font-size:16px;font-weight:600}.min-bid{text-align:right}.price.big{font-size:28px}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 16px}.actions .muted{font-size:13px}.lot-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(280px,2fr);gap:0 16px;align-items:start}@media(max-width:1100px){.lot-grid,.lot-head{grid-template-columns:1fr}.min-bid{text-align:left}}.props{display:grid;grid-template-columns:200px 1fr;gap:8px 16px;margin:0}.props dt{color:var(--muted);font-size:13px;padding-top:1px}.props dd{margin:0}.pre{white-space:pre-wrap}ol.plain{margin:0;padding-left:18px}.bids{list-style:none;margin:0;padding:0}.bids li{display:grid;grid-template-columns:110px 1fr 70px auto;gap:12px;align-items:baseline;padding:7px 0;border-top:1px solid var(--border)}.bids li:first-child{border-top:0}.bids li.lead .amount{color:var(--success);font-weight:700}.bids .amount{font-variant-numeric:tabular-nums}.recipients-list,.events,.docs{list-style:none;margin:0;padding:0}.recipients-list li{display:grid;grid-template-columns:1fr auto;gap:4px 10px;padding:6px 0;border-top:1px solid var(--border)}.recipients-list li:first-child{border-top:0}.recipients-list .sub.error{grid-column:1 / -1;font-size:12px}.delivery{font-size:13px;color:var(--muted)}.delivery.sent{color:var(--success)}.delivery.failed,.delivery.blocked{color:var(--danger)}.events li{display:grid;grid-template-columns:120px 1fr;gap:10px;padding:6px 0;border-top:1px solid var(--border);font-size:14px}.events li:first-child{border-top:0}.events .when{color:var(--muted);font-size:12px;padding-top:2px}.events .sub{display:block;font-size:12px}.docs li{display:grid;grid-template-columns:1fr auto;gap:10px;padding:8px 0;border-top:1px solid var(--border);align-items:center}.doc-actions{display:flex;gap:6px}.doc-actions .btn{padding:5px 10px;font-size:13px}.doc-upload{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:12px}.doc-upload select,.doc-upload input[type=file]{padding:7px 9px;border:1px solid var(--border);border-radius:6px;background:var(--surface)}.docs li:first-child{border-top:0}.winner{border-color:#bfe3d8}.winner h4{margin:18px 0 6px;font-size:14px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0b2b3373;display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}.modal{width:100%;max-width:480px;margin:0;box-shadow:0 20px 50px #00000040}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:16px;flex-wrap:wrap}.tabs a{padding:8px 14px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}.tabs a:hover{color:var(--text)}.tabs a.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.toolbar{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-bottom:12px;flex-wrap:wrap}.toolbar input{padding:8px 10px;border:1px solid var(--border);border-radius:6px;min-width:260px}.toolbar input.invalid{border-color:var(--danger)}.toolbar .hint input[type=checkbox]{min-width:0}.card:has(>.table){overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;font-weight:500;color:var(--muted);font-size:12px;padding:4px 10px 8px;border-bottom:1px solid var(--border);white-space:nowrap}.table td{padding:8px 10px;border-top:1px solid var(--border);vertical-align:middle}.table tbody tr:first-child td{border-top:0}.table tr.inactive td{color:var(--muted)}.table tr.inactive td b{font-weight:500}.table td.nowrap{white-space:nowrap}.table td.mono{font-variant-numeric:tabular-nums}.table .row input{padding:5px 8px;border:1px solid var(--border);border-radius:6px}.actions-cell{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.btn.small{padding:4px 10px;font-size:13px}.copy-row{display:flex;gap:8px;margin:4px 0 8px}.copy-row input{flex:1;min-width:0;padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}.modal.wide{max-width:560px}.card.admin-bids{border-color:#f1c3bf}.table td.amount{font-variant-numeric:tabular-nums;white-space:nowrap}.table tr.accepted td.result{color:var(--success)}.table tr.rejected td.result{color:var(--danger)}.badge.stage{background:#e3f2fd;color:#0b5394}.payment-tasks{border-color:#cfe0f5}.table-wrap{overflow-x:auto}.main{min-width:0}.payment-tasks>.row.between{flex-wrap:wrap}.payment-tasks .lot-link:hover b{text-decoration:underline}.payment-tasks .sub{color:var(--muted);font-size:12px}.payment-tasks tr.overdue td{background:#fff5f4}.payment-tasks .overdue-count{color:var(--danger)}.due{display:inline-flex;flex-direction:column;line-height:1.25}.due small{font-size:12px;color:var(--success)}.due.soon small{color:#9a5b00}.due.overdue{color:var(--danger);font-weight:600}.due.overdue small{color:var(--danger);font-weight:400}.seg{display:inline-flex;border:1px solid var(--border);border-radius:6px;overflow:hidden}.seg button{border:0;background:var(--surface);padding:5px 12px;cursor:pointer;font-size:13px;color:var(--muted)}.seg button.active{background:var(--primary);color:var(--primary-contrast)}.period input[type=date]{padding:4px 8px;border:1px solid var(--border);border-radius:6px;font-size:13px}.btn.small.primary{background:var(--primary);color:var(--primary-contrast)}.delivery-block{border-color:#cfe0f5}.delivery-status{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px 16px;margin:6px 0 14px}.delivery-status .k{font-size:12px;color:var(--muted)}.delivery-status .v{font-weight:600}.missing-docs{list-style:none;margin:8px 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.missing-docs li{padding:3px 9px;border-radius:999px;font-size:12px;background:#fdecea;color:var(--danger)}.missing-docs li.ok{background:#e8f3f1;color:var(--primary)}.topbar{display:flex;justify-content:flex-end;align-items:center;margin:-8px 0 8px;min-height:32px}.bell{position:relative}.bell-btn{position:relative;border:1px solid var(--border);background:var(--surface);border-radius:999px;width:38px;height:38px;cursor:pointer;font-size:18px;line-height:1;display:inline-flex;align-items:center;justify-content:center}.bell-btn:hover,.bell-btn.open{border-color:var(--primary)}.bell-count{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--danger);color:#fff;font-size:11px;font-weight:600;display:inline-flex;align-items:center;justify-content:center}.bell-menu{position:absolute;right:0;top:44px;width:400px;max-width:calc(100vw - 48px);background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 16px 40px #0b2b332e;z-index:40;overflow:hidden}.bell-menu .bell-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid var(--border);font-weight:600}.bell-menu .bell-head .btn{padding:4px 10px;font-size:12px}.bell-menu .bell-foot{padding:8px 14px;border-top:1px solid var(--border);text-align:center;font-size:13px}.bell-menu .bell-foot a{color:var(--primary)}.notif-list{list-style:none;margin:0;padding:0;max-height:420px;overflow-y:auto}.notif-list li{border-top:1px solid var(--border)}.notif-list li:first-child{border-top:0}.notif{display:grid;grid-template-columns:28px 1fr;gap:2px 10px;padding:10px 14px;cursor:pointer}.notif:hover{background:var(--bg)}.notif.unread{background:#f0f7f6}.notif.unread .title{font-weight:600}.notif .icon{font-size:18px;line-height:1.2;grid-row:span 3}.notif .title{font-size:14px}.notif .body{font-size:13px;color:var(--muted);white-space:pre-wrap}.notif .when{font-size:12px;color:var(--muted)}.notif .when .tag{margin-left:6px}.notif-page .notif{padding:12px 16px}.notif-empty{padding:20px 14px;text-align:center;color:var(--muted);font-size:14px}.chat{border-color:#d9e4f2}.chat h3 .badge{margin-left:8px}.chat-tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--border);margin:0 0 10px}.chat-tabs button{border:0;background:none;padding:7px 10px;cursor:pointer;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;font-size:14px;display:inline-flex;gap:6px;align-items:center}.chat-tabs button:hover{color:var(--text)}.chat-tabs button.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.chat-tabs .count{background:var(--danger);color:#fff;border-radius:999px;font-size:11px;min-width:18px;height:18px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;font-weight:600}.chat-tabs .start{margin-left:auto;color:var(--primary)}.chat-log{display:flex;flex-direction:column;gap:8px;max-height:360px;overflow-y:auto;padding:4px 2px}.chat-msg{max-width:85%;padding:8px 12px;border-radius:12px;font-size:14px;white-space:pre-wrap;word-break:break-word}.chat-msg.carrier{align-self:flex-start;background:#eef1f4;border-bottom-left-radius:4px}.chat-msg.logist{align-self:flex-end;background:#e3f2ef;border-bottom-right-radius:4px}.chat-msg.unread{outline:2px solid rgba(180,35,24,.25)}.chat-msg .meta{display:block;font-size:11px;color:var(--muted);margin-top:4px}.chat-msg .meta .warn{color:#9a5b00}.chat-form{display:flex;gap:8px;align-items:flex-end;margin-top:10px}.chat-form textarea{flex:1;min-height:44px;max-height:160px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;resize:vertical}.chat-form textarea:focus{outline:2px solid rgba(15,118,110,.35);outline-offset:0;border-color:var(--primary)}.chat-start{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:6px 0 10px}.chat-start select{padding:7px 9px;border:1px solid var(--border);border-radius:6px;background:var(--surface)}.chat-closed{font-size:13px;color:var(--muted);margin:8px 0 0}.table td.chat-last{max-width:420px}.table td.chat-last .text{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table tr.has-unread td{background:#fff8f0}
