.content-planner-page { width:min(1440px,calc(100% - 32px)); margin:auto; padding:28px 0 60px; color:var(--text,#fff); }
.content-planner-nav { display:flex; gap:18px; margin-bottom:22px; }
.content-planner-nav a { color:var(--accent,var(--color-primary)); font-weight:800; }
.content-planner-hero { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:22px; }
.content-planner-hero h1 { margin:7px 0; font-family:var(--ui-font-body);font-size:clamp(38px,6vw,70px);line-height:1; }
.content-planner-hero p:last-child { max-width:720px; color:var(--text-muted,rgba(255,255,255,.68)); }
.content-planner-layout { display:grid; grid-template-columns:minmax(0,2fr) minmax(320px,1fr); gap:18px; }
.content-planner-calendar,.content-planner-sidebar>section { padding:20px; border:1px solid var(--border,rgba(var(--color-primary-rgb),.3)); border-radius:20px; background:var(--surface,rgba(17,15,28,.94)); }
.content-planner-sidebar { display:grid; align-content:start; gap:18px; }
.content-planner-calendar h2,.content-planner-sidebar h2 { margin:0 0 16px; }
.planner-calendar-toolbar { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:12px; }
.planner-calendar-toolbar button,.content-planner-calendar-toggle { min-height:42px; padding:8px 14px; border:1px solid var(--border-strong,rgba(var(--color-primary-rgb),.5)); border-radius:999px; color:var(--accent,var(--color-primary)); background:rgba(var(--color-primary-rgb),.08); font-weight:800; }
.planner-calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; }
.planner-weekday { padding:6px; color:var(--text-muted,rgba(255,255,255,.68)); font-size:11px; font-weight:800; text-align:center; }
.planner-day { min-height:108px; padding:8px; border:1px solid var(--border,rgba(var(--color-primary-rgb),.26)); border-radius:12px; color:inherit; background:var(--surface-2,rgba(28,21,42,.78)); text-align:left; }
.planner-day[data-outside="true"] { opacity:.45; }
.planner-day[aria-selected="true"],.planner-day[data-drop-target="true"] { border-color:var(--accent,var(--color-primary)); box-shadow:0 0 0 2px rgba(var(--color-primary-rgb),.25); }
.planner-day[data-conflict="true"] { border-style:dashed; border-color:var(--warning,#fbbf24); }
.planner-day-number { display:block; margin-bottom:7px; font-weight:900; }
.planner-day-summary { display:block; overflow:hidden; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.planner-entry-list { display:grid; gap:10px; margin:0; padding:0; list-style:none; }
.planner-entry { display:grid; grid-template-columns:auto 54px minmax(0,1fr); align-items:center; gap:10px; width:100%; padding:9px; border:1px solid var(--border,rgba(var(--color-primary-rgb),.26)); border-radius:12px; color:inherit; background:var(--surface-2,rgba(28,21,42,.78)); text-align:left; }
.planner-entry[data-selected="true"] { border-color:var(--accent,var(--color-primary)); box-shadow:0 0 0 2px rgba(var(--color-primary-rgb),.2); }
.planner-entry[data-conflict="true"]::after { content:"Schedule conflict"; grid-column:2/-1; color:var(--warning,#fbbf24); font-size:11px; font-weight:900; }
.planner-entry-open { display:grid; grid-column:2/-1; grid-template-columns:54px minmax(0,1fr); align-items:center; gap:10px; min-width:0; padding:0; border:0; color:inherit; background:transparent; text-align:left; }
.planner-entry-select { align-self:start; margin-top:18px; }
.planner-entry[draggable="true"] { touch-action:none; }
.planner-entry img,.planner-entry-thumbnail { width:54px; height:54px; border-radius:9px; object-fit:cover; background:rgba(var(--color-primary-rgb),.12); }
.planner-entry-thumbnail { display:grid; place-items:center; font-size:10px; }
.planner-entry strong,.planner-entry span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.planner-entry-meta { color:var(--text-muted,rgba(255,255,255,.68)); font-size:12px; }
.planner-status { margin-top:4px; color:var(--accent,var(--color-primary)); font-size:11px; font-weight:900; text-transform:uppercase; }
.planner-entry-open:focus-visible,.planner-entry-select:focus-visible,.planner-day:focus-visible,.planner-calendar-toolbar button:focus-visible,.content-planner-calendar-toggle:focus-visible,.planner-dialog button:focus-visible { outline:3px solid var(--accent,var(--color-primary)); outline-offset:3px; }
.content-planner-announcer { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.content-planner-state { margin-bottom:14px; padding:12px 14px; border:1px solid var(--border,rgba(var(--color-primary-rgb),.3)); border-radius:12px; color:var(--text-muted,rgba(255,255,255,.68)); }
.content-planner-state:empty { display:none; }
.content-planner-state[data-state="error"] { border-color:var(--danger,#ef4444); color:var(--danger,#fca5a5); }
.planner-toolbar,.planner-bulk-toolbar { display:flex; flex-wrap:wrap; align-items:end; gap:10px; margin-bottom:14px; padding:14px; border:1px solid var(--border,rgba(var(--color-primary-rgb),.3)); border-radius:16px; background:var(--surface,rgba(17,15,28,.94)); }
.planner-toolbar label,.planner-bulk-toolbar label { display:grid; flex:1 1 150px; gap:5px; min-width:0; color:var(--text-muted,rgba(255,255,255,.68)); font-size:12px; font-weight:800; }
.planner-toolbar input,.planner-toolbar select,.planner-bulk-toolbar input { min-width:0; min-height:42px; }
.planner-toolbar button,.planner-bulk-toolbar button { min-height:42px; }
.planner-toolbar output { margin-left:auto; padding:11px 4px; font-weight:800; }
.planner-empty { color:var(--text-muted,rgba(255,255,255,.68)); }
.planner-dialog-shell { position:fixed; inset:0; z-index:50; display:grid; place-items:center; padding:20px; background:rgba(0,0,0,.68); }
.planner-dialog { width:min(480px,100%); max-height:calc(100vh - 40px); overflow:auto; padding:24px; border:1px solid var(--border-strong,rgba(var(--color-primary-rgb),.5)); border-radius:20px; background:var(--surface,#171320); }
.planner-dialog img { width:100%; max-height:220px; border-radius:12px; object-fit:cover; }
.planner-detail-thumbnail { display:grid; place-items:center; min-height:140px; border-radius:12px; background:rgba(var(--color-primary-rgb),.12); color:var(--text-muted,rgba(255,255,255,.68)); font-weight:900; }
.planner-dialog button { min-height:42px; margin-top:16px; }
.planner-detail-grid { display:grid; gap:8px; margin:16px 0; }
.planner-detail-grid dt { color:var(--text-muted,rgba(255,255,255,.68)); font-size:12px; font-weight:800; }
.planner-detail-grid dd { margin:0 0 5px; }
.planner-dialog label { display:grid; gap:6px; font-weight:800; }
.planner-dialog input { min-height:42px; }
.planner-dialog-actions { display:flex; flex-wrap:wrap; gap:10px; }
.planner-save-status { min-height:1.5em; color:var(--text-muted,rgba(255,255,255,.68)); }
.content-planner-calendar-toggle { display:none; }
@media(max-width:1000px){.content-planner-layout{grid-template-columns:1fr}.content-planner-sidebar{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.content-planner-page{width:min(100% - 20px,1440px);padding-top:18px}.content-planner-hero{align-items:stretch;flex-direction:column}.content-planner-calendar-toggle{display:inline-flex;align-self:flex-start;align-items:center}.content-planner-calendar{display:none}.content-planner-calendar[data-mobile-open="true"]{display:block}.content-planner-sidebar{grid-template-columns:1fr}.planner-day{min-height:74px;padding:5px}.planner-day-summary{display:none}.planner-weekday{font-size:9px}}
@media(max-width:640px){.planner-toolbar{display:grid;grid-template-columns:1fr 1fr}.planner-toolbar label:first-child{grid-column:1/-1}.planner-toolbar output{margin:0}.planner-bulk-toolbar{position:sticky;bottom:8px;z-index:20;max-height:48vh;overflow:auto}.planner-bulk-toolbar label{flex-basis:120px}}
