:root { --ink:#182330; --muted:#637085; --line:#dce3ec; --surface:#fff; --page:#f4f7fb; --primary:#1767a7; --primary-dark:#0d4e85; --success:#277a4b; --warning:#af6d10; --danger:#b83737; --radius:14px; }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
body { margin:0; color:var(--ink); background:var(--page); font:15px/1.45 Inter,Segoe UI,Arial,sans-serif; }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; border:0; border-radius:9px; padding:10px 15px; font-weight:650; }
button:disabled { cursor:not-allowed; opacity:.5; }
label { color:#425069; display:grid; gap:6px; font-size:13px; font-weight:650; }
input,select,textarea { width:100%; color:var(--ink); background:white; border:1px solid #cbd6e2; border-radius:8px; min-height:39px; padding:8px 10px; }
textarea { min-height:92px; resize:vertical; }
input:focus,select:focus,textarea:focus { border-color:var(--primary); box-shadow:0 0 0 3px #1767a722; outline:0; }
h1,h2,h3,p { margin:0; } h1 { font-size:28px; line-height:1.15; } h2 { font-size:25px; } h3 { font-size:18px; }
.muted { color:var(--muted); } .eyebrow { color:var(--primary); font-size:11px; font-weight:800; letter-spacing:.09em; }
.primary { color:white; background:var(--primary); } .primary:hover { background:var(--primary-dark); }
.secondary { color:#155b95; background:#e6f1fa; } .secondary:hover { background:#d8eafa; }
.ghost { color:#476078; background:transparent; padding:7px; }.ghost:hover { color:var(--primary); background:#edf3f8; }
.stack { display:grid; gap:16px; }.login-shell { display:grid; min-height:100vh; place-items:center; padding:24px; background:linear-gradient(120deg,#0e527f,#1f7eb6 52%,#e7f3fb); }
.login-card { width:min(100%,450px); display:grid; gap:17px; padding:35px; background:#fff; border-radius:20px; box-shadow:0 20px 50px #123b5955; }.login-card .muted { margin-top:-7px; }.test-accounts { color:var(--muted); font-size:13px; }.test-accounts p { padding-top:4px; }.error { color:var(--danger); min-height:20px; }
.topbar { height:64px; display:flex; align-items:center; justify-content:space-between; padding:0 28px; background:#fff; border-bottom:1px solid var(--line); }.brand { display:flex; align-items:center; gap:10px; font-size:18px; }.brand span { display:grid; place-items:center; width:30px; height:30px; color:white; background:var(--primary); border-radius:7px; font-size:12px; font-weight:800; }.user-menu { display:flex; align-items:center; gap:12px; color:var(--muted); }
.app-shell { display:grid; grid-template-columns:220px minmax(0,1fr); min-height:calc(100vh - 64px); }.sidebar { padding:18px 12px; background:#fff; border-right:1px solid var(--line); }.nav-item { display:block; width:100%; margin-bottom:4px; color:#536177; text-align:left; background:transparent; }.nav-item:hover,.nav-item.active { color:var(--primary); background:#eaf3fa; }.content { width:min(1220px,100%); padding:28px; margin:0 auto; }.page-heading { display:flex; align-items:end; justify-content:space-between; gap:16px; margin-bottom:20px; }.page-heading h2 { margin-top:3px; }
.notice { margin-bottom:16px; padding:11px 15px; color:#155b35; background:#e8f6ed; border:1px solid #b9dfc5; border-radius:10px; }.notice.error { color:#8d2525; background:#fdecec; border-color:#f3c7c7; }
.stat-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-bottom:18px; }.stat-card,.panel { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); box-shadow:0 2px 6px #1f395408; }.stat-card { padding:18px; }.stat-card .value { display:block; margin-top:5px; color:var(--primary); font-size:30px; font-weight:750; }.stat-card .label { color:var(--muted); font-size:13px; }.panel { padding:20px; margin-bottom:18px; }.steps { margin:12px 0 0; padding-left:22px; display:grid; gap:7px; }
.object-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:14px; margin-bottom:18px; }.object-card { display:grid; gap:7px; padding:16px; color:var(--ink); text-align:left; background:#fff; border:1px solid var(--line); border-radius:var(--radius); box-shadow:0 2px 6px #1f395408; }.object-card:hover { border-color:#94bddb; background:#f8fcff; }.object-card span,.object-card small { color:var(--muted); font-weight:500; }.two-columns { display:grid; grid-template-columns:1fr 1fr; gap:20px; }.three-columns { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }.editor-dialog { width:min(680px,calc(100vw - 30px)); color:var(--ink); background:#fff; border:1px solid #c7d7e6; border-radius:16px; padding:0; box-shadow:0 25px 80px #17293a66; }.editor-dialog::backdrop { background:#10243a88; }.editor-dialog form { padding:22px; }.dialog-head { display:flex; justify-content:space-between; align-items:center; gap:15px; }.dialog-actions { display:flex; justify-content:flex-end; gap:10px; }.dialog-close { display:grid; width:36px; height:36px; place-items:center; padding:0; color:#476078; background:#edf3f8; font-size:26px; font-weight:400; line-height:1; }.dialog-close:hover { color:#8d2525; background:#fdecec; }.boot-card { justify-items:center; text-align:center; }.spinner { width:34px; height:34px; border:4px solid #d9e8f4; border-top-color:var(--primary); border-radius:50%; animation:spin 1s linear infinite; } @keyframes spin { to { transform:rotate(360deg); } }
.form-grid { display:grid; gap:13px; }.form-grid.three { grid-template-columns:repeat(3,minmax(0,1fr)); }.form-grid.four { grid-template-columns:2fr 1fr 2fr 1fr; }.form-grid .wide { grid-column:span 2; }.align-end { align-self:end; }.toolbar { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }.toolbar input { width:min(420px,100%); }.attendance-list { border:1px solid var(--line); border-radius:10px; overflow:hidden; }.attendance-row { display:grid; grid-template-columns:minmax(180px,1fr) 160px 1fr; align-items:center; gap:12px; padding:12px 14px; border-bottom:1px solid var(--line); }.attendance-row:last-child { border-bottom:0; }.attendance-row .worker { display:grid; gap:2px; font-weight:650; }.attendance-row .worker small { color:var(--muted); font-weight:500; }.attendance-row select,.attendance-row input { min-height:35px; }.bottom-save { display:flex; justify-content:flex-end; margin:8px 0 30px; }.object-count { color:#38516c; font-size:16px; }.mini-action { margin-left:5px; padding:3px 7px; color:#155b95; background:#e6f1fa; border-radius:6px; font-size:12px; font-weight:650; }.mini-action:hover { background:#d8eafa; }
.list { display:grid; gap:6px; }.list-row { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:10px 12px; background:#f6f9fc; border-radius:8px; }.delivery-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(310px,1fr)); gap:15px; }.delivery-card { display:grid; gap:12px; padding:18px; background:#fff; border:1px solid var(--line); border-radius:var(--radius); }.delivery-head { display:flex; justify-content:space-between; gap:8px; }.delivery-number { color:var(--muted); font-size:12px; }.badge { display:inline-flex; align-items:center; width:max-content; padding:4px 8px; border-radius:999px; font-size:12px; font-weight:750; }.badge-created { background:#e6eef8; color:#37628a; }.badge-picked { background:#fff3d7; color:#94600b; }.badge-delivered { background:#d9eff8; color:#1c6885; }.badge-received { background:#dff3e5; color:#237247; }.delivery-items { margin:0; padding-left:18px; color:#4d5b6d; }.delivery-actions { display:flex; gap:8px; flex-wrap:wrap; }
.table-wrap { overflow:auto; border:1px solid var(--line); border-radius:10px; } table { width:100%; border-collapse:collapse; background:#fff; } th,td { padding:11px 12px; border-bottom:1px solid var(--line); text-align:left; white-space:nowrap; } th { color:#52647a; background:#f6f9fc; font-size:12px; text-transform:uppercase; letter-spacing:.03em; } tr:last-child td { border-bottom:0; }
@media (max-width:850px) { .app-shell { grid-template-columns:1fr; }.sidebar { display:flex; overflow:auto; padding:8px; border-right:0; border-bottom:1px solid var(--line); }.nav-item { width:auto; min-width:max-content; margin:0; }.content { padding:18px; }.stat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.form-grid.three,.form-grid.four { grid-template-columns:1fr 1fr; }.form-grid .wide { grid-column:span 2; }.attendance-row { grid-template-columns:1fr; gap:7px; }.page-heading { align-items:start; flex-direction:column; }.two-columns,.three-columns { grid-template-columns:1fr; } }
@media (max-width:500px) { .topbar { padding:0 14px; }.user-menu span { max-width:120px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }.content { padding:14px; }.stat-grid,.form-grid.three,.form-grid.four { grid-template-columns:1fr; }.form-grid .wide { grid-column:span 1; }.login-card { padding:25px; } }
@media print { .topbar,.sidebar,.page-heading .toolbar,.editor-dialog,.notice { display:none !important; }.app-shell { display:block; }.content { width:100%; padding:0; }.view[hidden] { display:none !important; } }
