:root{--ink: #1d1d1f;--muted: #6e6e73;--line: #d2d2d7;--line-soft: #e5e5ea;--bg: #f5f5f7;--primary: #007AFF;--primary-hover: #0066d6;--danger: #ff3b30;--warn: #ff9500;--success: #34c759}*{box-sizing:border-box}html,body{overflow-x:clip}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,Helvetica Neue,Inter,system-ui,Segoe UI,Roboto,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--ink);background:var(--bg);font-size:clamp(13px,.25vw + 12px,15px);font-weight:400;letter-spacing:-.01em;overflow-wrap:break-word;word-break:break-word}img,video,canvas,svg{max-width:100%;height:auto}a{color:inherit}.app{display:grid;grid-template-columns:clamp(170px,14vw + 60px,220px) 1fr;min-height:100vh}.sidebar{background:#0f1115;color:#fff;padding:16px 12px;position:sticky;top:0;align-self:start;height:100vh;overflow-y:auto}.sidebar h1{font-size:22px;margin:0 0 18px;line-height:1;font-weight:700;letter-spacing:-.02em}.sidebar nav a{display:block;padding:9px 10px;text-decoration:none;color:#cfd3da;border-radius:8px}.sidebar nav a.active{background:#1d2230;color:#fff}.sidebar .me{margin-top:auto;font-size:12px;color:#94a3b8;padding:12px 10px}.main{padding:18px clamp(12px,1.5vw,24px)}.hamburger{display:none;position:fixed;top:10px;left:10px;z-index:30;width:42px;height:42px;padding:0;border-radius:8px;background:#0f1115;color:#fff;border:1px solid #1d2230;font-size:20px;line-height:1;cursor:pointer}.drawer-backdrop{display:none}.topbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.muted{color:var(--muted);font-size:12px}input,select,textarea{padding:7px 10px;border:1px solid var(--line);border-radius:7px;font-size:14px;font-family:inherit;background:#fff;color:var(--ink);transition:border-color .15s ease,box-shadow .15s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #007aff2e}input::placeholder,textarea::placeholder{color:#a1a1a6}button{cursor:pointer;padding:6px 14px;border:1px solid var(--line);border-radius:7px;font-size:13px;font-family:inherit;font-weight:500;color:var(--ink);background:linear-gradient(180deg,#fff,#f5f5f7);box-shadow:0 1px #0000000a,0 1px 2px #0000000a;transition:background .12s ease,border-color .12s ease,transform .08s ease,box-shadow .12s ease}button:hover{background:linear-gradient(180deg,#fafafa,#ececef)}button:active{transform:translateY(1px);box-shadow:0 0 #0000}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 1px 2px #007aff40}button.primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}button.danger{background:#fff;border-color:#f5b7b3;color:var(--danger)}button.danger:hover{background:#fff5f4;border-color:#f08580}button.warn{background:#fff;border-color:#ffd591;color:var(--warn)}button.warn:hover{background:#fff8ef}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.grid{display:grid;gap:8px;grid-template-columns:repeat(6,1fr)}.grid .full{grid-column:1 / -1}table input,table select,table textarea{padding:4px 7px;font-size:12.5px;border-radius:5px}table button{padding:4px 9px;font-size:12px;font-weight:500;border-radius:5px;min-height:0}table{width:100%;border-collapse:collapse;margin-top:12px}th,td{border-bottom:1px solid var(--line);padding:8px;text-align:left;vertical-align:top}th{background:var(--bg);position:sticky;top:0;z-index:1}.table-wrap{width:100%;overflow-x:auto}.table-wrap table{table-layout:fixed}.shipments-grid,.contacts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px;margin-top:8px}.settings-grid{display:flex;flex-direction:column;gap:12px;margin-top:8px;margin-bottom:12px}.settings-grid .card{min-width:0}.ship-card{background:#fff;border:1px solid var(--line-soft);border-left:4px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:5px;min-width:0;height:260px;overflow:hidden;cursor:pointer;box-shadow:0 1px 2px #0000000a,0 1px 3px #0000000f;transition:box-shadow .15s ease,border-color .15s ease,transform .1s ease}.ship-card .sc-meta{flex:1 1 auto;overflow:hidden}.ship-card:hover{box-shadow:0 6px 18px #00000014,0 2px 6px #0000000d;transform:translateY(-1px)}.ship-card:active{transform:translateY(0)}.ship-card:focus-visible{outline:3px solid rgba(0,122,255,.3);outline-offset:2px}.ship-card.status-CREATED{background:#fafafa;border-left-color:#c7c7cc}.ship-card.status-PREPARED{background:#f0f9ff;border-left-color:#5ac8fa}.ship-card.status-SHIPPED{background:#fff8ec;border-left-color:#ff9500}.ship-card.status-DELIVERED{background:#f0fdf4;border-left-color:#34c759}.ship-card .sc-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.ship-card .sc-id{font-weight:700;font-size:14px;background:none;border:none;padding:0;cursor:pointer;color:#1f3a5f;text-align:left;min-height:0}.ship-card .sc-id:hover{text-decoration:underline}.ship-card .sc-meta{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;font-size:12px;line-height:1.3;margin:0}.ship-card .sc-meta dt{color:var(--muted);font-weight:500;margin:0}.ship-card .sc-meta dd{margin:0;min-width:0;word-break:break-word}.ship-card .sc-awb{font-size:11px;color:var(--muted);word-break:break-all}.ship-card .sc-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center;border-top:1px dashed var(--line);padding-top:6px;margin-top:auto}.ship-card .sc-actions .right{margin-left:auto}.ship-card .sc-status-row{display:flex;gap:6px;align-items:center}.ship-card .sc-status-row select{flex:1 1 auto;min-width:0}.contact-card{background:#fff;border:1px solid var(--line-soft);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;min-width:0;height:200px;overflow:hidden;cursor:pointer;box-shadow:0 1px 2px #0000000a,0 1px 3px #0000000f;transition:box-shadow .15s ease,border-color .15s ease,transform .1s ease}.contact-card:hover{box-shadow:0 6px 18px #00000014,0 2px 6px #0000000d;transform:translateY(-1px)}.contact-card:active{transform:translateY(0)}.contact-card:focus-visible{outline:3px solid rgba(0,122,255,.3);outline-offset:2px}.contact-card .cc-name{font-weight:700;font-size:15px;letter-spacing:-.01em;word-break:break-word}.contact-card .cc-contact{display:flex;flex-direction:column;gap:2px;font-size:13px}.contact-card .cc-contact .cc-cp{color:var(--ink)}.contact-card .cc-contact a{color:var(--primary);text-decoration:none;word-break:break-all}.contact-card .cc-contact a:hover{text-decoration:underline}.contact-card .cc-row{font-size:12.5px;color:var(--muted);line-height:1.4;word-break:break-word}.contact-card .cc-actions{display:flex;gap:6px;align-items:center;margin-top:auto;border-top:1px dashed var(--line-soft);padding-top:8px}.contact-card .cc-actions .right{margin-left:auto}.clients-tbl{table-layout:fixed}.clients-tbl th,.clients-tbl td{font-size:13px;padding:8px}.clients-tbl a{word-break:break-all}.users-tbl{table-layout:fixed}.users-tbl th,.users-tbl td{font-size:12px;padding:6px 8px;word-break:break-word;line-height:1.35}.users-tbl select,.users-tbl button{font-size:12px;padding:2px 6px}.items-tbl{table-layout:fixed;font-size:12px}.items-tbl th,.items-tbl td{padding:4px 5px;vertical-align:middle}.items-tbl input{width:100%;box-sizing:border-box;padding:3px 5px;font-size:12px}.items-tbl .actions{display:flex;gap:3px;justify-content:flex-end}.items-tbl .actions button{padding:2px 6px;font-size:13px;line-height:1;min-width:26px;background:#fff;border:1px solid var(--line);border-radius:4px;cursor:pointer}.items-tbl .actions button.danger{color:#c33;border-color:#e8b6b6}.items-tbl .actions button:hover{background:#f4f4f4}.items-tbl .totals{font-weight:600;background:#f8f8f8}.items-tbl .totals td{font-size:12.5px}.items-tbl .status-pill{display:inline-block;font-size:10.5px;font-weight:600;padding:2px 6px;border-radius:10px;line-height:1.2;background:#f0f0f0;color:#333;white-space:nowrap;border:none}.items-tbl .status-pill.cipl-link{cursor:pointer;color:#0a3300}.items-tbl .status-pill.cipl-link:hover{filter:brightness(.92);text-decoration:underline}.main-topbar{margin-bottom:8px;display:flex;gap:8px;align-items:center}.ship-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:500;display:flex;justify-content:center;align-items:center;padding:16px}.ship-dialog{background:#fff;border-radius:12px;padding:22px 24px;width:100%;max-width:460px;box-shadow:0 16px 40px #00000040}.ship-dialog input{padding:6px 8px}.bell-wrap{position:relative}.bell-btn{background:#fff;border:1px solid var(--line);border-radius:8px;padding:4px 10px;cursor:pointer;font-size:18px;position:relative}.bell-btn:hover{background:#f4f8fd}.bell-badge{position:absolute;top:-4px;right:-4px;background:#e53e3e;color:#fff;font-size:10px;font-weight:700;padding:1px 5px;border-radius:10px;min-width:16px;text-align:center;line-height:1.2}.bell-pop{position:absolute;right:0;top:calc(100% + 6px);width:360px;max-height:70vh;overflow-y:auto;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 32px #00000026;z-index:200}.bell-head{padding:10px 14px;font-weight:600;border-bottom:1px solid var(--line);font-size:13px}.bell-row{display:block;width:100%;text-align:left;padding:10px 14px;background:transparent;border:none;border-bottom:1px solid #f0f0f0;cursor:pointer;font-size:12px}.bell-row:hover{background:#f6f9fc}.bell-row.unread{background:#fffaeb}.bell-row.unread:hover{background:#fff3d6}.bell-row-title{font-weight:600;color:#1f3a5f;margin-bottom:2px}.bell-row-body{color:#555;margin-bottom:4px}.bell-row-time{font-size:10px;color:#999}.global-search-btn{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;background:linear-gradient(180deg,#fff,#f5f5f7);border:1px solid var(--line);border-radius:8px;cursor:pointer;min-width:240px;color:var(--muted);font-size:13px;box-shadow:0 1px 2px #0000000a;transition:background .12s ease,border-color .12s ease}.global-search-btn:hover{border-color:#b8b8c0}.global-search-btn .kbd{margin-left:auto;padding:1px 5px;border:1px solid var(--line);border-radius:3px;font-size:10px;background:#f8f8f8}.global-search-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;justify-content:center;align-items:flex-start;padding-top:80px;z-index:1000}.global-search-modal{width:90%;max-width:640px;background:#fff;border-radius:12px;box-shadow:0 20px 60px #00000040;overflow:hidden}.global-search-input{width:100%;box-sizing:border-box;padding:14px 18px;font-size:16px;border:none;border-bottom:1px solid var(--line);outline:none}.global-search-results{max-height:60vh;overflow-y:auto}.gs-group{border-bottom:1px solid #f0f0f0;padding:6px 0}.gs-group:last-child{border-bottom:none}.gs-title{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);padding:6px 18px;font-weight:600}.gs-group button{display:block;width:100%;text-align:left;padding:8px 18px;background:transparent;border:none;cursor:pointer;font-size:13px;border-left:3px solid transparent}.gs-group button:hover{background:#f6f9fc;border-left-color:#1f3a5f}@media (max-width: 768px){.items-tbl,.items-tbl thead,.items-tbl tbody,.items-tbl tfoot,.items-tbl tr,.items-tbl td,.items-tbl th{display:block}.items-tbl colgroup,.items-tbl col,.items-tbl thead{display:none}.items-tbl tbody tr{border:1px solid var(--line);border-radius:8px;padding:8px;margin-bottom:8px;background:#fff}.items-tbl tbody tr.row-selected{background:#fdf6e3}.items-tbl td{border:none;padding:4px 0;display:grid;grid-template-columns:100px 1fr;align-items:center;gap:8px}.items-tbl td:before{content:attr(data-label);font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.3px}.items-tbl td input{width:100%}.items-tbl tfoot tr{background:#f8f8f8;border:1px solid var(--line);border-radius:8px;padding:8px}.items-tbl tfoot td{padding:4px 0}}.items-tbl .row-selected{background:#fdf6e3}.items-tbl .row-selected:hover{background:#faecd0}.items-tbl input[type=checkbox]{width:auto;cursor:pointer}.bulk-bar{background:#fff8e0;padding:6px 10px;border-radius:6px;border:1px solid #f0d990}.bulk-bar>*{margin-right:4px}.items-tbl .cipl-cell{display:inline-flex;gap:3px;align-items:center}.items-tbl .cipl-regen{font-size:12px;padding:2px 5px;line-height:1;background:#fff;border:1px solid var(--line);border-radius:4px;cursor:pointer;color:#555}.items-tbl .cipl-regen:hover{background:#f4f4f4;color:#1f3a5f}.items-tbl .cipl-regen.danger{color:#c33;border-color:#e8b6b6}.items-tbl .cipl-regen.danger:hover{background:#fbeeee;color:#a00}.contact-cell{display:flex;flex-direction:column;gap:2px;min-width:0}.contact-cell>div{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.3}.contact-cell .cp{font-weight:600;color:var(--ink)}.contact-cell .em a{color:#2563eb;text-decoration:none}.contact-cell .em a:hover{text-decoration:underline}.contact-cell .ph{color:var(--muted)}.ship-top{display:grid;grid-template-columns:1fr 320px;gap:12px;align-items:start;margin-bottom:12px}.ship-top-main{min-width:0;display:flex;flex-direction:column;gap:8px}.ship-top-side{display:flex;flex-direction:column;gap:12px;min-width:0}.notes-card textarea,.description-card textarea{width:100%;resize:vertical;font-family:inherit;font-size:13px;padding:8px;border:1px solid var(--line);border-radius:8px}.notes-card textarea{min-height:150px}.description-card textarea{min-height:120px}@media (max-width: 1100px){.ship-top{grid-template-columns:1fr}}.track-wrap{padding:22px 18px 26px;background:#fff;border:1px solid var(--line-soft);border-radius:12px;margin-bottom:0;overflow:visible;box-shadow:0 1px 2px #0000000a,0 1px 3px #0000000d}.track-bar{position:relative;height:4px;background:#e5e7eb;border-radius:4px;margin:0 4px}.track-filled{position:absolute;height:100%;background:linear-gradient(90deg,#1f3a5f,#f97316);border-radius:4px;transition:width .4s ease}.track-step{position:absolute;top:-8px;transform:translate(-50%)}.track-step .track-dot{width:20px;height:20px;border-radius:50%;background:#cbd5e1;border:2px solid #fff;color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 1px #cbd5e1;transition:background .3s}.track-step.done .track-dot{background:#1f3a5f;box-shadow:0 0 0 1px #1f3a5f}.track-step .track-label{position:absolute;top:26px;left:50%;transform:translate(-50%);font-size:11px;white-space:nowrap;color:#555}.track-step .track-label.current{font-weight:700;color:#111}.track-truck{position:absolute;top:-34px;transform:translate(-50%) scaleX(-1);font-size:22px;line-height:1;transition:left .5s ease;filter:drop-shadow(0 1px 1px rgba(0,0,0,.2))}@media (max-width: 600px){.track-step .track-label{font-size:9px}.track-truck{font-size:18px}.track-wrap{padding:26px 12px 32px}}.ac-wrap{position:relative}.ac-wrap input{width:100%}.ac-list{position:absolute;top:calc(100% + 2px);left:0;right:0;z-index:50;background:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 8px 24px #00000014;max-height:280px;overflow-y:auto}.ac-item{display:block;width:100%;text-align:left;padding:8px 10px;border:none;background:transparent;border-radius:0;cursor:pointer;min-height:auto}.ac-item:hover{background:#f5f7fa}.ac-item .ac-label{font-size:13px;font-weight:600;color:var(--ink)}.ac-item .ac-desc{font-size:11px;margin-top:2px}.clip3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word;font-size:13px;line-height:1.35}td.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qr-sm{width:70px;height:70px;object-fit:contain;border:1px solid #eee;border-radius:6px}.qr-xs{width:55px;height:55px;object-fit:contain;border:1px solid #eee;border-radius:6px}.qr{width:88px;height:88px;object-fit:contain;border:1px solid #eee;border-radius:8px}.kpi{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.kpi.compact{gap:8px;margin-bottom:8px}.kpi.compact .kpi-card{padding:10px 12px;position:relative;border-left:4px solid var(--line)}.kpi.compact .kpi-card h3{font-size:11px;margin:0 0 2px;text-transform:uppercase;letter-spacing:.04em}.kpi.compact .kpi-card .v{font-size:22px;letter-spacing:-.02em}.kpi-card.kpi-blue{border-left-color:#007aff}.kpi-card.kpi-purple{border-left-color:#5856d6}.kpi-card.kpi-teal{border-left-color:#5ac8fa}.kpi-card.kpi-green{border-left-color:#34c759}.card{background:#fff;border:1px solid var(--line-soft);border-radius:12px;padding:14px;box-shadow:0 1px 2px #0000000a,0 1px 3px #0000000d}.card h3{margin:0 0 6px;font-size:13px;color:var(--muted);font-weight:500}.card .v{font-size:24px;font-weight:600;letter-spacing:-.02em}.dash{display:flex;flex-direction:column;gap:8px;min-width:0}.dash-topbar{margin-bottom:4px}.dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;min-width:0}.dash-grid>.card{padding:10px;min-width:0;overflow:hidden}.dash-grid>.card h3{margin-bottom:4px}.dash .chart-h{height:160px}.dash text{font-size:10px}.recent-list{display:flex;flex-direction:column;gap:4px}.recent-item{display:flex;gap:8px;align-items:baseline;padding:5px 8px;border:1px solid var(--line);border-radius:8px;text-decoration:none;color:inherit;font-size:12px}.recent-item:hover{background:#fafafa}.recent-item .ri-id{flex:0 0 90px;font-size:12px}.recent-item .ri-client{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-item .ri-meta{display:flex;gap:6px;align-items:baseline;flex:0 0 auto}.recent-item .ri-st{font-size:11px;padding:1px 6px;border-radius:999px;background:#f3f4f6}.error{background:#fff3f3;border:1px solid #ffd6d6;color:var(--danger);padding:10px;border-radius:8px}.notice{background:#fffbe6;border:1px solid #ffe58f;padding:10px;border-radius:8px}.right{margin-left:auto}.tag{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11.5px;font-weight:500;letter-spacing:.01em;border:1px solid transparent}.tag.pending{background:#f2f2f7;color:#3a3a3c;border-color:#d2d2d7}.tag.folder{background:#e3f4fd;color:#006fb8;border-color:#b8e1f7}.tag.accepted{background:#fff1d6;color:#b25500;border-color:#ffd591}.tag.shipped{background:#d8f5dd;color:#186a32;border-color:#a8e8b8}@media (max-width: 1100px){.grid{grid-template-columns:repeat(3,1fr)}.kpi{grid-template-columns:1fr 1fr}}@media (max-width: 1024px){.app{grid-template-columns:1fr}.main{padding:60px 12px 16px}.sidebar{position:fixed;left:0;top:0;bottom:0;width:78%;max-width:300px;z-index:25;transform:translate(-100%);transition:transform .25s ease;display:flex;flex-direction:column;overflow-y:auto;box-shadow:2px 0 12px #0003}.sidebar.open{transform:translate(0)}.sidebar h1{font-size:18px;margin:30px 0 18px}.sidebar nav a{padding:12px;font-size:15px}.sidebar .me{display:block;margin-top:auto}.hamburger{display:block}.app.menu-open .drawer-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:#00000073}.table-wrap{-webkit-overflow-scrolling:touch;max-width:100%}}@media (max-width: 800px){.grid{grid-template-columns:1fr}.kpi{grid-template-columns:1fr 1fr}input,select,button,textarea{padding:10px;font-size:16px;min-height:40px}.topbar h2{font-size:18px}.topbar{gap:6px}.card{padding:12px}.row{gap:6px}.card .v{font-size:20px}.dash-grid{grid-template-columns:1fr}.dash .chart-h{height:180px}.global-search-btn{min-width:0;width:100%}.contact-cell{min-width:0}input[style*=min-width],input[style*=minWidth]{min-width:0!important}.card[style*=min-width]{min-width:0!important;max-width:100%}pre{max-width:100%!important;white-space:pre-wrap;word-break:break-word}.ship-dialog{max-width:100%}.bell-pop{width:calc(100vw - 24px);max-width:360px}}@media (max-width: 1024px){.table-wrap{overflow-x:visible}table.responsive-cards{min-width:0;width:100%;display:block;table-layout:auto}table.responsive-cards thead{display:none}table.responsive-cards tbody{display:block}table.responsive-cards tr{display:block;border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin-bottom:10px;background:#fff}table.responsive-cards td{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:6px 0;border:none;border-bottom:1px solid #f0f0f0;text-align:left;word-break:break-word}table.responsive-cards td:last-child{border-bottom:none}table.responsive-cards td:before{content:attr(data-label);flex:0 0 38%;color:var(--muted);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}table.responsive-cards td:not([data-label]):before,table.responsive-cards td[data-label=""]:before{content:none}table.responsive-cards td>*{max-width:100%}table.responsive-cards td .clip3,table.responsive-cards td .ellipsis{-webkit-line-clamp:unset;overflow:visible;white-space:normal;text-overflow:clip}}@media (max-width: 380px){.kpi{grid-template-columns:1fr}}
