:root {
  --ips-gap: 14px;
  --ips-radius: 6px;
  --ips-scene: #4776a8;
  --ips-birthday: #a84f8c;
  --ips-plot: #d8c796;
  --ips-event: #7d4ca0;
  --ips-turn: #a02020;
  --ips-overlay: rgba(0, 0, 0, .72);
  --ips-panel: #fff;
}
.ips-calendar { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: var(--ips-gap); }
.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 { font-weight: bold; }
.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-calendar.compact { display: flex; overflow-x: auto; }
.ips-calendar.compact .ips-month { min-width: 250px; }
.ips-month { border-radius: var(--ips-radius); overflow: hidden; }
.ips-weekdays, .ips-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; }
.ips-day { min-height: 34px; border-radius: calc(var(--ips-radius) / 2); }
.has-scene { border-color: var(--ips-scene); }
.has-birthday { box-shadow: inset 0 0 0 2px var(--ips-birthday); }
.has-plot { background: var(--ips-plot); }
.has-event { outline: 2px solid var(--ips-event); }
.ips-your-turn { color: var(--ips-turn); }
.ips-tracker-character { margin-bottom: var(--ips-gap); overflow: hidden; border-radius: var(--ips-radius); }
.ips-tracker-character h2 { margin: 0; font-size: inherit; }
.ips-scene-list { display: grid; gap: 1px; }
.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); }
.ips-scene-card header { display: flex; flex-direction: column; gap: 5px; }
.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 { font-weight: bold; }
.ips-scene-card dd { margin: 0; }
.ips-scene-actions { display: flex; justify-content: flex-end; }
.ips-tracker-empty { padding: var(--ips-gap); }
.ips-quotes { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: var(--ips-gap); }
.ips-overlay { position: fixed; z-index: 1000; inset: 0; display: grid; place-items: center; background: var(--ips-overlay); }
.ips-overlay form { width: min(650px, 90vw); padding: 24px; color: #222; background: var(--ips-panel); border-radius: var(--ips-radius); }
.ips-overlay textarea { box-sizing: border-box; width: 100%; }
@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; } }
