:root{--blue:#168df0;--blue2:#0e72c8;--bg:#edf3f8;--line:#d5dee7;--ink:#172033;--muted:#667085;--green:#4aa65d;--danger:#d94b4b}
*{box-sizing:border-box}body{margin:0;background:var(--bg);font-family:"Segoe UI",Tahoma,sans-serif;color:var(--ink)}.page{max-width:1780px;margin:auto;padding:12px}.top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.top h1{font-size:22px;margin:0}.top p{margin:4px 0 0;color:var(--muted);font-size:13px}.actions{display:flex;gap:7px;flex-wrap:wrap}.btn{border:1px solid #c9d4df;background:#fff;border-radius:7px;padding:8px 12px;font:inherit;font-weight:700;cursor:pointer;color:#223}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn.green{background:var(--green);border-color:var(--green);color:#fff}.btn.danger{background:#fff1f1;border-color:#f0baba;color:#a51f1f}.btn[hidden]{display:none}.panel{background:#fff;border:1px solid #bac7d4;border-radius:12px;overflow:hidden;box-shadow:0 4px 16px #23405c12}.toolbar{background:var(--blue);padding:9px;display:flex;align-items:center;gap:7px;flex-wrap:wrap}.toolbar .search{margin-left:auto;display:flex;align-items:center;gap:5px;color:#fff;font-weight:800}.toolbar input{height:37px;border:1px solid #a9bfd4;border-radius:7px;padding:0 10px;font:inherit}.toolbar .search input{width:300px}.statusline{padding:8px 12px;background:#fff8df;border-bottom:1px solid #eadca3;color:#705700;font-size:13px;display:none}.statusline.show{display:block}.tablewrap{overflow:auto;max-height:75vh}table{width:100%;border-collapse:collapse;min-width:1200px}th,td{border:1px solid #dbe3ea;padding:7px 8px;font-size:12px;vertical-align:top}th{position:sticky;top:0;z-index:2;background:var(--blue);color:#fff;text-align:left;white-space:nowrap}tbody tr:nth-child(even) td{background:#f0f4f5}tbody tr:hover td{background:#eaf5ff}.status-pill{display:inline-block;padding:3px 7px;border-radius:4px;background:#4a9657;color:#fff;font-weight:800}.status-pill.off{background:#9aa4ae}.edit{font-size:18px;line-height:1;padding:3px 7px}.footer{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.pager{display:flex;align-items:center;gap:8px}.modalbg{position:fixed;inset:0;background:#12233f80;display:none;align-items:center;justify-content:center;padding:14px;z-index:30}.modalbg.show{display:flex}.modal{background:#fff;width:min(1280px,98vw);max-height:95vh;overflow:auto;border-radius:14px;box-shadow:0 25px 70px #0004}.mhead,.mfoot{position:sticky;background:#fff;z-index:3;display:flex;align-items:center;gap:8px;padding:12px 15px}.mhead{top:0;border-bottom:1px solid var(--line);justify-content:space-between}.mfoot{bottom:0;border-top:1px solid var(--line);justify-content:flex-end}.mhead h2{margin:0;font-size:19px}.mbody{padding:14px}.section{border:1px solid #ced8e2;border-radius:10px;margin-bottom:12px;padding:12px;background:#f8fafc}.section h3{margin:0 0 10px;color:#165a91;font-size:14px}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 14px}.field label{display:block;font-size:11px;font-weight:800;color:#455468;margin-bottom:4px}.field input,.field textarea,.field select{width:100%;border:1px solid #c7d3df;border-radius:7px;padding:7px 9px;font:inherit;background:#fff}.field input,.field select{height:36px}.field textarea{min-height:65px;resize:vertical}.span2{grid-column:span 2}.span4{grid-column:1/-1}.req{color:#d00}.importbox{background:#f8fbff;border:1px dashed #9abbd8;border-radius:10px;padding:12px;margin-bottom:12px}.importbox p{margin:0 0 8px;font-size:12px;color:#536477}.hide{display:none!important}
@media(max-width:900px){.grid{grid-template-columns:repeat(2,1fr)}.toolbar .search{margin-left:0;width:100%}.toolbar .search input{width:100%}.top{align-items:flex-start}}@media(max-width:560px){.grid{grid-template-columns:1fr}.span2,.span4{grid-column:auto}}

.filterpanel{padding:10px 12px;background:#f8fbff;border-bottom:1px solid #d5e1ed;display:flex;gap:8px;align-items:end;flex-wrap:wrap}.filterpanel label{display:flex;flex-direction:column;gap:3px;font-size:11px;font-weight:800;color:#516173}.filterpanel input,.filterpanel select{height:35px;border:1px solid #c4d2df;border-radius:7px;padding:0 9px;background:#fff;min-width:150px}
