:root{font-family:Inter,Microsoft YaHei,system-ui,sans-serif;color:#172033;background:#f5f7fb;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;overflow:hidden}button,input,select{font:inherit}button{border:0;border-radius:6px;background:#155eef;color:#fff;cursor:pointer;padding:9px 14px}button:hover{background:#004eeb}.sidebar{position:fixed;inset:0 auto 0 0;width:224px;display:flex;flex-direction:column;background:#fff;border-right:1px solid #e6eaf0;padding:24px 14px}.brand{display:flex;align-items:center;justify-content:center;gap:10px;padding:0 10px 20px}.brand>img{height:24px}.brand-mark{display:grid;place-items:center;width:28px;height:28px;border-radius:6px;color:#fff;background:#155eef}nav{display:grid;gap:4px}nav a,nav button{color:#526078;text-decoration:none;padding:10px;border-radius:6px;text-align:left;background:transparent}nav a.active,nav a:hover,nav button.active,nav button:hover{color:#155eef;background:#edf3ff}.account{margin-top:auto;padding:12px 10px;border-top:1px solid #edf0f4;display:grid;gap:3px;font-size:14px}.account small{color:#77839a}.admin-main{margin-left:224px;padding:42px clamp(24px,5vw,72px)}.admin-main.list-page{display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden}.admin-main.list-page>header{flex:none}.admin-main.list-page .content{display:flex;min-height:0;flex:1;flex-direction:column}.admin-main.list-page .table-wrap{min-height:0;flex:1;overflow:auto}.admin-main.list-page th{position:sticky;top:0;z-index:1}@media(max-width:700px){body{overflow:auto}.admin-main.list-page{display:block;height:auto;overflow:visible}.admin-main.list-page .content{display:block}.admin-main.list-page .table-wrap{overflow-x:auto;overflow-y:visible}}header,.section-title,.toolbar,.dialog-title,.dialog-actions{display:flex;align-items:center;justify-content:space-between;gap:16px}header{margin-bottom:30px}h1,h2,p{margin:0}h1{font-size:26px}h2{font-size:18px}.eyebrow{color:#6b778e;font-size:14px;margin-bottom:6px}.icon-button{width:38px;height:38px;padding:0;font-size:22px;background:#fff;color:#526078;border:1px solid #dce2eb}.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:36px}.metrics article{background:#fff;border:1px solid #e6eaf0;border-radius:8px;padding:20px}.metrics span{display:block;color:#6b778e;font-size:14px;margin-bottom:8px}.metrics strong{font-size:28px}.content{background:#fff;border:1px solid #e6eaf0;border-radius:8px;overflow:hidden}.section-title{padding:22px 24px 16px}.section-title p{margin-top:6px;font-size:14px;color:#6b778e}.toolbar{padding:0 24px 16px}.toolbar input{min-width:230px;padding:9px 11px;border:1px solid #dce2eb;border-radius:6px;outline-color:#155eef}.toolbar span{color:#6b778e;font-size:14px}.search-bar{display:flex;align-items:end;gap:12px;padding:20px 24px;background:#fafbfc;border-bottom:1px solid #edf0f4}.search-bar label{display:grid;gap:7px;min-width:min(360px,100%);color:#344054;font-size:13px;font-weight:600}.search-bar input{width:100%;padding:9px 11px;border:1px solid #cfd6e3;border-radius:6px;color:#172033;outline-color:#155eef}.search-actions{display:flex;gap:8px}.list-summary{min-height:43px;padding:14px 24px 10px;color:#667085;font-size:14px}.table-wrap{overflow-x:auto}table{width:100%;min-width:700px;border-collapse:collapse;font-size:14px}th,td{padding:14px 24px;text-align:left;border-top:1px solid #edf0f4;white-space:nowrap}th{background:#fafbfc;color:#6b778e;font-size:13px;font-weight:500}td{color:#4b5870}td strong{color:#172033}.status{display:inline-block;border-radius:999px;padding:3px 9px;font-size:12px}.enabled{color:#087443;background:#e8f7ee}.disabled{color:#a34608;background:#fff1e8}.text-button{padding:2px 7px;background:transparent;color:#155eef}.text-button:hover{background:#edf3ff}.text-button.danger{color:#d92d20}.empty-state{display:grid;min-height:280px;place-content:center;justify-items:center;padding:32px;text-align:center}.empty-state[hidden]{display:none}.empty-state-icon{position:relative;width:48px;height:38px;margin-bottom:16px;border:2px solid #aeb9ca;border-radius:6px}.empty-state-icon:before{position:absolute;top:-8px;left:7px;width:20px;height:8px;border:2px solid #aeb9ca;border-bottom:0;border-radius:5px 5px 0 0;content:""}.empty-state h2{color:#344054;font-size:16px}.empty-state p{margin-top:7px;color:#77839a;font-size:14px}.pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:68px;padding:14px 24px;border-top:1px solid #edf0f4;color:#667085;font-size:13px}.pagination-controls{display:flex;align-items:center;gap:6px}.pagination-controls label{display:flex;align-items:center;gap:5px;margin-right:6px;white-space:nowrap}.pagination select{height:31px;border:1px solid #dce2eb;border-radius:5px;background:#fff;color:#344054;padding:0 5px}.page-button,.page-number{min-width:31px;height:31px;padding:0 8px;border:1px solid #dce2eb;border-radius:5px;background:#fff;color:#344054;font-size:13px}.page-button:hover,.page-number:hover{color:#155eef;border-color:#9bbdff;background:#edf3ff}.page-number.active{border-color:#155eef;background:#155eef;color:#fff}.page-button:disabled{color:#aab3c2;border-color:#edf0f4;background:#fafbfc;cursor:not-allowed}.page-numbers{display:flex;gap:4px}dialog{width:min(440px,calc(100% - 32px));border:0;border-radius:8px;padding:0;box-shadow:0 14px 44px #17203336}dialog::backdrop{background:#17203366}dialog form{display:grid;gap:16px;padding:22px}dialog label{display:grid;gap:7px;font-size:14px;font-weight:600;color:#344054}dialog input,dialog select{width:100%;border:1px solid #dce2eb;border-radius:6px;padding:9px 10px;outline-color:#155eef;font-weight:400}.close{background:transparent;color:#526078;padding:0;font-size:25px}.close:hover{background:transparent;color:#172033}.secondary{color:#344054;background:#fff;border:1px solid #dce2eb}.secondary:hover{background:#f7f8fa}.dialog-actions{justify-content:flex-end;margin-top:4px}.form-error{min-height:18px;color:#d92d20;font-size:13px}.toast-stack{position:fixed;z-index:100;top:20px;right:20px;display:grid;gap:10px;width:min(380px,calc(100vw - 32px));pointer-events:none}.toast{display:grid;grid-template-columns:30px 1fr 24px;align-items:start;gap:10px;padding:13px 12px;border:1px solid #e1e6ee;border-left-width:4px;border-radius:7px;background:#fff;box-shadow:0 12px 28px #17203324;pointer-events:auto;animation:toast-enter .28s cubic-bezier(.2,.8,.2,1) both}.toast.is-leaving{animation:toast-leave .22s ease-in both}.toast-icon{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;font-weight:700}.toast-icon:after{font-size:15px}.toast-copy strong{display:block;color:#172033;font-size:14px}.toast-copy p{margin-top:3px;color:#667085;font-size:13px;line-height:1.45;word-break:break-word}.toast-close{width:24px;height:24px;padding:0;border-radius:4px;background:transparent;color:#77839a;font-size:21px;line-height:1}.toast-close:hover{background:#f2f4f7;color:#344054}.toast-success{border-left-color:#12b76a}.toast-success .toast-icon{color:#087443;background:#e8f7ee}.toast-success .toast-icon:after{content:"✓"}.toast-error{border-left-color:#f04438}.toast-error .toast-icon{color:#b42318;background:#fff1f0}.toast-error .toast-icon:after{content:"!"}.toast-warning{border-left-color:#f79009}.toast-warning .toast-icon{color:#b54708;background:#fff6e6}.toast-warning .toast-icon:after{content:"!"}.confirm-dialog{width:min(430px,calc(100% - 32px));transform:translateY(8px) scale(.98);opacity:0;transition:transform .2s ease,opacity .2s ease}.confirm-dialog[open]{transform:translateY(0) scale(1);opacity:1}.confirm-dialog::backdrop{animation:backdrop-enter .2s ease both}.confirm-content{display:grid;grid-template-columns:34px 1fr;gap:14px;padding:24px}.confirm-copy h2{margin-top:3px}.confirm-copy p{margin-top:7px;color:#667085;font-size:14px;line-height:1.55}.confirm-content .dialog-actions{grid-column:1 / -1;margin-top:8px}.confirm-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;font-size:0}.confirm-icon:after{font-size:17px;font-weight:700;content:"!"}.confirm-icon.warning{color:#b54708;background:#fff6e6}.confirm-icon.danger{color:#b42318;background:#fff1f0}.confirm-button{background:#155eef}.confirm-button:hover{background:#004eeb}.danger-button{background:#d92d20}.danger-button:hover{background:#b42318}@keyframes toast-enter{0%{opacity:0;transform:translate(18px) translateY(-4px)}to{opacity:1;transform:translate(0) translateY(0)}}@keyframes toast-leave{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(16px) scale(.98)}}@keyframes backdrop-enter{0%{opacity:0}to{opacity:1}}.logout{margin-top:auto;background:#fff;border:1px solid #dce2eb;color:#526078}.logout:hover{color:#d92d20;background:#fff5f4}.empty-panel{padding:28px}.empty-panel p{margin-top:8px;color:#6b778e}.login-page{display:grid;min-height:100vh;place-items:center;padding:24px;background:#f5f7fb}.login-card{width:min(380px,100%);display:grid;gap:16px;background:#fff;border:1px solid #e6eaf0;border-radius:8px;padding:30px;box-shadow:0 12px 32px #17203312}.login-card .brand{padding:0 0 10px}.login-card>p,.login-card small{color:#6b778e;font-size:14px}.login-card label{display:grid;gap:7px;color:#344054;font-size:14px;font-weight:600}.login-card input{border:1px solid #dce2eb;border-radius:6px;padding:10px;outline-color:#155eef;font-weight:400}@media(max-width:700px){.sidebar{position:static;width:auto;height:auto;padding:14px;flex-direction:row;align-items:center}.brand{padding:0}.sidebar nav{margin-left:auto;display:flex}.sidebar nav button{padding:8px;font-size:13px}.logout{margin:0 0 0 6px;padding:7px;font-size:12px}.admin-main{margin:0;padding:28px 16px}.metrics{grid-template-columns:1fr}.section-title{align-items:flex-start;flex-direction:column}.toolbar{align-items:stretch;flex-direction:column}.toolbar input{min-width:0;width:100%}.search-bar{align-items:stretch;flex-direction:column;padding:16px}.search-bar label{min-width:0}.search-actions{justify-content:flex-end}.list-summary{padding:12px 16px 8px}.pagination{align-items:flex-start;flex-direction:column;padding:14px 16px}.pagination-controls{width:100%;flex-wrap:wrap}.pagination-info{white-space:nowrap}.toast-stack{top:12px;right:16px;width:calc(100vw - 32px)}}
