:root { --ips-gap:14px; }
.ips-page-title { margin:0; font-family:"Berkshire Swash",berkshire,serif; font-size:24px; font-weight:normal; text-transform:none; letter-spacing:1px; }
.ips-navigation { display:flex; flex-wrap:wrap; justify-content:center; gap:2px; margin:0 0 14px; padding:1px; background:var(--dkborder2); border:1px solid var(--dkborder); }
.ips-navigation a { flex:1 1 130px; padding:8px 12px; background:var(--navbg); color:var(--texthell); text-align:center; text-transform:uppercase; letter-spacing:1px; transition:.3s; }
.ips-navigation a:hover { background:var(--dkborder); color:var(--accent); }
.ips-calendar-widget { color:var(--txt); }
.ips-calendar { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:var(--ips-gap); }
.ips-calendar.compact { display:flex; overflow-x:auto; padding-bottom:5px; scrollbar-color:var(--accent) var(--dkborder2); }
.ips-calendar.compact .ips-month { min-width:250px; }
.ips-month { overflow:hidden; background:var(--dkborder2); border:1px solid var(--dkborder); }
.ips-month>.thead { margin:0; border-top-width:12px; font-family:"Berkshire Swash",berkshire,serif; font-size:18px; font-weight:normal; text-transform:none; }
.ips-weekdays,.ips-days { display:grid; grid-template-columns:repeat(7,1fr); gap:1px; padding:1px; }
.ips-weekdays { background:var(--dkborder); color:var(--txt); text-align:center; font-size:10px; text-transform:uppercase; }
.ips-weekdays span { padding:5px 2px; }
.ips-day,.ips-days>.empty { min-height:34px; }
.ips-day { position:relative; width:100%; padding:5px 2px; background:var(--bg); color:var(--txt); border:1px solid var(--dkborder); }
.ips-day:hover,.ips-day:focus-visible { background:var(--dkborder2); color:var(--accent); border-color:var(--accent); }
.ips-day.has-scene { border-bottom:3px solid var(--accent); }
.ips-day.has-birthday::after,.ips-day.has-plot::after,.ips-day.has-event::after { position:absolute; right:2px; bottom:1px; color:var(--accent); font-size:8px; }
.ips-day.has-birthday::after { content:"◆"; }
.ips-day.has-plot::after { content:"■"; }
.ips-day.has-event::after { content:"●"; }
.ips-calendar dialog { width:min(460px,90vw); padding:1px; background:var(--dkborder2); color:var(--txt); border:3px solid var(--dkborder); }
.ips-calendar dialog::backdrop { background:rgba(0,0,0,.75); }
.ips-calendar dialog>.thead { display:flex; justify-content:space-between; align-items:center; border-top-width:12px; }
.ips-calendar dialog>.thead button { padding:0 6px; font-size:18px; }
.ips-calendar dialog ul { margin:0; padding:10px 10px 10px 28px; background:var(--bg); }
.ips-calendar dialog li { margin:4px 0; }
.ips-plot-group>strong { color:var(--accent); }
.ips-scene-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--ips-gap); padding:var(--ips-gap); border:0; }
.ips-scene-fields label { display:flex; flex-direction:column; gap:6px; min-width:0; }
.ips-scene-fields legend { padding:0 5px; color:var(--accent); font-family:"Berkshire Swash",berkshire,serif; font-size:18px; }
.ips-scene-fields .ips-field-wide { grid-column:1/-1; }
.ips-scene-fields input,.ips-scene-fields select,.ips-scene-fields textarea { box-sizing:border-box; width:100%; max-width:100%; }
.ips-tracker-character { margin-bottom:var(--ips-gap); overflow:hidden; }
.ips-tracker-character h2 { margin:0; font-size:18px; font-family:"Berkshire Swash",berkshire,serif; font-weight:normal; text-transform:none; }
.ips-scene-list { display:grid; gap:1px; background:var(--dkborder); }
.ips-scene-card { display:grid; grid-template-columns:minmax(180px,1.1fr) minmax(260px,1.5fr) auto; gap:var(--ips-gap); align-items:center; padding:var(--ips-gap); background:var(--bg); }
.ips-scene-card:nth-child(even) { background:var(--bg2,var(--bg)); }
.ips-scene-card header { display:flex; flex-direction:column; gap:5px; }
.ips-scene-card header>a { font-size:15px; }
.ips-scene-card dl { display:grid; gap:5px; margin:0; }
.ips-scene-card dl>div { display:grid; grid-template-columns:minmax(90px,.45fr) 1.55fr; gap:8px; }
.ips-scene-card dt { color:var(--accent); font-weight:bold; }
.ips-scene-card dd { margin:0; }
.ips-scene-actions { display:flex; justify-content:flex-end; }
.ips-your-turn { color:var(--accent); font-weight:bold; }
.ips-tracker-empty { padding:var(--ips-gap); }
.ips-plot { margin-bottom:14px; }
.ips-plot>.trow1 { padding:14px; }
.ips-plot h3 { margin:14px 0 5px; color:var(--accent); }
.ips-quotes { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:var(--ips-gap); }
.ips-quotes blockquote { margin:0; padding:1px; background:var(--dkborder2); color:var(--txt); border:1px solid var(--dkborder); }
.ips-quotes blockquote .trow1 { padding:14px; color:var(--txt); }
.ips-random-quote .trow1 { padding:14px; }
.ips-overlay { position:fixed; z-index:9999; inset:0; display:grid; place-items:center; padding:20px; background:rgba(0,0,0,.75); }
.ips-overlay form { width:min(650px,90vw); padding:1px; color:var(--txt); background:var(--dkborder2); border:3px solid var(--dkborder); }
.ips-overlay .trow1 { padding:18px; }
.ips-overlay textarea { box-sizing:border-box; width:100%; }
.ips-overlay .tfoot { display:flex; gap:8px; align-items:center; }
@media(max-width:760px){.ips-scene-fields,.ips-scene-card{grid-template-columns:1fr}.ips-scene-fields .ips-field-wide{grid-column:auto}.ips-scene-actions{justify-content:flex-start}.ips-scene-card dl>div{grid-template-columns:1fr}.ips-navigation a{flex-basis:45%}}
