:root{--bg:#f6f8fb;--panel:#ffffff;--border:#e2e8f0;--text:#0f172a;--muted:#64748b;--muted2:#94a3b8;--shadow:0 1px 2px rgba(0,0,0,.06),0 6px 16px rgba(0,0,0,.06)}*{box-sizing:border-box}body{margin:0;background:linear-gradient(135deg,#f8fafc,#eef2f7);overflow-x:hidden}.page{width:100vw;height:100vh;margin:0;padding:16px;color:var(--text);font-family:ui-sans-serif,system-ui,Segoe UI,Roboto,Helvetica,Arial;overflow:hidden}.page--stack{display:flex;flex-direction:column;gap:12px;height:100%}.header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.header-right{display:flex;flex-direction:column;align-items:flex-end;gap:12px}.title{margin:0;font-weight:600;font-size:22px;letter-spacing:.2px}.subtitle{font-size:12px;color:var(--muted2);margin-bottom:6px}.badges{display:flex;gap:8px;flex-wrap:wrap}.badge{border:1px solid var(--border);background:#fff7;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:2px 8px;border-radius:999px;font-size:12px;color:#334155}.kanton-logo{height:28px;width:auto;object-fit:contain}.panel{background:var(--panel);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);padding:16px;position:relative;overflow:visible}.panel--main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:0}.svg{width:100%;height:auto;display:block}.svg--giant{width:100%;height:100%;max-width:min(95vw,95vh);max-height:min(95vw,95vh);margin:auto}.txt{fill:#334155;pointer-events:none}.curved{letter-spacing:.4px;pointer-events:none}svg path{pointer-events:all}svg text{pointer-events:none}.process-connected{filter:drop-shadow(0 0 8px rgba(59,130,246,.6));animation:stable-pulse 3s ease-in-out infinite;will-change:filter}.process-elevated{filter:drop-shadow(0 0 12px rgba(59,130,246,.7));animation:stable-glow 2s ease-in-out infinite;will-change:filter}.connection-line{stroke:#dc2626;stroke-width:2.5;fill:none;opacity:0;animation:draw-line .6s ease-out forwards,pulse-glow 2s ease-in-out .6s infinite;stroke-dasharray:300;stroke-dashoffset:300;filter:drop-shadow(0 0 3px rgba(220,38,38,.4))}.connection-line-pulse{stroke:#ef4444;stroke-width:2;fill:none;opacity:0;animation:pulse-overlay 2s ease-in-out infinite;filter:drop-shadow(0 0 4px rgba(239,68,68,.6))}@keyframes stable-pulse{0%,to{filter:drop-shadow(0 0 6px rgba(59,130,246,.5))}50%{filter:drop-shadow(0 0 10px rgba(59,130,246,.75))}}@keyframes stable-float{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes stable-glow{0%,to{filter:drop-shadow(0 0 10px rgba(59,130,246,.6))}50%{filter:drop-shadow(0 0 16px rgba(59,130,246,.9))}}@keyframes draw-line{to{stroke-dashoffset:0;opacity:.9}}@keyframes pulse-glow{0%,to{filter:drop-shadow(0 0 2px rgba(220,38,38,.3));stroke-width:2.5}50%{filter:drop-shadow(0 0 6px rgba(220,38,38,.7));stroke-width:2.8}}@keyframes pulse-overlay{0%,to{opacity:.2;stroke-width:2}50%{opacity:.5;stroke-width:2.5}}.hint{color:var(--muted);font-size:11px;margin:12px auto 8px;text-align:center;position:relative}.panel-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.panel-label{font-size:13px;color:var(--muted2)}.panel-value{flex:1;font-size:14px;font-weight:600;color:#334155}.btn{background:#111827;color:#fff;border:none;border-radius:10px;padding:6px 10px;font-size:12px;cursor:pointer}.btn:disabled{opacity:.4;cursor:not-allowed}.search input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:12px;font-size:14px;outline:none}.list{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:12px;padding-right:4px;margin-top:8px}.list--wide{grid-template-columns:repeat(auto-fill,minmax(360px,1fr))}.card{width:100%;text-align:left;border:1px solid var(--border);border-radius:14px;background:#fff;padding:12px;box-shadow:0 1px 2px #0000000d;cursor:pointer}.card:hover{box-shadow:0 6px 16px #00000014}.card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.card-code{font-size:11px;color:var(--muted2)}.card-title{font-size:15px;color:#0f172a;font-weight:600;line-height:1.25}.card-icon{width:34px;height:34px;border-radius:10px;background:#f1f5f9;display:grid;place-items:center}.empty{color:var(--muted);font-size:13px;padding:10px}.chips{margin-top:8px}.chip-label{font-size:11px;color:var(--muted2);margin-bottom:4px}.chip-wrap{display:flex;flex-wrap:wrap;gap:6px}.chip{border:1px solid var(--border);background:#fff;border-radius:999px;padding:4px 10px;font-size:12px;color:#334155}.click{cursor:pointer}.tip{position:fixed;pointer-events:none;z-index:50;background:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:10px;padding:8px 10px;max-width:360px}.tip-sub{font-size:11px;color:var(--muted2)}.tip-main{font-size:13px;color:#0f172a;font-weight:600;line-height:1.25;margin-top:2px}.admin-btn{position:absolute;right:12px;top:12px;z-index:5;background:#111827;color:#fff;border:none;border-radius:10px;padding:6px 10px;font-size:12px;cursor:pointer}.admin-panel{position:absolute;right:12px;top:46px;width:380px;z-index:6}.panel-title{font-weight:700;margin-bottom:8px}.panel-row{display:flex;gap:8px;align-items:center;margin-bottom:8px}.panel-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.panel input,.panel select{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:10px;font-size:13px;outline:none}.panel-hint{font-size:12px;color:var(--muted);margin-top:6px}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center}.modal:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#0f172a73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-pane{position:relative;z-index:61;background:#fff;border:1px solid var(--border);box-shadow:var(--shadow);border-radius:16px;width:min(640px,92vw);padding:18px}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.modal-code{font-size:12px;color:var(--muted2)}.modal-close{border:none;background:#0f172a;color:#fff;border-radius:10px;width:32px;height:32px;cursor:pointer}.modal-title{font-size:24px;font-weight:800;color:#0f172a;margin-top:4px}.modal-sub{font-size:16px;color:#334155;margin-top:4px}.modal-tag{display:inline-block;margin-top:10px;border:1px solid var(--border);border-radius:999px;padding:4px 10px;font-size:12px;color:#334155;background:#f8fafc}.modal-actions{display:flex;justify-content:flex-end;margin-top:14px}.info-list{margin:12px 0;padding-left:20px}.info-list li{margin:4px 0;font-size:14px;color:#334155}@media (max-width: 720px){.page{padding:8px}.title{font-size:18px}.subtitle{font-size:11px}.header{flex-direction:column;align-items:flex-start}.header-right{flex-direction:row;align-items:center;justify-content:space-between;width:100%}.badges{display:none}.kanton-logo{height:24px}.admin-panel{width:100%;right:0}.panel{padding:12px}.hint{font-size:10px}}@media (min-width: 1920px){.svg--giant{max-width:min(90vw,90vh);max-height:min(90vw,90vh)}}.bottom-panel-container{will-change:transform}.bottom-panel-handle{transition:background .2s ease}.bottom-panel-handle:hover{background:linear-gradient(to bottom,#fff,#f8fafcfa)!important}.bottom-panel-container ::-webkit-scrollbar{height:6px}.bottom-panel-container ::-webkit-scrollbar-track{background:#f1f5f9;border-radius:3px}.bottom-panel-container ::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.bottom-panel-container ::-webkit-scrollbar-thumb:hover{background:#94a3b8}@keyframes bounce-up{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.bottom-panel-handle .bounce-hint{animation:bounce-up 1.5s ease-in-out infinite}.page.headless{padding:8px}.page.headless .panel--main{border-radius:12px}.segment-dimmed{opacity:.3;filter:grayscale(.6) blur(1px);transition:all .4s ease}.segment-focused{filter:drop-shadow(0 0 15px rgba(59,130,246,.5));transform:scale(1.02);transition:all .4s ease}.sub-service-enter{animation:subServiceSlideIn .4s ease-out}@keyframes subServiceSlideIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.drill-down-back{cursor:pointer;transition:all .3s ease}.drill-down-back:hover circle{fill:#dbeafe;stroke-width:3}.drill-down-back:hover path{fill:#1e40af}.category-badge{animation:categoryPulse 2s ease-in-out infinite}@keyframes categoryPulse{0%,to{filter:drop-shadow(0 0 4px rgba(2,132,199,.4))}50%{filter:drop-shadow(0 0 8px rgba(2,132,199,.7))}}.sub-service-indicator{font-size:9px;padding:1px 4px;background:#10b981;color:#fff;border-radius:3px;margin-left:4px}.sub-service-hovered{filter:drop-shadow(0 0 10px rgba(59,130,246,.7));transition:filter .2s ease}.sub-service-hovered path{stroke-width:3!important}.sub-service-ring{animation:subServiceRingFadeIn .3s ease-out}@keyframes subServiceRingFadeIn{0%{opacity:0}to{opacity:1}}
