:root{--safe-b: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;touch-action:manipulation}html,body{margin:0;height:100%;overflow:hidden;overscroll-behavior:none;font-family:system-ui,sans-serif}html,body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}html{background:#fff}input,textarea,select{-webkit-user-select:text;user-select:text}.dialog h3,.about-line{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}#app{display:flex;flex-direction:column;height:100vh;height:100dvh;background:#f4f1ea}#topbar{background:#fff;border-bottom:1px solid #eee;padding-top:env(safe-area-inset-top,0px)}#canvas{flex:1;width:100%;touch-action:none;background:#f4f1ea;display:block;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}#canvas text{pointer-events:none;-webkit-user-select:none;user-select:none}#tabbar{background:#fff;border-top:1px solid #eee;height:calc(52px + var(--safe-b));padding-bottom:var(--safe-b)}.entity{cursor:pointer}.entity.table.dimmed{opacity:.45}.entity.dragging{will-change:transform}@media (hover: hover) and (pointer: fine){#canvas{cursor:grab}#canvas.grabbing,#canvas.grabbing .entity{cursor:grabbing}.entity:not(.dimmed):hover rect:first-of-type{filter:brightness(1.06)}.entity.invalid:hover rect:first-of-type{filter:none}}.entity.invalid rect{stroke:#c0392b!important;stroke-width:3!important}#overlay{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none}#overlay>*{pointer-events:auto}.icon{display:block}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}:focus-visible{outline:2px solid #2e6ad1;outline-offset:2px}button:focus:not(:focus-visible),input:focus:not(:focus-visible){outline:none}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--ease-out-cubic: cubic-bezier(.215, .61, .355, 1)}.fab,.act,.tab,.seg-item,.pchip,.stepper button,.menu-btn,.menu-item,.pick,.toast-btn,.btn-primary,.btn-secondary,.btn-danger{transition:transform .12s ease,background-color .12s ease,color .12s ease,box-shadow .12s ease}.fab:active,.act:active,.tab:active,.seg-item:active,.pchip:active,.stepper button:active,.menu-btn:not(:disabled):active,.toast-btn:active,.btn-primary:active,.btn-secondary:active,.btn-danger:active{transform:scale(.96)}.menu-item:active,.pick:active{transform:scale(.98)}@keyframes ring-in{0%{opacity:0}to{opacity:1}}.chain-ring{animation:ring-in .15s ease-out}@keyframes focus-pulse{0%,to{opacity:1}30%,70%{opacity:.3}}.focus-ring{animation:focus-pulse .9s var(--ease-out-cubic) 2}@keyframes surface-up{0%{translate:0 16px;opacity:0}to{translate:0 0;opacity:1}}@keyframes surface-down{0%{translate:0 0;opacity:1}to{translate:0 16px;opacity:0}}.sheet.sheet-enter,.palette,.menu-sheet,.picker{animation:surface-up .22s var(--ease-out-cubic)}.sheet.sheet-exit{animation:surface-down .17s var(--ease-out-cubic) forwards}@keyframes pop-in{0%{opacity:0;scale:.96}to{opacity:1;scale:1}}.dialog{animation:pop-in .2s var(--ease-out-cubic)}.context-menu{animation:pop-in .14s var(--ease-out-cubic)}#topbar{display:flex;align-items:center;justify-content:space-between;padding:8px 12px}.seg{display:flex;background:#efece4;border-radius:9px;padding:2px}.seg-item{border:0;background:none;padding:6px 14px;min-height:44px;display:flex;align-items:center;justify-content:center;border-radius:7px;color:#5f5f5f;font:inherit;position:relative;isolation:isolate}.seg-item.on{background:#fff;color:#222;font-weight:600;box-shadow:0 1px 2px #00000014}.menu-btn{border:0;background:none;color:#888;padding:4px 6px;min-width:44px;min-height:44px;border-radius:8px;display:flex;align-items:center;justify-content:center}.menu-btn:disabled{color:#d4d0c8}.topbar-actions{display:flex;align-items:center;gap:6px}#tabbar{display:flex}.tab{flex:1;border:0;background:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-size:11px;color:#6b6b6b}.tab.on{color:#2e7d52;font-weight:600}.tab-ic{display:flex;align-items:center;justify-content:center}.menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#fff3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.menu-sheet,.picker{position:fixed;left:0;right:0;bottom:0;background:#fff;border-radius:16px 16px 0 0;padding:8px;padding-bottom:calc(8px + var(--safe-b));box-shadow:0 -3px 14px #00000026}.menu-item,.pick{display:block;width:100%;text-align:left;border:0;background:none;padding:14px;font:inherit;border-radius:10px}.menu-item:active,.pick:active{background:#f4f1ea}.context-backdrop{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.context-menu{position:fixed;min-width:172px;background:#fff;border:1px solid #eee;border-radius:12px;padding:6px;box-shadow:0 8px 28px #0000002e}.context-menu .menu-item{padding:9px 12px;border-radius:8px;font-size:14px}.context-menu .menu-item.danger{color:#c0392b}@media (hover: hover) and (pointer: fine){.context-menu .menu-item:hover{background:#f4f1ea}}.picker h4{margin:6px 14px}.pick.current{display:flex;align-items:center;justify-content:space-between;font-weight:600;color:#2e7d52}.dialog{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(92vw,360px);background:#fff;border-radius:16px;padding:18px;box-shadow:0 10px 40px #00000040}@media (hover: none),(pointer: coarse){.dialog{top:max(16px,env(safe-area-inset-top));transform:translate(-50%);max-height:calc(100dvh - 32px);overflow:auto}}.dialog h3{margin:0 0 12px}.about-line{margin:0 0 8px;font-size:14px;color:#444}.about-muted{color:#999;font-size:13px}.shortcut-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:7px 0;font-size:14px;color:#444}.shortcut-keys{display:flex;gap:4px;flex-shrink:0}.shortcut-label{text-align:right}kbd{display:inline-block;min-width:18px;padding:2px 6px;border:1px solid #ddd;border-bottom-width:2px;border-radius:6px;background:#f4f1ea;font:inherit;font-size:12px;line-height:1.2;color:#555;text-align:center}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px;font-size:13px;color:#666}.field input{padding:10px;border:1px solid #ddd;border-radius:9px;font:inherit;color:#222;background:#fff;-webkit-appearance:none;-moz-appearance:none;appearance:none;min-height:42px}.field input::-webkit-date-and-time-value{text-align:left}.field input::-webkit-calendar-picker-indicator{opacity:.5}.dialog-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:6px}.btn-primary{background:#2e7d52;color:#fff;border:0;padding:10px 16px;border-radius:9px;font:inherit}.btn-secondary{background:#efece4;color:#444;border:0;padding:10px 16px;border-radius:9px;font:inherit}.btn-danger{background:#c0392b;color:#fff;border:0;padding:10px 16px;border-radius:9px;font:inherit}.confirm-msg{margin:0 0 16px;font-size:15px;color:#333;line-height:1.4}.sheet{position:fixed;left:0;right:0;bottom:calc(52px + var(--safe-b));background:#fff;border-radius:16px 16px 0 0;box-shadow:0 -3px 14px #0000001f;padding:12px 14px}.sheet h4{margin:0 0 2px;font-size:15px}.sheet-meta{font-size:12px;color:#888;margin-bottom:10px}.sheet h4+.acts{margin-top:12px}.acts{display:flex;gap:6px;flex-wrap:wrap}.act{flex:1 0 60px;border:0;background:#f4f1ea;border-radius:9px;padding:9px 4px;font-size:10px;color:#555;display:flex;flex-direction:column;align-items:center;gap:2px}.act.danger{color:#c0392b}.act-ic{display:flex;align-items:center;justify-content:center}.size-row{display:flex;flex-direction:row;gap:14px;margin-top:10px}.stepper{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:13px;color:#666}.stepper-controls{display:flex;align-items:center;gap:10px}.stepper-controls>span{min-width:20px;text-align:center}.stepper button{width:44px;height:44px;border:1px solid #ddd;background:#fff;border-radius:8px;color:#555;display:flex;align-items:center;justify-content:center}.label-input{margin-top:10px;width:100%;padding:9px;border:1px solid #ddd;border-radius:9px;font:inherit}.chain-hint{margin-top:10px;font-size:12px;color:#2e6ad1}.fab{position:fixed;right:16px;bottom:calc(66px + var(--safe-b));width:52px;height:52px;border-radius:50%;border:0;background:#2e7d52;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 10px #00000040}.palette{position:fixed;left:0;right:0;bottom:calc(52px + var(--safe-b));background:#fff;border-radius:16px 16px 0 0;box-shadow:0 -3px 14px #0000001f;padding:10px 12px;display:flex;gap:8px;justify-content:safe center;overflow-x:auto}.pchip{border:0;background:#f4f1ea;border-radius:9px;padding:10px 14px;font-size:12px;white-space:nowrap;color:#555}.zoom-controls{display:none}@media (hover: hover) and (pointer: fine){.zoom-controls{position:fixed;left:16px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:6px}.zoom-btn{width:40px;height:40px;border:1px solid #e6e2d8;background:#fff;color:#555;border-radius:10px;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px #0000001f;cursor:pointer}.zoom-btn:hover{background:#f4f1ea;color:#222}}@media (hover: hover) and (pointer: fine){.menu-btn,.seg-item,.tab,.pchip,.act,.stepper button,.menu-item,.pick,.fab{transition:transform .12s ease,background-color .12s ease,color .12s ease,box-shadow .12s ease}.menu-btn:hover:not(:disabled){background:#f0ede6;color:#555}.seg-item:not(.on):before{content:"";position:absolute;top:4px;right:6px;bottom:4px;left:6px;border-radius:7px;background:transparent;z-index:-1;transition:background-color .12s ease}.seg-item:not(.on):hover{color:#444}.seg-item:not(.on):hover:before{background:#e4e0d6}.tab:not(.on):hover{color:#444}.pchip:hover,.act:hover{background:#e9e4d8}.stepper button:hover,.menu-item:hover,.pick:hover{background:#f4f1ea}.fab:hover{background:#276a45}}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(52px + var(--safe-b) + 12px);display:flex;align-items:center;gap:8px;max-width:calc(100vw - 24px);background:#2f2a24;color:#fff;padding:4px 4px 4px 16px;border-radius:12px;box-shadow:0 4px 16px #00000047;overflow:hidden}.toast-msg{font-size:14px;white-space:nowrap}.toast-btn{border:0;background:none;color:#7ec59b;font:inherit;font-weight:600;padding:11px 14px;min-height:44px;white-space:nowrap}.toast-bar{position:absolute;left:0;bottom:0;height:3px;width:100%;background:#7ec59b;transform-origin:left;animation:toast-countdown 5s linear forwards}@keyframes toast-countdown{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media (orientation: landscape){#topbar{padding-left:calc(12px + env(safe-area-inset-left,0px));padding-right:calc(12px + env(safe-area-inset-right,0px))}#tabbar{padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}.fab{right:calc(16px + env(safe-area-inset-right,0px))}}.guests-sheet{position:fixed;left:0;right:0;bottom:0;display:flex;flex-direction:column;max-height:80vh;background:#fff;border-radius:16px 16px 0 0;box-shadow:0 -3px 14px #00000026;padding-bottom:var(--safe-b);animation:surface-up .22s var(--ease-out-cubic)}.guests-head{padding:14px 16px 10px;border-bottom:1px solid #eee}.guests-head h4{margin:0;font-size:16px}.guests-sub{font-size:12px;color:#8a8a8e;margin-top:2px}.guest-list{overflow-y:auto;-webkit-overflow-scrolling:touch}.guest-row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:12px 16px;border:0;background:none;border-bottom:1px solid #f1f1f3}.guest-row:last-child{border-bottom:0}.guest-time{width:46px;flex:none;font-weight:700;font-variant-numeric:tabular-nums;color:#4955d6}.guest-terras .guest-time{color:#2e9e57}.guest-main{flex:1;min-width:0}.guest-name{display:block;font-size:17px;font-weight:600;color:#1c1c1e}.guest-noname{color:#b0b0b4;font-style:italic;font-weight:500}.guest-meta{display:block;font-size:13px;color:#8a8a8e;margin-top:2px}.guest-chip{flex:none;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px}.chip-binnen{background:#eef0ff;color:#4955d6}.chip-terras{background:#e7f6ec;color:#2e9e57}.guest-empty{padding:28px 16px;text-align:center;color:#8a8a8e}@media (min-width: 820px){:root{--chrome-max: 720px}.sheet,.palette,.menu-sheet,.picker,.guests-sheet{left:50%;right:auto;transform:translate(-50%);width:min(100%,var(--chrome-max))}}
