.planning-shell { margin-bottom: 2rem; }
.planning-shell[data-theme=dark] { --surface:#172033; --ink:#f1f5f9; --ink-2:#d5deeb; --muted:#b9c6d8; --line:#52627c; --brand:#93bbff; --brand-soft:#253c61; --brand-strong:#bfdbfe; --err:#fda4af; color:var(--ink); }
.planning-shell[data-theme=dark] .btn { color:var(--ink); background:var(--surface); border-color:var(--line); }
.planning-shell[data-theme=dark] .btn-primary { color:#0f172a; background:#93bbff; }
.planning-shell input,.planning-shell select,.planning-shell textarea { color:var(--ink); background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-sm); padding:.45rem; }
.planning-shell[data-theme=dark] { color-scheme:dark; }
.planning-shell[data-theme=dark] .data-table th { background:var(--surface); color:var(--ink); }
.planning-toolbar,.planning-actions,.planning-filters { display:flex; flex-wrap:wrap; gap:.5rem; align-items:end; }
.planning-toolbar { margin-bottom:1rem; }
.planning-layout { display:grid; grid-template-columns:minmax(280px, 360px) minmax(0,1fr); gap:1rem; margin-top:1rem; align-items:start; }
.planning-layout>* { min-width:0; }
.planning-editor label,.planning-project-fields label { display:grid; gap:.35rem; margin:.7rem 0; }
.planning-editor input,.planning-editor select,.planning-editor textarea,.planning-project-fields input,.planning-project-fields select,.planning-project-fields textarea,.planning-filters input,.planning-filters select { width:100%; min-width:0; font:inherit; font-size:1rem; min-height:44px; }
.planning-filters label { flex:1 1 150px; display:grid; gap:.25rem; }
.planning-project-fields { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr)); gap:0 1rem; }
.planning-board { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; margin-top:1rem; }
.planning-lane { min-width:0; padding:.75rem; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); }
.planning-card { border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); padding:.7rem; margin:.7rem 0; overflow-wrap:anywhere; }
.planning-card h4 { margin:.5rem 0; }
.planning-card select { min-height:44px; max-width:100%; font:inherit; }
.planning-card label { display:flex; gap:.5rem; align-items:center; min-height:44px; }
.planning-card input[type=checkbox] { width:22px; height:22px; }
.planning-card [data-overdue],.planning-error { color:var(--err); }
.planning-svg-wrap { width:100%; max-height:75vh; max-height:75dvh; overflow:auto; border:1px solid var(--line); margin-top:1rem; touch-action:pan-x pan-y; }
.planning-svg-wrap svg { display:block; max-width:none; }
.planning-svg-wrap [data-node] { cursor:pointer; }
.planning-svg-wrap [data-node]:focus-visible { outline:3px solid #2563eb; }
.planning-dialog { width:min(900px,calc(100% - 24px)); max-height:calc(100vh - 24px); max-height:calc(100dvh - 24px); overflow:auto; color:var(--ink); background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:1rem; }
.planning-dialog::backdrop { background:rgb(0 0 0 / .45); }
.planning-print { display:none; }
.planning-warning { border-inline-start:4px solid var(--err); padding-inline-start:.7rem; }
.planning-table-wrap { max-width:100%; overflow:auto; }
.planning-preview p { overflow-wrap:anywhere; }
.planning-card:focus-within { outline:2px solid var(--brand); }
@media (max-width:900px) { .planning-layout { grid-template-columns:1fr; } }
@media (max-width:520px) { .planning-board { grid-template-columns:1fr; } .planning-toolbar>.btn { flex:1 1 120px; } }
@media print {
  @page { size:A4 portrait; margin:10mm; }
  body.planning-printing>* { display:none!important; }
  body.planning-printing>.planning-print { display:block!important; color:#111; background:#fff; font:11pt Arial,sans-serif; }
  .planning-print h1 { font-size:20pt; }
  .planning-print table { width:100%; border-collapse:collapse; table-layout:fixed; }
  .planning-print td,.planning-print th { border:1px solid #aaa; padding:5pt; overflow-wrap:anywhere; white-space:pre-wrap; }
  .planning-print thead { display:table-header-group; }
  .planning-print tr { break-inside:avoid; }
  .planning-print svg { display:block; max-width:100%; max-height:170mm; width:auto; height:auto; break-inside:avoid; }
  .planning-print p { white-space:pre-wrap; overflow-wrap:anywhere; }
}
