:root{color-scheme:light;--bg:#f6f7f9;--panel:#ffffff;--line:#d9dee7;--text:#172033;--muted:#5d6b82;--accent:#0f766e;--danger:#b42318;--warn:#b54708}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}.shell{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100vh}.sidebar{background:#111827;color:#f9fafb;padding:24px 18px}.brand{font-size:18px;font-weight:700;margin-bottom:28px}.nav{display:grid;grid-gap:8px;gap:8px}.nav a{color:#d1d5db;padding:10px 12px;border-radius:6px}.nav a:hover{background:#1f2937;color:#ffffff}.main{padding:28px}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:16px;gap:16px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:18px}.panel h2,.panel h3{margin:0 0 12px}.metric{font-size:28px;font-weight:700}.muted{color:var(--muted)}.table{width:100%;border-collapse:collapse}.table td,.table th{border-bottom:1px solid var(--line);padding:12px 8px;text-align:left;vertical-align:top}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 10px;font-weight:700;font-size:13px}.badge,.badge.success{background:#e6f4f1;color:var(--accent)}.badge.warn{background:#fff7ed;color:var(--warn)}.badge.danger{background:#fff1f1;color:var(--danger)}.actions{display:flex;flex-wrap:wrap;gap:8px}.button{border:1px solid var(--line);background:#ffffff;color:var(--text);border-radius:6px;padding:8px 10px;font-weight:700}.button.primary{background:var(--accent);border-color:var(--accent);color:#ffffff}.button.danger{background:var(--danger);border-color:var(--danger);color:#ffffff}.button:disabled{cursor:not-allowed;opacity:.45}.login-page{min-height:calc(100vh - 56px);display:grid;place-items:center}.login-panel{width:min(420px,100%);background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:24px}.login-form{display:grid;grid-gap:14px;gap:14px;margin-top:18px}.login-form label{display:grid;grid-gap:6px;gap:6px;font-weight:700}.login-form input{width:100%;border:1px solid var(--line);border-radius:6px;padding:10px 12px;font:inherit}.error{color:var(--danger);margin:0}.small{font-size:13px}.page-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:16px}.page-header.compact{align-items:center;margin-bottom:12px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px;margin-bottom:16px}.form-grid h2{grid-column:1/-1}.form-grid label{display:grid;grid-gap:6px;gap:6px;font-weight:700}.form-grid input,.form-grid select,.form-grid textarea{width:100%;border:1px solid var(--line);border-radius:6px;padding:10px 12px;font:inherit}.form-grid textarea{resize:vertical}.checkbox-row{display:flex!important;flex-direction:row;align-items:center}.checkbox-row input{width:auto}.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:1px;gap:1px;padding:0;overflow:hidden}.calendar-day,.calendar-heading{min-height:118px;padding:10px;background:#ffffff;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.calendar-heading{min-height:auto;background:#eef2f7;font-weight:700}.calendar-date{font-weight:700;margin-bottom:8px}.muted-day{background:#f8fafc;color:var(--muted)}.calendar-item{display:grid;grid-gap:2px;gap:2px;border-left:3px solid var(--accent);background:#eefaf7;border-radius:6px;padding:6px;margin-bottom:6px;font-size:12px}.calendar-item span{color:var(--muted)}.calendar-item.pending_approval{border-left-color:var(--warn);background:#fff7ed}.calendar-item.approved,.calendar-item.published{border-left-color:var(--accent)}.calendar-item.failed,.calendar-item.rejected{border-left-color:var(--danger);background:#fff1f1}.draft-grid{display:grid;grid-gap:16px;gap:16px}.draft-card{display:grid;grid-template-columns:180px minmax(0,1fr);grid-gap:16px;gap:16px}.publishing-card{display:grid;grid-template-columns:150px minmax(0,1fr);grid-gap:16px;gap:16px}.compact-image{min-height:150px}.publishing-gates .panel{min-height:118px}.draft-image{display:grid;place-items:center;min-height:180px;border:1px solid var(--line);border-radius:6px;background:#f8fafc;color:var(--muted);overflow:hidden}.draft-image img{width:100%;height:100%;object-fit:cover}@media (max-width:900px){.calendar-grid,.draft-card,.form-grid,.grid,.publishing-card,.shell,.two-col{grid-template-columns:1fr}.sidebar{position:static}}