:root{color-scheme:light;--ink:#243047;--muted:#66738a;--line:#dfe5ef;--purple:#6756d9;--bg:#f4f6fa;--danger:#b32842}
*{box-sizing:border-box}body{margin:0;background:var(--bg);font:15px/1.6 system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink)}a{color:#5140ba;text-decoration:none}a:hover{text-decoration:underline}.shell{max-width:1440px;margin:auto;padding:0 32px}header{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:26px 0} .brand{font-size:21px;font-weight:800;color:var(--ink)}.brand span{font-size:14px;color:var(--muted);font-weight:500;margin-left:10px}.identity{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:13px}nav{display:flex;gap:10px;flex-wrap:wrap;padding-bottom:22px;border-bottom:1px solid var(--line)}nav a{padding:10px 16px;border-radius:10px;background:white;border:1px solid var(--line);font-weight:600}main{padding:28px 0 48px;min-width:0}h1{font-size:27px;line-height:1.35;margin:0}h2{font-size:19px;margin:0 0 18px;line-height:1.5}h3{font-size:16px;margin:20px 0 12px}p{margin:0 0 16px}.page-heading{margin-bottom:24px}.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:28px;margin-bottom:24px;box-shadow:0 3px 12px #21304b04;min-width:0}.narrow{max-width:640px;margin:0 auto 24px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 24px}.wide{grid-column:1/-1}label{display:flex;flex-direction:column;gap:8px;min-width:0}label span{font-size:14px;font-weight:600}input,select,textarea,button,.button{font:inherit}input,select,textarea{width:100%;min-height:46px;border:1px solid #cbd4e2;border-radius:9px;padding:10px 12px;background:white;color:var(--ink)}textarea{min-height:110px;resize:vertical}input:focus,select:focus,textarea:focus{outline:3px solid #6756d929;border-color:var(--purple)}button,.button{border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:10px 18px;background:var(--purple);border-radius:9px;color:white;font-weight:600;cursor:pointer;white-space:normal;text-align:center;line-height:1.45;max-width:100%;overflow-wrap:anywhere}.button:hover{text-decoration:none;filter:brightness(.96)}.secondary{color:var(--ink);background:white;border-color:#cbd4e2}.destructive{background:var(--danger)}.subtle{color:var(--muted);background:transparent;border-color:var(--line);min-height:38px;padding:7px 12px}button:disabled{opacity:.5;cursor:not-allowed}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px 16px;margin-top:24px}.actions form{margin:0}.card form+p{margin-top:20px}.check{flex-direction:row;align-items:flex-start;gap:12px;line-height:1.7}.check input{flex:0 0 auto;width:18px;height:18px;min-height:0;margin-top:4px}.check span{font-weight:400}small,.muted{color:var(--muted);font-size:13px}.notice{padding:16px 20px;border:1px solid var(--line);border-radius:12px;margin-bottom:24px;background:#eef2ff;overflow-wrap:anywhere}.danger{background:#fff0f2;border-color:#efc9d0;color:#8c2036}.success{background:#edf8f2;border-color:#c5e6d4;color:#20583c}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-bottom:24px}.kpi{padding:24px;background:white;border:1px solid var(--line);border-radius:14px}.kpi strong{font-size:30px;display:block;margin-top:10px}.table-wrap{overflow-x:auto;max-width:100%}table{border-collapse:collapse;width:100%;font-size:14px}td,th{text-align:left;vertical-align:top;padding:16px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}th{font-size:12px;text-transform:uppercase;letter-spacing:.03em;background:#f7f9fc;color:var(--muted)}td:first-child,th:first-child{padding-left:0}td:last-child,th:last-child{padding-right:0}td small{display:block;margin-top:5px}.badge{display:inline-block;padding:4px 10px;background:#edf0fc;border-radius:7px;font-size:12px;font-weight:600}.badge.suspended{background:#fff0f2;color:var(--danger)}.badge.active,.badge.published{background:#edf8f2;color:#20583c}dl{display:grid;grid-template-columns:minmax(140px,1fr) minmax(0,3fr);gap:12px 24px;margin:0}dt{color:var(--muted)}dd{margin:0;min-width:0;overflow-wrap:anywhere}code,pre{font:13px/1.7 ui-monospace,Consolas,monospace;overflow-wrap:anywhere;white-space:pre-wrap;word-break:break-word}code{background:#f3f5fa;padding:3px 7px;border-radius:5px}pre{margin:16px 0 0;padding:16px;background:#f7f9fc;border:1px solid var(--line);border-radius:9px}details>summary{cursor:pointer;padding:10px 0;font-weight:600}details[open]>summary{margin-bottom:14px}.search{display:flex;gap:12px;max-width:700px;margin-bottom:24px}.search input{flex:1;min-width:0}footer{border-top:1px solid var(--line);padding:22px 0 32px;color:var(--muted);font-size:12px}.empty{padding:24px 0;color:var(--muted)}.split{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px}.split .card{margin-bottom:0}
@media(max-width:1000px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.split{grid-template-columns:1fr}}
@media(max-width:700px){.shell{padding:0 16px}header{align-items:flex-start;flex-direction:column;gap:14px;padding:20px 0}.brand span{display:block;margin:2px 0 0}.identity{width:100%;justify-content:space-between}nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}nav a{text-align:center;padding:10px 5px;font-size:12px}main{padding-top:22px}h1{font-size:23px}.card{padding:20px;border-radius:13px}.grid{grid-template-columns:minmax(0,1fr);gap:20px}.actions{align-items:stretch}.actions>.button,.actions>button,.actions>form{width:100%}.actions>form>button{width:100%}.kpis{gap:12px}.kpi{padding:18px}.kpi strong{font-size:25px}dl{grid-template-columns:minmax(0,1fr);gap:4px}dd{margin-bottom:12px}.responsive-table,.responsive-table tbody,.responsive-table tr,.responsive-table td{display:block;width:100%}.responsive-table thead{display:none}.responsive-table td{border:0;padding:10px 0}.responsive-table td[data-label]::before{content:attr(data-label);display:block;color:var(--muted);font-size:12px;margin-bottom:4px}.responsive-table tr+tr{border-top:1px solid var(--line);margin-top:16px;padding-top:10px}.search{flex-wrap:wrap}.search button{flex:1}input[type=file]{font-size:13px;padding:10px 8px}.split{gap:20px}}
