.share-line[data-v-d6b17e45]{display:inline-flex;align-items:center;gap:8px;min-width:0}.share-url[data-v-d6b17e45]{font-family:monospace;font-size:12px;color:var(--accent);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.share-url[data-v-d6b17e45]:hover{text-decoration:underline}.share-btn[data-v-d6b17e45]{display:inline-flex;align-items:center;gap:4px;flex:none;border:1px solid var(--line);background:transparent;color:var(--dim, var(--ink));font:inherit;font-size:12px;padding:2px 10px;border-radius:999px;cursor:pointer}.share-btn[data-v-d6b17e45]:hover{color:var(--accent);border-color:var(--accent)}.overlay[data-v-6abeffb7]{align-items:flex-end;padding:0}.time-picker-dialog[data-v-6abeffb7]{max-width:480px;width:100%;border-radius:20px 20px 0 0;padding-bottom:calc(20px + env(safe-area-inset-bottom,0px))}@media(min-width:520px){.overlay[data-v-6abeffb7]{align-items:center;padding:40px 16px}.time-picker-dialog[data-v-6abeffb7]{max-width:320px;border-radius:var(--radius);padding-bottom:24px}}.wheel-columns[data-v-6abeffb7]{position:relative;display:flex;justify-content:center;gap:4px;height:200px}.wheel-col[data-v-6abeffb7]{width:76px;height:200px;overflow-y:scroll;scroll-snap-type:y mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}.wheel-col[data-v-6abeffb7]::-webkit-scrollbar{display:none}.wheel-pad[data-v-6abeffb7]{height:80px}.wheel-row[data-v-6abeffb7]{height:40px;line-height:40px;text-align:center;scroll-snap-align:center;font:400 20px var(--font-body);color:var(--dim);cursor:pointer;-webkit-user-select:none;user-select:none}.wheel-row.active[data-v-6abeffb7]{color:var(--ink);font-weight:700}.wheel-highlight[data-v-6abeffb7]{position:absolute;top:80px;left:0;right:0;height:40px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--accent-soft);pointer-events:none}.dialog-import[data-v-af283e77]{max-width:min(1080px,94vw)}.cell-changed[data-v-af283e77]{background:var(--accent-soft);color:var(--accent-dark);font-weight:600}.spinner[data-v-af283e77]{display:inline-block;width:14px;height:14px;margin-inline-end:8px;vertical-align:-2px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:import-spin-af283e77 .8s linear infinite}@keyframes import-spin-af283e77{to{transform:rotate(360deg)}}.label-grid[data-v-a839c35f]{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 14px}@media(max-width:560px){.label-grid[data-v-a839c35f]{grid-template-columns:repeat(2,1fr)}}.colorfield .color-input[data-v-f991b831]{height:40px;padding:3px;width:45px;cursor:pointer}.widget-full[data-v-f991b831]{margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);padding:0 32px}.builder[data-v-f991b831]{display:flex;gap:32px;align-items:flex-start}.controls[data-v-f991b831]{flex:1 1 0;min-width:0}.preview-col[data-v-f991b831]{flex:1 1 0;min-width:0;position:sticky;top:16px}.preview-wrap[data-v-f991b831]{width:100%}@media(max-width:760px){.builder[data-v-f991b831]{flex-direction:column}.preview-col[data-v-f991b831]{order:-1;flex-basis:auto;width:100%;position:static;padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--line)}}@media print{body.has-print-sheet #app{display:none!important}body.has-print-sheet .print-sheet-root{position:static;background:none;padding:0;overflow:visible}}.notif-root[data-v-240ac47b]{position:relative;display:flex;align-items:center}.notif-bell[data-v-240ac47b]{position:relative;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:#0000000d;color:var(--ink);cursor:pointer}.notif-bell[data-v-240ac47b]:hover{background:var(--accent-soft);color:var(--accent)}.notif-count[data-v-240ac47b]{position:absolute;top:-3px;right:-3px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:#e0245e;color:#fff;font-size:11px;font-weight:700;line-height:17px;text-align:center}.notif-panel[data-v-240ac47b]{position:absolute;top:calc(100% + 10px);inset-inline-end:0;width:min(380px,calc(100vw - 24px));max-height:min(520px,70vh);display:flex;flex-direction:column;background:var(--surface, #fff);border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 36px #00000024;z-index:60}.notif-head[data-v-240ac47b]{padding:14px 16px 10px;font-size:16px}.notif-empty[data-v-240ac47b]{padding:8px 16px 18px;color:var(--dim, #667);font-size:14px}.notif-list[data-v-240ac47b]{overflow-y:auto;padding-bottom:6px}.notif-item[data-v-240ac47b]{display:flex;gap:12px;align-items:flex-start;padding:10px 16px;cursor:pointer}.notif-item[data-v-240ac47b]:hover{background:#0000000a}.notif-item.unread[data-v-240ac47b]{background:var(--accent-soft, rgba(14, 156, 132, .08))}.notif-item.unread[data-v-240ac47b]:hover{background:var(--accent-soft, rgba(14, 156, 132, .12))}.notif-glyph[data-v-240ac47b]{flex:none;width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#0000000d;font-size:18px}.notif-body[data-v-240ac47b]{min-width:0;flex:1}.notif-title[data-v-240ac47b]{font-size:14px;line-height:1.35;margin:0;overflow-wrap:break-word}.notif-sub[data-v-240ac47b]{font-size:12.5px;color:var(--dim, #667);margin:2px 0 0}.notif-time[data-v-240ac47b]{font-size:12px;color:var(--accent, #0e9c84);font-weight:600;margin:2px 0 0}.notif-message[data-v-240ac47b]{margin:8px 0 0;padding:10px 12px;background:#0000000b;border-radius:10px;font-size:13.5px;white-space:pre-wrap;overflow-wrap:break-word}.notif-reply[data-v-240ac47b]{display:inline-block;margin-top:6px;font-size:13px;color:var(--accent, #0e9c84);font-weight:600}.notif-dot[data-v-240ac47b]{flex:none;align-self:center;width:10px;height:10px;border-radius:50%;background:var(--accent, #0e9c84)}:root{--bg: #f6faf9;--surface: #ffffff;--ink: #123332;--dim: #4f6b69;--accent: #0e9c84;--accent-dark: #0b7c69;--accent-soft: rgba(14, 156, 132, .1);--hero: linear-gradient(135deg, #0b7c69, #0e9c84 55%, #17b598);--hero-ink: #ffffff;--line: rgba(0, 0, 0, .08);--danger: #b3403a;--danger-soft: rgba(179, 64, 58, .08);--warn-soft: rgba(214, 158, 46, .12);--warn-ink: #7a5a14;--font-display: "Fraunces", Georgia, serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--radius: 12px;--shadow: 0 1px 3px rgba(18, 51, 50, .06), 0 8px 24px rgba(18, 51, 50, .06)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background:var(--bg);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--accent)}h1,h2,h3{font-family:var(--font-display);line-height:1.25}.wrap{max-width:1080px;margin:0 auto;padding:0 20px}.topbar{background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.topbar-inner{display:flex;align-items:center;gap:16px;height:60px}.topbar .brand{font-family:var(--font-display);font-weight:700;font-size:18px;color:var(--ink);text-decoration:none;white-space:nowrap}.topbar-nav{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-inline-end:auto}.topbar-nav .nav-link{color:var(--dim);font:500 14px var(--font-body);text-decoration:none;padding:7px 12px;border-radius:8px;white-space:nowrap;transition:color .15s ease,background .15s ease}.topbar-nav .nav-link:hover{color:var(--accent);background:var(--accent-soft)}.topbar-nav .nav-link.active{color:var(--accent);background:var(--accent-soft);font-weight:600}.topbar .who{color:var(--dim);font-size:14px;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-chip{display:flex;align-items:center;gap:8px;margin-inline-start:4px}.avatar{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--accent);color:#fff;font:700 12px var(--font-body);flex-shrink:0}.avatar-lg{width:40px;height:40px;font-size:15px}.mobile-only{display:none}.hamburger-btn{display:none;align-items:center;gap:8px;background:none;border:1px solid var(--line);border-radius:10px;padding:4px 10px 4px 4px;cursor:pointer;margin-inline-start:auto}.hamburger-icon{font-size:17px;line-height:1;color:var(--ink)}.mobile-menu{position:absolute;top:100%;inset-inline:20px;margin-top:8px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:8px;z-index:21;display:flex;flex-direction:column;gap:2px}.mobile-menu-profile{display:flex;align-items:center;gap:10px;padding:10px 8px;border-bottom:1px solid var(--line);margin-bottom:6px}.mobile-menu-profile strong{display:block;overflow-wrap:anywhere}.mobile-menu-profile .hint{overflow-wrap:anywhere}.mobile-menu-link{display:block;width:100%;text-align:start;padding:10px 8px;border-radius:8px;background:none;border:none;color:var(--ink);text-decoration:none;font:500 15px var(--font-body);cursor:pointer}.mobile-menu-link:hover{background:var(--accent-soft)}.mobile-menu-link.danger{color:var(--danger)}@media(max-width:640px){.topbar-inner .desktop-only{display:none}.topbar-inner .hamburger-btn{display:flex}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:10px;border:1px solid transparent;font:600 14px/1 var(--font-body);cursor:pointer;text-decoration:none;transition:background .15s,border-color .15s}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--accent);color:#fff}.btn-primary:not(:disabled):hover{background:var(--accent-dark)}.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line)}.btn-ghost:not(:disabled):hover{border-color:var(--accent);color:var(--accent)}.btn-danger{background:transparent;color:var(--danger);border-color:var(--line)}.btn-danger:not(:disabled):hover{background:var(--danger-soft);border-color:var(--danger)}.btn-sm{padding:6px 12px;font-size:13px}.btn-link{background:none;border:none;color:var(--accent);font:500 14px var(--font-body);cursor:pointer;text-decoration:underline}.field{margin-bottom:16px}.field label{display:block;font-size:13px;font-weight:600;color:var(--dim);margin-bottom:6px}.input,select.input,textarea.input{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font:400 15px var(--font-body);color:var(--ink);background:var(--surface)}.input:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.input.invalid{border-color:var(--danger);background:var(--danger-soft)}textarea.input{min-height:90px;resize:vertical}.row{display:flex;gap:12px}.row>*{flex:1}.row-end{align-items:flex-end}.hint{font-size:13px;color:var(--dim)}.field-group-row{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-end}.field-group{display:flex;gap:10px;align-items:flex-end;flex:1 1 240px;min-width:0}.field-group .field{flex:1;min-width:0}.member-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px 12px;border-bottom:1px solid var(--line);padding-bottom:12px}.member-who{flex:1 1 180px;min-width:0}.member-who strong,.member-who .hint{overflow-wrap:anywhere}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.stack{display:grid;gap:16px}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font:600 12px var(--font-body);color:var(--accent)}.badge{display:inline-block;padding:2px 10px;border-radius:99px;font:600 12px var(--font-body);background:var(--accent-soft);color:var(--accent-dark)}.badge.muted{background:#0000000f;color:var(--dim)}.badge.warn{background:var(--warn-soft);color:var(--warn-ink)}.alert{padding:12px 16px;border-radius:10px;font-size:14px}.alert-error{background:var(--danger-soft);color:var(--danger)}.alert-ok{background:var(--accent-soft);color:var(--accent-dark)}.alert-warn{background:var(--warn-soft);color:var(--warn-ink)}.editor-toolbar{position:sticky;top:60px;z-index:15;display:flex;align-items:center;gap:12px;background:var(--bg);border-bottom:1px solid var(--line);padding:10px 0;margin-bottom:16px}.editor-toolbar .btn-link{white-space:nowrap}.editor-toolbar .toolbar-name{margin-inline-end:auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--dim);font:600 14px var(--font-body)}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:20px}.tabs button{background:none;border:none;border-bottom:2px solid transparent;padding:10px 16px;font:600 14px var(--font-body);color:var(--dim);cursor:pointer}.tabs button.active{color:var(--accent);border-bottom-color:var(--accent)}.table-scroll{overflow-x:auto}table.grid{border-collapse:collapse;width:100%;font-size:13px}table.grid th,table.grid td{border:1px solid var(--line);padding:0;text-align:center}table.grid th{background:var(--accent-soft);color:var(--ink);font-weight:600;padding:8px 6px;white-space:nowrap}table.grid th.group{text-align:center;border-bottom:1px solid var(--line)}table.grid th.subhead{font-size:11px;font-weight:500;color:var(--dim);text-align:center;padding:4px 6px}table.grid td.daycol{padding:4px 10px;font-weight:600;color:var(--dim);background:#00000005}table.grid input{width:76px;border:none;padding:7px 4px;text-align:center;font:400 13px var(--font-body);color:var(--ink);background:transparent}table.grid input:focus{outline:2px solid var(--accent);background:#fff}table.grid input.invalid{background:var(--danger-soft)}table.grid input:disabled{color:var(--dim);background:#00000006}table.grid td{position:relative;cursor:cell}table.grid td.cell-dirty{background:var(--warn-soft)}table.grid td.cell-selected{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}table.grid td.cell-fill-preview{background:#0000000a;box-shadow:inset 0 0 0 1px var(--dim)}table.grid.no-select,table.grid.no-select td{-webkit-user-select:none;user-select:none}table.grid.grid-touch input{pointer-events:none}table.grid.grid-touch td{cursor:pointer}.fill-handle{position:absolute;right:-3px;bottom:-3px;width:8px;height:8px;background:var(--accent);border:1px solid #fff;border-radius:1px;cursor:crosshair;z-index:2}.selection-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:10px;min-height:30px;visibility:hidden}.selection-toolbar.visible{visibility:visible}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#12333273;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;z-index:50;overflow-y:auto}.dialog{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);width:100%;max-width:720px;padding:24px}.dialog h3{margin-bottom:12px}.steps{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}.steps .step{display:flex;align-items:center;gap:8px;font:600 13px var(--font-body);color:var(--dim)}.steps .step .dot{width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#0000000f;font-size:12px}.steps .step.active{color:var(--accent-dark)}.steps .step.active .dot{background:var(--accent);color:#fff}.steps .step.done .dot{background:var(--accent-soft);color:var(--accent-dark)}.swatches{display:flex;gap:10px;flex-wrap:wrap}.swatch{width:44px;height:44px;border-radius:10px;cursor:pointer;border:2px solid transparent}.swatch.active{border-color:var(--ink)}@media print{.no-print{display:none!important}body{background:#fff}.print-sheet{box-shadow:none;border:none}}.print-only{display:none}@media print{body.has-print-sheet .print-only{display:block}}@media(max-width:720px){.row{flex-direction:column}.row-end{align-items:stretch}.card{padding:16px}}
