
:root{--bg:#f3f2ee;--panel:#fff;--text:#101010;--muted:#666;--line:#d8d8d8;--line2:#1f1f1f;--red:#b91c1c;--orange:#b45309;--green:#166534;--gray:#737373;--side:#101010}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",Arial,sans-serif;font-size:14px}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.admin{min-height:100vh}.sidebar{background:var(--side);color:#fff;padding:18px 14px}.logo{font-size:22px;font-weight:900;letter-spacing:.5px;border-bottom:1px solid #333;padding:4px 2px 16px;margin-bottom:14px}.menu{display:flex;gap:8px;overflow:auto;padding-bottom:2px}.menu a{white-space:nowrap;border:1px solid #333;padding:10px 12px;color:#eee;font-weight:800;background:#161616}.menu a.active,.menu a:hover{background:#fff;color:#111;border-color:#fff}.main{padding:18px}.page-title{font-size:28px;font-weight:900;margin:0 0 16px;letter-spacing:-.6px}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:12px 0}.card{background:#fff;border:1px solid var(--line);padding:18px;margin-bottom:14px}.card h3{margin:0 0 12px;font-size:18px;font-weight:900}.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px}.stat{background:#fff;border:1px solid var(--line2);padding:18px;min-height:108px;position:relative}.stat:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#111}.stat b{display:block;font-size:30px;font-weight:950;margin-top:12px;letter-spacing:-.8px}.stat span{color:#555;font-weight:800}.quick{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:40px;border:1px solid #111;background:#111;color:#fff;padding:0 14px;font-weight:900;cursor:pointer;border-radius:0}.btn-secondary{background:#fff;color:#111}.btn-danger{background:#fff;color:var(--red);border-color:var(--red)}.btn-small{min-height:30px;padding:0 9px;font-size:12px}.input,select,textarea{height:40px;border:1px solid var(--line);background:#fff;padding:0 10px;border-radius:0;outline:0;max-width:100%}textarea{height:92px;padding:10px;resize:vertical}.input:focus,select:focus,textarea:focus{border-color:#111}.form-grid{display:grid;grid-template-columns:1fr;gap:12px}.form-row label{display:block;font-weight:850;margin-bottom:7px}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line)}table{width:100%;border-collapse:collapse;background:#fff;min-width:780px}th,td{border-bottom:1px solid #e8e8e8;padding:12px 10px;text-align:left;vertical-align:middle}th{background:#f7f7f4;font-weight:900;color:#222}tr:hover td{background:#fafafa}.thumb{width:64px;height:54px;object-fit:cover;border:1px solid #ddd;background:#f6f6f3}.badge{display:inline-flex;align-items:center;height:24px;border:1px solid #111;background:#fff;color:#111;padding:0 7px;font-size:12px;font-weight:900;border-radius:0}.badge-success{color:var(--green);border-color:var(--green)}.badge-warning{color:var(--orange);border-color:var(--orange)}.badge-muted{color:var(--gray);border-color:var(--gray)}.badge-danger{background:var(--red);color:#fff;border-color:var(--red)}.badge-dark{background:#111;color:#fff}.price{color:var(--red);font-weight:950}.flash{border:1px solid #111;background:#fff;padding:11px 14px;margin:10px 0 14px;font-weight:800}.flash.error{border-color:var(--red);color:var(--red)}.flash.success{border-color:var(--green);color:var(--green)}.pagination{display:flex;gap:6px;margin-top:12px}.pagination a,.pagination span{border:1px solid #ddd;background:#fff;padding:7px 10px}.pagination .active{background:#111;color:#fff}.mobile-card{background:#fff;border:1px solid var(--line);padding:10px;margin-bottom:10px}.label{border:1px solid #111;background:#fff;color:#111;display:grid;grid-template-columns:1fr auto;gap:4px;overflow:hidden;page-break-inside:avoid}.label .name{font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.label .code{font-family:Consolas,monospace;font-weight:800}.label .qr{width:70px;height:70px}.muted{color:#666}.danger{color:var(--red)}@media(min-width:980px){.admin{display:grid;grid-template-columns:248px 1fr}.sidebar{min-height:100vh;position:sticky;top:0}.menu{display:block;overflow:visible}.menu a{display:block;margin-bottom:7px}.main{padding:28px}.stats{grid-template-columns:repeat(4,minmax(0,1fr))}.form-grid{grid-template-columns:repeat(3,1fr)}.form-grid .full{grid-column:1/-1}.quick{grid-template-columns:repeat(7,minmax(0,1fr))}.pc-only{display:initial}.mobile-only{display:none!important}}@media(max-width:979px){.pc-only{display:none!important}.main{padding:14px}.page-title{font-size:22px}.table-wrap{border:0;background:transparent}table.mobile-stack{display:block;min-width:0;background:transparent}table.mobile-stack thead{display:none}table.mobile-stack tbody,table.mobile-stack tr,table.mobile-stack td{display:block;width:100%;border:0}table.mobile-stack tr{background:#fff;border:1px solid var(--line);margin-bottom:10px;padding:10px}table.mobile-stack td{padding:6px 0}table.mobile-stack td:before{content:attr(data-label);display:inline-block;width:92px;color:#666;font-weight:800}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media print{body{background:#fff}.sidebar,.toolbar,.no-print,.page-title,.flash{display:none!important}.admin{display:block}.main{padding:0}.card{border:0;margin:0;padding:0}@page{margin:0}}
.login-card .input,.login-card .btn{width:100%}.login-card .form-row{margin-bottom:14px}.login-card .btn{margin-top:4px}
body .login-card .input{display:block;width:100%!important;max-width:none!important}body .login-card button.btn{display:flex;width:100%!important;max-width:none!important;margin-top:14px}
.brand-tree{border:1px solid var(--line);background:#fff;margin:10px 0;padding:0}.brand-tree summary{cursor:pointer;list-style:none;padding:12px 14px;font-weight:900;border-bottom:1px solid var(--line);display:flex;gap:10px;align-items:center;flex-wrap:wrap}.brand-tree summary::-webkit-details-marker{display:none}.brand-tree summary:before{content:"+";display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:1px solid #111;margin-right:2px}.brand-tree[open] summary:before{content:"-"}.brand-tree>.toolbar,.brand-tree>p,.brand-tree>.table-wrap{margin:12px}
html{touch-action:manipulation;-webkit-text-size-adjust:100%;text-size-adjust:100%}.input,select,textarea,button{font-size:16px}

/* Mobile controls should remain reachable with one hand and above the
   44px touch-target guidance; safe-area padding prevents keyboard/notch overlap. */
@media(max-width:979px){
  .main{padding-bottom:calc(14px + env(safe-area-inset-bottom))}
  .btn{min-height:44px}
  .btn-small{min-height:40px}
  .input,select{height:44px}
}

.file-input-hidden{position:absolute!important;left:-9999px!important;top:auto!important;width:1px!important;height:1px!important;opacity:.01!important;overflow:hidden!important}

.drop-zone{position:relative}.drop-zone.dragover{outline:2px dashed #111;outline-offset:-6px;background:#fafaf6}.drop-hint{border:1px dashed var(--line);background:#fafaf6;padding:12px;margin:10px 0;color:#666;font-weight:800;text-align:center}

/* Mobile-first shortcuts and dashboard todo cards.  The desktop sidebar
   remains the primary navigation on wide screens. */
.admin-bottom-nav{display:none}
.todo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.todo-item{display:flex;flex-direction:column;gap:5px;border:1px solid var(--line);background:#fff;padding:12px;min-height:92px}
.todo-item span{font-weight:850}.todo-item b{font-size:26px;line-height:1}.todo-item small{color:var(--muted);font-weight:800}.todo-warning{border-color:var(--orange)}.todo-danger{border-color:var(--red)}.todo-dark{border-color:#111}
@media(max-width:979px){
  .main{padding-bottom:calc(84px + env(safe-area-inset-bottom))}
  .todo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-bottom-nav{position:fixed;z-index:100;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,1fr);height:calc(64px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:#fff;border-top:1px solid #111;box-shadow:0 -3px 14px rgba(0,0,0,.08)}
  .admin-bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:44px;color:#555;font-size:11px;font-weight:900}
  .admin-bottom-nav a .nav-icon{font-size:18px;line-height:1}
  .admin-bottom-nav a.active{color:#111;background:#f3f2ee}
}
@media(min-width:980px){.todo-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.quick{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}}
@media print{.admin-bottom-nav{display:none!important}}
