/* Wedding seating planner — scoped responsive interface, light/dark friendly */
.spn-workspace{align-items:start;gap:24px}
.spn-workspace .ev-form-panel,.spn-workspace .ev-preview-panel{min-width:0}
.spn{display:grid;gap:16px}
.spn-panel{border:1px solid var(--border,#dce4ee);background:var(--surface,#fff);border-radius:18px;padding:20px;box-shadow:0 3px 20px rgba(22,44,72,.04)}
.spn-panel h3{font-size:1.07rem;margin:0 0 15px;display:flex;align-items:center;justify-content:space-between;gap:9px}
.spn label{display:flex;flex-direction:column;gap:6px;font-size:.85rem;font-weight:650;min-width:0}
.spn input,.spn select,.spn textarea{font:inherit;color:var(--text,#17263b);background:var(--surface,#fff);border:1px solid var(--border,#cfd9e3);border-radius:10px;min-width:0;max-width:100%;width:100%;padding:10px 11px}
.spn input:focus,.spn select:focus,.spn textarea:focus{outline:2px solid #22a3a5;outline-offset:1px}
.spn input[type=file]{display:none}
.spn-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:13px 0}
.spn-wide{grid-column:1/-1}
.spn-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:11px 0}
.spn button,.spn-file{border:1px solid var(--border,#cbd5e1);background:var(--surface,#fff);color:var(--text,#17263b);padding:9px 12px;border-radius:10px;font:inherit;font-weight:650;font-size:.84rem;cursor:pointer;transition:transform .15s ease,background .15s ease}
.spn button:hover,.spn-file:hover{background:var(--surface-soft,#f1f6f8);transform:translateY(-1px)}
.spn button:focus-visible,.spn-file:focus-within{outline:3px solid #27ada8;outline-offset:2px}
.spn .spn-primary{background:#117f81;color:white;border-color:#117f81}
.spn .spn-primary:hover{background:#0c6265}
.spn .spn-danger{color:#c44242;border-color:#d7aaa6;background:transparent}
.spn details{border:1px dashed var(--border,#ccd7e4);border-radius:12px;padding:11px 13px;margin:14px 0}
.spn summary{cursor:pointer;font-weight:700}
.spn details p,.spn-panel>p{font-size:.85rem;line-height:1.55;opacity:.82}
.spn details textarea{margin:8px 0}
.spn-export{margin:12px 0}
.spn-person{border:1px solid var(--border,#d7e0e9);border-radius:12px;padding:11px 12px;margin-bottom:9px;background:var(--surface,#fff);display:grid;gap:8px}
.spn-person>div:first-child{display:flex;align-items:flex-start;justify-content:space-between;gap:7px;flex-wrap:wrap}
.spn-person strong{font-size:.92rem;overflow-wrap:anywhere}
.spn-person small{display:block;font-size:.76rem;opacity:.7;font-weight:500;margin-top:3px}
.spn-person .spn-pill{font-size:.72rem;font-weight:750;border-radius:30px;padding:3px 9px;background:#def5ec;color:#145846}
.spn-person .spn-pill.pending{background:#fff3d1;color:#87581c}
.spn-person .spn-pill.no{background:#fbe8e8;color:#913a3a}
.spn-person .spn-pill.maybe{background:#eee9fc;color:#59449a}
.spn-person-actions{display:flex;flex-wrap:wrap;align-items:end;gap:7px}
.spn-person-actions label{flex:1;min-width:125px}
.spn-person-actions select{padding:7px 8px}
.spn-person-actions button{font-size:.76rem;padding:8px}
.spn-person[draggable=true]{cursor:grab}
.spn-board{min-width:0;display:grid;gap:19px}
.spn-board header{padding:16px 17px;border-radius:16px;background:linear-gradient(130deg,#0b3b47,#116c73);color:white}
.spn-board header .spn-overline{font-size:.72rem;letter-spacing:.15em;font-weight:800;opacity:.8}
.spn-board header h2{margin:8px 0 5px;font-size:1.48rem;overflow-wrap:anywhere;color:white}
.spn-board header p{margin:0;font-size:.84rem;color:#e4f2f4}
.spn-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.spn-stats>div{background:var(--surface-soft,#f1f7f8);border:1px solid var(--border,#dbe4ea);border-radius:14px;padding:12px;min-width:0}
.spn-stats small{display:block;font-size:.72rem;opacity:.7}
.spn-stats strong{display:block;margin-top:6px;font-size:1.46rem}
.spn-percent{display:flex;justify-content:space-between;font-size:.81rem;font-weight:650}
.spn-bar{height:9px;background:#cad9dd;border-radius:30px;overflow:hidden}
.spn-bar i{display:block;width:0;height:100%;background:#09969a;transition:width .2s}
.spn-board section{padding:12px 0;border-top:1px solid var(--border,#dbe4eb)}
.spn-board section h3{font-size:1.02rem;margin:0 0 9px;display:flex;justify-content:space-between;gap:10px}
.spn-board section h3 small{font-size:.74rem;opacity:.7}
.spn-board section>p{font-size:.81rem;opacity:.74;line-height:1.55}
.spn-board footer{font-size:.77rem;opacity:.75}
.spn-check{padding:9px 11px;border-radius:10px;margin:7px 0;font-size:.82rem;line-height:1.5;background:var(--surface-soft,#f2f7f7);border-left:3px solid #1d9491}
.spn-check.warn{border-left-color:#d99d3d;background:rgba(213,150,49,.10)}
.spn-tables{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.spn-table{border:1px solid var(--border,#d4dfe5);border-radius:15px;padding:12px;background:var(--surface-soft,#f9fbfc);min-width:0}
.spn-table.is-over{outline:2px solid #0c9da0;outline-offset:1px}
.spn-table-title{display:flex;align-items:center;justify-content:space-between;gap:7px;flex-wrap:wrap}
.spn-table-shape{height:60px;max-width:132px;margin:9px auto;display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,#d7f0ee,#a3d7d3);color:#11484f;border:4px solid #f3f9f9;box-shadow:0 1px 0 1px #8cc4c5;border-radius:50%;font-weight:800;font-size:1.05rem}
.spn-table-shape.long{border-radius:11px;max-width:160px;height:52px}
.spn-table h4{font-size:.84rem;margin:0;overflow-wrap:anywhere}
.spn-table .spn-table-title span{font-size:.71rem;opacity:.72;white-space:nowrap}
.spn-table ul{padding:0;list-style:none;margin:9px 0;font-size:.77rem;line-height:1.45;max-height:180px;overflow:auto}
.spn-table ul li{padding:4px 0;border-bottom:1px solid var(--border,#e3e8ef);overflow-wrap:anywhere}
.spn-table-buttons{display:flex;gap:4px;flex-wrap:wrap}
.spn-table-buttons button{padding:5px 8px;font-size:.72rem;border-radius:7px}
.spn-empty{padding:16px 12px;border:1px dashed var(--border,#cbd5e1);border-radius:10px;text-align:center;font-size:.83rem;opacity:.75}
.spn-meal{display:flex;justify-content:space-between;gap:12px;font-size:.83rem;padding:7px 0;border-bottom:1px solid var(--border,#dbe4eb)}
.spn-guide article{max-width:860px}
.spn-print-sheet{display:none}
@media(max-width:940px){.spn-tables{grid-template-columns:1fr}}
@media(max-width:650px){.spn-panel{padding:14px}.spn-fields{grid-template-columns:1fr}.spn-actions button,.spn-file{min-height:40px}.spn-tables{grid-template-columns:repeat(2,minmax(0,1fr))}.spn-table{padding:9px}}
@media(max-width:390px){.spn-tables{grid-template-columns:1fr}}
@media print{
 body.spn-printing>*:not(.spn-print-sheet){display:none!important}
 body.spn-printing .spn-print-sheet{display:block!important;color:#151a22!important;font:12pt/1.5 Arial,sans-serif!important;background:white!important;margin:0 auto;max-width:100%!important}
 .spn-print-sheet h1{font-size:21pt;margin:0 0 4mm}.spn-print-sheet h2{font-size:15pt;margin:9mm 0 3mm}
 .spn-print-sheet table{width:100%;border-collapse:collapse}.spn-print-sheet th,.spn-print-sheet td{border-bottom:1px solid #b8c1ca;text-align:left;padding:5px 7px;vertical-align:top}
 .spn-print-sheet .spn-print-sign{page-break-after:always;text-align:center;padding:25mm 0}.spn-print-sheet .spn-print-sign h2{font-size:56pt}
 .spn-print-sheet .spn-print-sign:last-child{page-break-after:auto}
 .spn-print-sheet .spn-print-table{break-inside:avoid}
 @page{size:auto;margin:14mm}
}
