:root{
  --bg:#14171a; --panel:#1c2125; --panel-2:#242a2f; --line:#31383e;
  --text:#eef1f3; --muted:#8b95a1;
  --orange:#ff7a1a;
  --green:#33c46a; --green-dim:#173322;
  --red:#ef4444; --red-dim:#3a1414;
  --amber:#f5c344; --amber-dim:#3a2f10;
  --blocked:#9aa4b2; --blocked-dim:#2a2f36;
}
*{box-sizing:border-box;}
body{margin:0;background:var(--bg);color:var(--text);font-family:'Inter',sans-serif;min-height:100vh;}
.wrap{max-width:1100px;margin:0 auto;padding:20px 16px 60px;}

.topbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-bottom:16px;margin-bottom:20px;border-bottom:3px solid var(--orange);}
.brand{display:flex;align-items:center;gap:12px;}
.brand .mark{width:80px;height:80px;border-radius:8px;background:#000;object-fit:cover;flex-shrink:0;}
.brand h1{font-family:'Oswald',sans-serif;font-weight:600;font-size:22px;letter-spacing:0.5px;margin:0;text-transform:uppercase;}
.brand span{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--muted);font-weight:400;font-family:'Inter',sans-serif;text-transform:none;}
.cirno{width:18px;height:18px;object-fit:contain;vertical-align:middle;}
.topbar-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}

button{font-family:'Inter',sans-serif;font-weight:600;font-size:13px;border:none;border-radius:6px;padding:10px 14px;cursor:pointer;transition:transform .08s ease, background .15s ease;}
button:active{transform:scale(0.97);}
.btn-primary{background:var(--orange);color:#191100;}
.btn-primary:hover{background:#ff8b3a;}
.btn-ghost{background:var(--panel-2);color:var(--text);border:1px solid var(--line);}
.btn-ghost:hover{border-color:var(--orange);}
.btn-sm{padding:6px 10px;font-size:12px;border-radius:5px;}
.btn-xs{padding:4px 8px;font-size:11px;border-radius:5px;}
.btn-danger{background:var(--red-dim);color:#ff9d9d;border:1px solid #5c2323;}
.btn-green{background:var(--green-dim);color:#8ff0b2;border:1px solid #1f5c37;}
.btn-blocked{background:var(--blocked-dim);color:var(--blocked);border:1px solid #454e58;}
.btn-auto{background:var(--panel-2);color:var(--muted);border:1px solid var(--line);}
.btn-auto.on{background:#17334a;color:#9edcff;border-color:#2e7faf;}
.lunch-set{background:var(--green-dim);color:#8ff0b2;border-color:#1f5c37;}
button:disabled{opacity:0.3;cursor:not-allowed;}
.link-btn{background:none;color:var(--muted);text-decoration:underline;padding:2px 0;font-size:12px;font-weight:500;}

.config-row{display:flex;align-items:center;gap:10px;margin-bottom:18px;color:var(--muted);font-size:13px;flex-wrap:wrap;}
.stepper{display:flex;align-items:center;border:1px solid var(--line);border-radius:6px;overflow:hidden;}
.stepper button{background:var(--panel-2);border-radius:0;padding:6px 12px;font-size:16px;color:var(--text);}
.stepper .val{padding:6px 16px;font-family:'Oswald',sans-serif;font-size:16px;background:var(--panel);min-width:30px;text-align:center;}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;margin-bottom:28px;}
.dock{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px;position:relative;overflow:visible;}
.dock:hover{z-index:2;}
.dock.free{border-color:#1f5c37;}
.dock.occupied{border-color:#5c2323;}
.dock.blocked{border-color:#454e58;}
.dock-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:6px;}
.dock-num{font-family:'Oswald',sans-serif;font-size:36px;font-weight:700;line-height:1;}
.light{width:14px;height:14px;border-radius:50%;margin-top:6px;flex-shrink:0;}
.light.free{background:var(--green);box-shadow:0 0 10px 2px rgba(51,196,106,0.6);}
.light.occupied{background:var(--red);box-shadow:0 0 10px 2px rgba(239,68,68,0.55);}
.light.blocked{background:var(--blocked);box-shadow:0 0 8px 1px rgba(154,164,178,0.5);}
.dock-status{font-size:11px;text-transform:uppercase;letter-spacing:0.6px;font-weight:600;margin-bottom:6px;}
.dock-status.free{color:var(--green);}
.dock-status.occupied{color:#ff9d9d;}
.dock-status.blocked{color:var(--blocked);}
.dock-note{font-size:12px;color:var(--amber);background:var(--amber-dim);border-radius:5px;padding:4px 7px;margin-bottom:8px;font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;}
.dock-driver{font-size:14px;font-weight:600;margin-bottom:2px;word-break:break-word;}
.dock-meta{font-size:12px;color:var(--muted);margin-bottom:8px;font-family:'IBM Plex Mono',monospace;}
.dock-phone{font-size:11px;color:var(--muted);margin-bottom:8px;}
.dock-drivernote{font-size:12px;color:#ffb0b0;font-style:italic;margin-bottom:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;}
.note-overlay{position:fixed;inset:0;z-index:100;background:rgba(10,12,14,.75);display:flex;align-items:center;justify-content:center;padding:20px}.note-modal{max-width:440px;width:100%;max-height:70vh;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--panel);border:1px solid var(--amber);border-radius:12px;padding:20px;color:var(--text);line-height:1.45;box-shadow:0 12px 32px rgba(0,0,0,.5)}
.dock-actions{display:flex;gap:5px;flex-wrap:wrap;}

.panel-title{font-family:'Oswald',sans-serif;text-transform:uppercase;font-size:15px;letter-spacing:0.6px;color:var(--muted);margin:0 0 12px;display:flex;align-items:center;gap:8px;}
.panel-title .count{background:var(--amber-dim);color:var(--amber);border-radius:20px;padding:1px 9px;font-size:12px;font-family:'Inter',sans-serif;}
.queue-list{display:flex;flex-direction:column;gap:8px;margin-bottom:30px;}
.qrow{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px 14px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.qrow .pos{font-family:'Oswald',sans-serif;font-size:20px;color:var(--amber);width:26px;flex-shrink:0;}
.qrow .info{flex:1;min-width:140px;}
.qrow .name{font-weight:600;font-size:14px;}
.qrow .sub{font-size:12px;color:var(--muted);font-family:'IBM Plex Mono',monospace;}
.qrow .note{font-size:12px;color:var(--amber);font-style:italic;margin-top:2px;white-space:pre-wrap;overflow-wrap:anywhere;}
.qrow .actions{display:flex;gap:6px;flex-wrap:wrap;}
.quick-docks{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;}
.empty{color:var(--muted);font-size:13px;padding:14px;background:var(--panel);border:1px dashed var(--line);border-radius:8px;text-align:center;}

select{background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:5px;padding:6px 8px;font-family:'Inter',sans-serif;font-size:12px;}

.overlay{position:fixed;inset:0;background:rgba(10,12,14,0.8);display:flex;align-items:center;justify-content:center;z-index:50;padding:20px;}
.modal{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:24px;max-width:380px;width:100%;text-align:center;}
.modal h3{font-family:'Oswald',sans-serif;text-transform:uppercase;margin:0 0 6px;}
.modal p{color:var(--muted);font-size:13px;margin:0 0 16px;}
.modal input{width:100%;padding:10px 12px;margin:0 0 14px;border-radius:6px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);font:14px 'Inter',sans-serif;}
#qrbox{background:#fff;padding:14px;border-radius:8px;display:inline-block;margin-bottom:14px;}
.modal-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;}
.add-truck-modal{text-align:left;max-width:420px;}.add-truck-modal h3{text-align:center;}.add-truck-modal label{display:block;font-size:12px;color:var(--muted);margin:10px 0 4px;}.add-truck-modal label b{color:var(--orange);}.add-truck-modal label span{font-size:11px;}.add-truck-modal input,.add-truck-modal textarea{width:100%;margin-top:4px;padding:10px 12px;border-radius:6px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);font:14px 'Inter',sans-serif;}.add-truck-modal textarea{min-height:64px;resize:vertical;}
.mode-toggle,.driver-mode{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:4px 0 10px;}.mode-toggle button,.driver-mode button{border:1px solid var(--line);background:var(--panel-2);color:var(--muted);}.mode-toggle .delivery.active,.driver-mode .delivery.active{background:#4b1d31;border-color:#e06b9b;color:#ffd0e2;}.mode-toggle .pickup.active,.driver-mode .pickup.active{background:#17334a;border-color:#4ba9dc;color:#cef0ff;}.logout-modal h2{font-family:'Oswald',sans-serif;color:#ff9d9d;font-size:34px;margin:0 0 10px;}
.driver-shipment-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:start;}.driver-shipment-row .driver-mode{margin:0;}.driver-shipment-row input{margin-bottom:10px;}
.driver-reference{display:flex;align-items:center;gap:0;}.driver-reference span{background:var(--panel-2);border:1px solid var(--line);border-right:0;border-radius:6px 0 0 6px;padding:10px 0 10px 12px;margin-bottom:10px;color:var(--text);font-family:'Inter',sans-serif;}.driver-reference input{border-radius:0 6px 6px 0!important;padding-left:4px!important;}

.driver-wrap{max-width:480px;margin:0 auto;padding:40px 20px;text-align:center;}
.driver-wrap h2{font-family:'Oswald',sans-serif;text-transform:uppercase;font-size:22px;margin-bottom:4px;}
.driver-wrap .sub{color:var(--muted);font-size:13px;margin-bottom:26px;}
.ticket{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:30px 20px;margin-bottom:20px;}
.ticket .big{font-family:'Oswald',sans-serif;font-size:60px;font-weight:700;line-height:1;color:var(--orange);}
.ticket .label{color:var(--muted);font-size:13px;text-transform:uppercase;letter-spacing:0.6px;margin-top:6px;}
.assigned-dock{display:inline-block;background:#17334a;color:#cef0ff;border:1px solid #2e7faf;border-radius:7px;padding:8px 12px;margin:0 0 14px;font-weight:700;}
.ticket input{width:100%;padding:10px 12px;margin-bottom:10px;border-radius:6px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);font-size:14px;font-family:'Inter',sans-serif;}
.ticket input.input-error{border-color:var(--red);box-shadow:0 0 0 2px rgba(239,68,68,.2);}
.msg-banner{background:var(--amber-dim);border:1px solid var(--amber);color:var(--amber);border-radius:10px;padding:16px;margin-bottom:20px;text-align:left;}
.msg-banner .from{font-size:11px;text-transform:uppercase;letter-spacing:0.5px;opacity:0.8;margin-bottom:4px;}
.msg-banner .txt{font-size:15px;font-weight:600;margin-bottom:10px;}
.lang-row{text-align:right;margin-bottom:-10px}.language-picker{font-size:12px;padding:6px 8px}.messages{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:20px;text-align:left}.messages .from{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin:0 0 8px}.message-bubble,.chat-bubble{background:var(--amber-dim);border:1px solid #74590e;color:#ffe29a;border-radius:10px 10px 10px 2px;padding:10px 12px;margin-top:7px;font-size:14px;line-height:1.35}.chat-modal{text-align:left;max-width:460px}.chat-history{max-height:280px;overflow:auto;margin:12px 0}.chat-modal textarea{width:100%;min-height:76px;resize:vertical;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;color:var(--text);padding:10px;font:14px 'Inter',sans-serif}.chat-message{position:relative;padding-right:52px}.chat-delete{position:absolute;right:0;top:8px;color:#ff9d9d;font-size:11px}
.mini-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(50px,1fr));gap:6px;margin-top:22px;}
.mini-dock{border-radius:6px;padding:8px 4px;font-family:'Oswald',sans-serif;font-size:16px;font-weight:600;border:1px solid var(--line);}
.mini-dock.free{background:var(--green-dim);color:var(--green);border-color:#1f5c37;}
.mini-dock.occupied{background:var(--red-dim);color:#ff9d9d;border-color:#5c2323;}
.mini-dock.blocked{background:var(--blocked-dim);color:var(--blocked);border-color:#454e58;}

.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--panel-2);border:1px solid var(--orange);color:var(--text);padding:10px 18px;border-radius:8px;font-size:13px;z-index:100;opacity:0;transition:opacity .25s;pointer-events:none;max-width:90vw;text-align:center;}
.toast.show{opacity:1;}

.login-wrap{max-width:340px;margin:80px auto;text-align:center;}
.login-wrap h2{font-family:'Oswald',sans-serif;text-transform:uppercase;margin-bottom:6px;}
.login-wrap .sub{color:var(--muted);font-size:13px;margin-bottom:20px;}
.login-wrap input{width:100%;padding:12px;margin-bottom:10px;border-radius:6px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);font-size:16px;text-align:center;letter-spacing:3px;font-family:'IBM Plex Mono',monospace;}

@media (max-width:520px){ .dock-num{font-size:28px;} .brand h1{font-size:18px;} }
