:root{--bg:#f5f6f8;--bg-raised:#fff;--ink:#14181f;--ink-soft:#565f70;--line:#dde1e8;--accent:#1e5c8c;--accent-ink:#fff;--danger:#a3312a;--danger-soft:#f6e2e0;--warn:#a85d2a;--warn-soft:#f1e1d2;--good:#2f6d43;--good-soft:#dfeee3;--radius:6px;--font:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif}[data-theme=dark]{--bg:#10131a;--bg-raised:#171b24;--ink:#e7e9ee;--ink-soft:#97a0b3;--line:#2a3140;--accent:#6fa8d8;--accent-ink:#0f1620;--danger:#e2857e;--danger-soft:#3a1e1c;--warn:#d98c56;--warn-soft:#3a2a1c;--good:#7fb88b;--good-soft:#1e3324}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font);margin:0;font-size:15px;line-height:1.5}button,input,select{font:inherit;color:inherit}select,input[type=text],input[type=email],input[type=password],input[type=number]{background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);padding:.35rem .55rem}select option{background:var(--bg-raised);color:var(--ink)}a{color:var(--accent)}.app-shell{grid-template-rows:auto 1fr;height:100%;display:grid}.topbar{background:var(--bg-raised);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:.6rem 1rem;display:flex}.topbar-left{align-items:center;gap:1.5rem;display:flex}.topbar-brand{letter-spacing:.01em;font-weight:700}.topbar-nav{gap:.25rem;display:flex}.topbar-nav a{color:var(--ink-soft);border-radius:var(--radius);padding:.4rem .7rem;font-size:.92rem;text-decoration:none}.topbar-nav a.active,.topbar-nav a:hover{background:var(--bg);color:var(--ink)}.topbar-right{align-items:center;gap:.6rem;font-size:.85rem;display:flex}.topbar-right select,.topbar-right button{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;padding:.35rem .55rem}main.content{min-height:0;overflow:auto}.centered-page{justify-content:center;align-items:center;height:100%;display:flex}.card{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem}.login-card{flex-direction:column;gap:.9rem;width:320px;display:flex}.field{color:var(--ink-soft);flex-direction:column;gap:.3rem;font-size:.85rem;display:flex}.field input{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);color:var(--ink);padding:.5rem .6rem}.checkbox-row{color:var(--ink-soft);align-items:center;gap:.5rem;font-size:.85rem;display:flex}.btn-primary{background:var(--accent);color:var(--accent-ink);border-radius:var(--radius);cursor:pointer;border:none;padding:.6rem 1rem;font-weight:600}.btn-primary:disabled{opacity:.6;cursor:default}.error-text{color:var(--danger);font-size:.85rem}.page-padded{padding:1.25rem}.hallplan-toolbar{background:var(--bg-raised);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:1rem;padding:.6rem 1rem;display:flex}.hallplan-stage{background:var(--bg);height:calc(100% - 52px);position:relative;overflow:hidden}.hallplan-stage svg{width:100%;height:100%;display:block}.seat-tooltip{pointer-events:none;background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);z-index:20;max-width:220px;padding:.5rem .7rem;font-size:.82rem;position:fixed;box-shadow:0 4px 16px #0000002e}.legend{color:var(--ink-soft);flex-wrap:wrap;gap:.75rem;font-size:.8rem;display:flex}.legend-item{align-items:center;gap:.35rem;display:flex}.legend-swatch{border:1px solid #00000026;border-radius:3px;width:12px;height:12px}.lod-block-label,.lod-row-label{fill:var(--ink);paint-order:stroke;stroke:var(--bg-raised);stroke-width:3px;pointer-events:none;font-weight:700}.lod-block-badge{fill:var(--ink-soft);paint-order:stroke;stroke:var(--bg-raised);stroke-width:2.5px;pointer-events:none}.seat-number-label{fill:var(--ink);paint-order:stroke;stroke:var(--bg-raised);stroke-width:2px;pointer-events:none}.lod-block-rect{stroke:var(--bg);stroke-width:2px}.lod-row-rect{stroke:var(--bg);stroke-width:1.4px}.lod-block-rect--highlighted,.lod-row-rect--highlighted{stroke:var(--accent);stroke-width:3px}.seat-rect{stroke:var(--bg);stroke-width:.6px}.seat-rect--selected{stroke:#e0a000;stroke-width:1.4px;stroke-dasharray:1.2 .8}.seat-blocked-mark line,.print-seat-mark line{stroke:var(--danger);stroke-width:1px;stroke-linecap:round;pointer-events:none}.seat-checkin-mark,.print-seat-checkin-mark{pointer-events:none}.seat-checkin-mark circle,.print-seat-checkin-mark circle{fill:var(--good);stroke:var(--bg);stroke-width:.4px}.seat-checkin-mark path,.print-seat-checkin-mark path{fill:none;stroke:#fff;stroke-width:.5px;stroke-linecap:round;stroke-linejoin:round}.seat-tooltip-checkin{color:var(--good);font-weight:600}.warnings-panel{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);z-index:15;width:min(380px,100% - 1.5rem);max-height:calc(100% - 1.5rem);padding:.9rem 1rem;position:absolute;top:.75rem;right:.75rem;overflow-y:auto;box-shadow:0 8px 24px #0000002e}.warnings-panel-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.6rem;display:flex}.warnings-panel-head h2{margin:0;font-size:.95rem}.warnings-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.warnings-list li{border-bottom:1px solid var(--line);flex-direction:column;gap:.2rem;padding-bottom:.5rem;font-size:.82rem;display:flex}.warnings-list li:last-child{border-bottom:none}.warning-badge{background:var(--warn-soft);color:var(--warn);border-radius:999px;align-self:flex-start;padding:.15em .5em;font-size:.72rem;font-weight:600}.warning-badge--seat_not_found,.warning-badge--seat_double_booked{background:var(--danger-soft);color:var(--danger)}.warning-message{color:var(--ink-soft)}.warnings-toggle{background:var(--danger-soft);color:var(--danger);border-radius:var(--radius);cursor:pointer;border:1px solid #0000;padding:.35rem .6rem;font-size:.82rem}.export-menu{align-items:center;gap:.6rem;font-size:.85rem;display:flex}.export-menu select,.export-menu button{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;padding:.35rem .55rem}.export-menu button{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}.export-menu button:disabled{opacity:.6;cursor:default}.print-page{box-sizing:border-box;background:#fff;width:100vw;height:100vh;padding:12px;position:relative}.print-legend{color:#14181f;flex-wrap:wrap;gap:.5rem 1rem;max-width:60%;font-family:system-ui,sans-serif;font-size:11px;display:flex;position:absolute;bottom:12px;left:12px}.print-legend-item{align-items:center;gap:.3rem;display:flex}.print-legend-swatch{border:1px solid #0003;border-radius:2px;width:10px;height:10px;display:inline-block}.edit-mode-toggle{color:var(--ink-soft);cursor:pointer;align-items:center;gap:.35rem;font-size:.85rem;display:flex}.zoom-control{align-items:center;gap:.3rem;display:flex}.zoom-control button{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;justify-content:center;align-items:center;width:26px;height:26px;padding:0;font-size:1rem;line-height:1;display:flex}.zoom-control button:hover{background:var(--bg-raised);border-color:var(--accent)}.zoom-input{text-align:center;appearance:textfield;width:4.2em;padding:.3rem .2rem}.zoom-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.zoom-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.zoom-unit{color:var(--ink-soft);margin-right:.2rem;font-size:.8rem}.seat-search{position:relative}.seat-search-input{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);width:14rem;padding:.35rem .55rem}.seat-search-results{z-index:25;background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);width:18rem;max-height:16rem;margin:0;padding:.3rem;list-style:none;position:absolute;top:calc(100% + .3rem);left:0;overflow-y:auto;box-shadow:0 8px 24px #0000002e}.seat-search-results li{border-radius:var(--radius);cursor:pointer;justify-content:space-between;align-items:baseline;gap:.6rem;padding:.35rem .5rem;font-size:.85rem;display:flex}.seat-search-results li:hover,.seat-search-results li.active{background:color-mix(in srgb, var(--accent) 15%, transparent)}.seat-search-result-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.seat-search-result-meta{color:var(--ink-soft);white-space:nowrap;flex-shrink:0;font-size:.78rem}.seat-search-no-results{color:var(--ink-soft);cursor:default;padding:.35rem .5rem;font-size:.85rem}.seat-search-reset{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;padding:.35rem .65rem;font-size:.85rem}.seat-search-reset:hover{background:var(--bg-raised);border-color:var(--accent)}.seat-highlight-ring{fill:none;stroke:var(--accent);stroke-width:1.2px;transform-box:fill-box;transform-origin:50%;pointer-events:none;animation:1.4s ease-out infinite seat-highlight-pulse}@keyframes seat-highlight-pulse{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(2.8)}}.lod-settings{position:relative}.lod-settings>button,.lod-settings-panel button{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;padding:.35rem .65rem;font-size:.85rem}.lod-settings>button:hover,.lod-settings-panel button:hover{background:var(--bg-raised);border-color:var(--accent)}.lod-settings-panel{z-index:25;background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);white-space:nowrap;flex-direction:column;gap:.5rem;padding:.7rem .9rem;font-size:.85rem;display:flex;position:absolute;top:calc(100% + .4rem);left:0;box-shadow:0 8px 24px #0000002e}.lod-settings-panel label{align-items:center;gap:.4rem;display:flex}.lod-settings-panel input{text-align:center;width:4.5em;padding:.25rem .2rem}.edit-mode-hint{background:var(--warn-soft);color:var(--warn);border:1px solid color-mix(in srgb, var(--warn) 35%, transparent);z-index:12;pointer-events:none;border-radius:999px;padding:.3rem .9rem;font-size:.8rem;position:absolute;top:.75rem;left:50%;transform:translate(-50%)}.edit-bar{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);z-index:15;align-items:center;gap:.6rem;padding:.6rem .9rem;font-size:.85rem;display:flex;position:absolute;bottom:.75rem;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0000002e}.edit-bar select,.edit-bar button{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;padding:.35rem .55rem}.edit-bar-note{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);width:12rem;padding:.35rem .55rem}.edit-bar>button:not(.edit-bar-clear){background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}.print-timestamp{color:#565f70;font-family:system-ui,sans-serif;font-size:10px;position:absolute;bottom:12px;right:12px}.dashboard-head{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.project-list{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.project-list li{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);padding:.7rem .9rem}.project-list a{color:var(--ink);font-weight:500;text-decoration:none}.project-list a:hover{color:var(--accent)}.empty-state{background:var(--bg-raised);border:1px dashed var(--line);border-radius:var(--radius);color:var(--ink-soft);flex-direction:column;align-items:flex-start;gap:1rem;max-width:480px;padding:2rem;display:flex}.dialog-overlay{z-index:50;background:#00000073;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.dialog-card{flex-direction:column;gap:.9rem;width:min(480px,100%);max-height:90vh;display:flex;overflow-y:auto}.dialog-card h2{margin:0;font-size:1.15rem}.dialog-actions{justify-content:flex-end;gap:.6rem;display:flex}.newproject-hint{color:var(--ink-soft);font-size:12px;font-weight:400}.newproject-warnings{background:var(--warn-soft);color:var(--warn);border-radius:var(--radius);max-height:160px;padding:.6rem .8rem;font-size:.85rem;overflow-y:auto}.newproject-warnings ul{margin:.3rem 0 0;padding-left:1.1rem}.settings-intro{color:var(--ink-soft);max-width:60ch;margin-bottom:1.2rem}.settings-form{flex-direction:column;gap:.9rem;max-width:420px;display:flex}.settings-actions{gap:.6rem;display:flex}.settings-actions button:not(.btn-primary){background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;padding:.6rem 1rem}.settings-test-ok{color:var(--good);font-size:.85rem}
