:root{--ink:#172332;--muted:#66717d;--paper:#fff;--bg:#f4f1ec;--line:#ded8d0;--red:#b3122d;--red-dark:#861022;--gold:#b47a32;--ok:#207344;--shadow:0 14px 40px rgba(32,26,20,.09)}*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}body{margin:0;line-height:1.5}a{color:inherit}h1,h2,h3,p{margin-top:0}h1{font-family:Georgia,serif;font-size:clamp(2rem,5vw,3.4rem);line-height:1.05;margin-bottom:.5rem}h2{font-family:Georgia,serif}.top{background:#fff;border-bottom:1px solid var(--line);min-height:82px;display:flex;align-items:center;justify-content:space-between;padding:12px clamp(18px,4vw,64px);gap:24px;position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-weight:800}.brand small,.login-brand small{display:block;font-weight:500;color:var(--muted)}.badge{display:grid;place-content:center;width:54px;height:54px;border-radius:50%;background:linear-gradient(#fff 0 42%,#111 42% 61%,#d71939 61%);border:2px solid #d71939;text-align:center;line-height:.8;font-size:14px;color:#5e6770}.badge b{color:#fff;font-size:18px}.top nav{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.top nav a{padding:8px 10px;text-decoration:none;border-radius:8px}.top nav a:hover{background:#f4eee8}.main{width:min(1160px,calc(100% - 32px));margin:42px auto 70px}.title{display:flex;align-items:end;justify-content:space-between;margin-bottom:24px}.kicker{text-transform:uppercase;letter-spacing:.14em;font-size:.75rem;font-weight:800;color:#865022;margin-bottom:8px}.lead{font-size:1.12rem;color:var(--muted);max-width:720px}.site-grid,.module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:22px;margin:28px 0}.site-card,.module-card,.panel,.empty{background:var(--paper);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.site-card{border-top:5px solid var(--accent);padding:26px;display:grid;grid-template-columns:72px 1fr;gap:18px}.site-mark{width:64px;height:64px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-content:center;font:bold 32px Georgia,serif}.site-card h2{font-size:2rem;margin-bottom:4px}.card-actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:20px}.module-card{display:grid;grid-template-columns:58px 1fr auto;gap:18px;align-items:center;padding:24px;text-decoration:none;transition:.18s}.module-card:hover{transform:translateY(-2px);border-color:#c5a98b}.module-icon{width:52px;height:52px;border-radius:13px;background:#f4e8db;color:#7e451d;display:grid;place-content:center;font-size:1.7rem}.module-card h2{margin-bottom:4px}.module-card p{margin:0;color:var(--muted)}.button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:9px;background:var(--red);color:#fff;padding:11px 16px;font:inherit;font-weight:750;text-decoration:none;cursor:pointer}.button:hover{background:var(--red-dark)}.button.secondary{background:#ebe6df;color:var(--ink)}.button.danger{background:#852536}.button.small{padding:7px 10px;font-size:.88rem}.button.wide{width:100%}.text-link{font-weight:700;color:#75461f}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:20px 0}.toolbar p{margin:0;color:var(--muted)}.edit-form{display:grid;gap:18px}.panel{padding:clamp(20px,4vw,36px)}.narrow{max-width:650px}.edit-form label{display:grid;gap:7px;font-weight:700}.edit-form small,.hint{font-weight:400;color:var(--muted)}input,textarea,select{width:100%;font:inherit;color:var(--ink);background:#fff;border:1px solid #bdb7af;border-radius:8px;padding:11px 12px}textarea{min-height:110px;resize:vertical}textarea.long{min-height:300px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.form-actions{display:flex;gap:10px;flex-wrap:wrap}.check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;justify-content:flex-start}.check input{width:auto}.edit-form fieldset{border:1px solid var(--line);border-radius:12px;padding:18px}.edit-form legend{font-weight:800;padding:0 8px}.notice{padding:13px 15px;border-radius:9px;background:#eef4ff;border-left:5px solid #3666a5}.notice.error{background:#fff0f1;border-color:#b3122d}.notice.success{background:#edf8f1;border-color:var(--ok)}.table-scroll{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:14px}.data-table{border-collapse:collapse;width:100%;min-width:760px}.data-table th,.data-table td{padding:13px 14px;border-bottom:1px solid #ece7e1;text-align:left;vertical-align:top}.data-table th{background:#f7f4f0;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em}.state{display:inline-block;padding:4px 8px;border-radius:999px;font-size:.78rem;font-weight:800}.state.published{background:#e6f5ec;color:#176238}.state.draft{background:#f1eee9;color:#655e55}.preview-image{max-width:320px;max-height:220px;border-radius:10px}.permission-list h3{margin:18px 0 8px}.permission-row{display:grid;grid-template-columns:1fr 1fr;padding:10px;border-top:1px solid var(--line)}.login-page{min-height:100vh;display:grid;place-content:center;padding:24px;background:radial-gradient(circle at top left,#fff 0,#f7efe5 38%,#ece6df 100%)}.login-card,.setup-card{width:min(100%,520px);background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:clamp(24px,5vw,44px)}.setup-card{width:min(920px,calc(100% - 32px));margin:42px auto}.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:30px}.login-brand div{display:grid}.portal-footer{text-align:center;color:var(--muted);padding:28px}.empty{padding:30px}.empty-row{text-align:center!important;color:var(--muted)}.brand-logo{width:58px;height:58px;object-fit:contain;flex:0 0 auto}.login-brand .brand-logo{width:68px;height:68px}@media(max-width:760px){.top{position:static;align-items:flex-start;flex-direction:column}.top nav{justify-content:flex-start}.form-grid,.permission-row{grid-template-columns:1fr}.site-card{grid-template-columns:1fr}.module-card{grid-template-columns:52px 1fr}.module-card>b{grid-column:2}.toolbar{align-items:flex-start;flex-direction:column}.main{margin-top:28px}}
