:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--background:0 0% 96.5%;--foreground:0 0% 10%;--card:0 0% 100%;--card-foreground:0 0% 10%;--popover:0 0% 100%;--popover-foreground:0 0% 10%;--primary:0 0% 12%;--primary-foreground:0 0% 100%;--secondary:0 0% 93%;--secondary-foreground:0 0% 12%;--muted:0 0% 94%;--muted-foreground:0 0% 45%;--accent:0 0% 89%;--accent-foreground:0 0% 10%;--destructive:0 0% 18%;--destructive-foreground:0 0% 100%;--border:0 0% 87%;--input:0 0% 87%;--ring:0 0% 15%;--r:2px;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px);--mono:"Noto Sans Mono SC","JetBrains Mono","SF Mono","Cascadia Code",Menlo,Consolas,"Liberation Mono",monospace}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--background:0 0% 7%;--foreground:0 0% 92%;--card:0 0% 11%;--card-foreground:0 0% 92%;--popover:0 0% 11%;--popover-foreground:0 0% 92%;--primary:0 0% 90%;--primary-foreground:0 0% 8%;--secondary:0 0% 17%;--secondary-foreground:0 0% 92%;--muted:0 0% 16%;--muted-foreground:0 0% 60%;--accent:0 0% 22%;--accent-foreground:0 0% 92%;--destructive:0 0% 22%;--destructive-foreground:0 0% 92%;--border:0 0% 22%;--input:0 0% 22%;--ring:0 0% 80%}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}#__nuxt,.app,body,html{height:100%}body{font-family:var(--mono);background:hsl(var(--background));color:hsl(var(--foreground));letter-spacing:.2px;font-size:14px;overflow:hidden}button{color:inherit;cursor:pointer;background:0 0;border:none;font-family:inherit}input,select{font-family:inherit;font-size:14px}.app{background:hsl(var(--background));flex-direction:column;max-width:480px;margin:0 auto;display:flex;position:relative;overflow:hidden}.icon-btn{border:1px solid hsl(var(--border));border-radius:var(--r);background:hsl(var(--card));flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.icon-btn:active{background:hsl(var(--muted))}.icon-btn svg{width:15px;height:15px;stroke:hsl(var(--foreground));fill:none;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.nav-btn{border:1px solid hsl(var(--border));border-radius:var(--r);background:hsl(var(--card));justify-content:center;align-items:center;width:32px;height:32px;display:flex}.nav-btn:active,.seg{background:hsl(var(--muted))}.nav-btn svg{width:15px;height:15px;stroke:hsl(var(--foreground));fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.seg{border:1px solid hsl(var(--border));flex-shrink:0;gap:2px;padding:2px;display:flex}.brand,.ev,.ev.locked:after,.ghost,.ghost span,.now-line:before,.seg,.seg button,.seg button .dot,.today-btn,.wh-day .dd{border-radius:var(--r)}.seg button{color:hsl(var(--muted-foreground));white-space:nowrap;padding:6px 8px;font-size:12px;font-weight:500;transition:none}.seg.seg-sm button{padding:5px 7px;font-size:11.5px}.seg button.on{background:hsl(var(--card));color:hsl(var(--foreground));border:1px solid hsl(var(--border));font-weight:700;box-shadow:0 1px 2px #00000014}.seg button .dot{vertical-align:1px;width:7px;height:7px;margin-right:4px;display:inline-block}.seg button.p1 .dot{background:#111}.seg button.p2 .dot{background:#525252}.seg button.p3 .dot{background:#737373}.seg button.p4 .dot{background:#a3a3a3}.topbar{padding:calc(8px + var(--safe-t)) 10px 8px;background:hsl(var(--card));border-bottom:1px solid hsl(var(--border));scrollbar-width:none;flex-shrink:0;align-items:center;gap:8px;display:flex;overflow-x:auto}.topbar::-webkit-scrollbar{display:none}.brand{background:hsl(var(--primary));color:#fff;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;display:flex}.brand,.topbar .title{flex-shrink:0;font-weight:700}.topbar .title{letter-spacing:.5px;white-space:nowrap;font-size:13px}.topbar .top-actions{flex-shrink:0;gap:6px;margin-left:auto;display:flex}.dat-nav{flex-shrink:0;align-items:center;gap:8px;padding:9px 12px 6px;display:flex}.date-title{text-align:center;flex:1;font-size:15px;font-weight:700;line-height:1.3}.date-title small{color:hsl(var(--muted-foreground));margin-top:1px;font-size:11px;font-weight:400;display:block}.today-btn{color:hsl(var(--foreground));border:1px solid hsl(var(--border));background:hsl(var(--card));padding:6px 12px;font-size:12px;font-weight:700}.today-btn:active{background:hsl(var(--accent))}.stage{flex:1;min-height:0;position:relative;overflow:hidden}.scroll{-webkit-overflow-scrolling:touch;touch-action:pan-y;height:100%;overflow:hidden auto}.scroll::-webkit-scrollbar{width:0}.ev,body.pinching .scroll{touch-action:none}.tl-body{width:100%;position:relative}.tl-gutter{z-index:5;width:42px;position:absolute;top:0;left:0}.tl-gutter .h-label{color:hsl(var(--muted-foreground));font-size:10px;position:absolute;right:6px;transform:translateY(-50%)}.tl-cols{display:flex;position:absolute;inset:0 0 0 42px}.tl-col{border-left:1px solid hsl(var(--border));flex:1;height:100%;position:relative}.tl-col.dual{border-left:1px dashed hsl(var(--border))}.grid-line{background:hsl(var(--border));pointer-events:none;opacity:.7;height:1px;position:absolute;left:0;right:0}.grid-line.half{background:repeating-linear-gradient(90deg,hsl(var(--border)) 0 4px,transparent 4px 9px);opacity:.5}.col-date-tag{z-index:6;pointer-events:none;font-size:9px;font-weight:700;position:absolute;top:3px;left:5px}.ev{z-index:10;-webkit-user-select:none;user-select:none;border:1px solid #00000038;flex-direction:column;padding:4px 5px;display:flex;position:absolute}.ev,.ev .ev-t{overflow:hidden}.ev .ev-t{color:#fff;-webkit-line-clamp:2;text-shadow:0 1px 1px #0000004d;-webkit-box-orient:vertical;font-size:11.5px;font-weight:700;line-height:1.25;display:-webkit-box}.ev .ev-time{color:#fffffff2;white-space:nowrap;margin-top:auto;font-size:9.5px}.ev.free{background:hsl(var(--muted))!important;border-color:hsl(var(--border))!important}.ev.free .ev-t,.ev.free .ev-time{color:hsl(var(--muted-foreground));text-shadow:none}.ev .grip,.ev .lock{display:none}.ev.locked:after{content:"";pointer-events:none;mix-blend-mode:overlay;background-image:repeating-linear-gradient(-45deg,#ffffff8c,#ffffff8c 3px,#0000 0 8px);position:absolute;inset:0}.ev.free.locked:after{mix-blend-mode:overlay;background-image:repeating-linear-gradient(-45deg,#fff9,#fff9 3px,#0000 0 8px)}.ev .grip.top{top:3px}.ev .grip.bot{bottom:3px}.ev.free .grip{background:hsl(var(--muted-foreground));opacity:.6}.ev:active{filter:brightness(1.06)}.ghost{border:1.5px dashed hsl(var(--primary));z-index:30;pointer-events:none;opacity:.95;background:#ffffffd9;justify-content:center;align-items:center;transition:none;display:flex;position:absolute}.ghost span{color:hsl(var(--foreground));background:hsl(var(--card));border:1px solid hsl(var(--border));padding:2px 6px;font-size:10px;font-weight:700}.drag-origin{filter:saturate(.7);opacity:.28!important;transform:none!important}.ghost.move{background:#c8d2ffd9}.ghost.move,.ghost.resize{border-color:hsl(var(--primary))}.ghost.resize{background:#ffdcb4e6}.now-line{z-index:20;pointer-events:none;height:1px;left:0;right:0}.now-line,.now-line:before{background:hsl(var(--foreground));position:absolute}.now-line:before{content:"";width:7px;height:7px;top:-3px;left:-3px}.scroll.week-scroll{--week-day-width:220px;--week-width:calc(42px + 7 * var(--week-day-width));touch-action:pan-x pan-y;overflow:auto}.fab-voice,body.dragging .app,body.pinching .scroll.week-scroll{touch-action:none}.week-block,.week-head{width:var(--week-width)}.week-head{z-index:15;border-bottom:1px solid hsl(var(--border));display:flex;top:0}.week-head,.week-head .wh-gutter{background:hsl(var(--background));position:sticky}.week-head .wh-gutter{z-index:1;flex-shrink:0;width:42px;left:0}.week-day,.wh-day,.wh-days,.wh-people{display:flex}.wh-day{width:var(--week-day-width);text-align:center;border-left:1px solid hsl(var(--border)/.55);flex-direction:column;align-items:center;padding:6px 0 4px}.wh-day .wd{color:hsl(var(--muted-foreground));font-size:10px}.wh-day .dd{width:26px;height:26px;margin:2px auto 0;font-size:13px;font-weight:700;line-height:26px}.wh-day.today .dd{background:hsl(var(--primary));color:#fff}.wh-day .wh-hd{color:#dc2626;margin-top:1px;font-size:9px;font-weight:700}.wh-people{width:100%;margin-top:auto;padding-top:4px;font-size:10px;font-weight:700}.wh-people span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;padding:0 4px;overflow:hidden}.week-block .tl-gutter{background:hsl(var(--background));z-index:12;position:sticky;left:0}.week-block .tl-cols{background:repeating-linear-gradient(to bottom,hsl(var(--border)/.45) 0 1px,transparent 1px var(--week-hour-height))}.week-day{flex:0 0 var(--week-day-width);border-color:hsl(var(--border)/.55)}.week-lane{flex:1;min-width:0;position:relative}.week-lane+.week-lane{border-left:1px solid hsl(var(--border)/.35)}.week-scroll::-webkit-scrollbar{height:6px}.week-scroll::-webkit-scrollbar-thumb{background:hsl(var(--border));border-radius:var(--r)}.tl-body .tl-cols .tl-col{position:relative;overflow:visible}.month-wrap{padding:8px 10px calc(76px + var(--safe-b))}.month-grid{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--r);grid-template-columns:repeat(7,1fr);gap:3px;padding:6px;display:grid}.mg-weekday{text-align:center;color:hsl(var(--muted-foreground));padding:4px 0;font-size:10.5px;font-weight:700}.mg-cell{border-radius:var(--r);background:hsl(var(--background));border:1px solid #0000;flex-direction:column;gap:2px;min-height:74px;padding:4px 3px;display:flex;overflow:hidden}.mg-cell.other{opacity:.35}.mg-cell.today{border-color:hsl(var(--primary))}.mg-cell:active{background:hsl(var(--accent))}.mg-date{text-align:center;border-radius:var(--r);width:20px;height:20px;font-size:11px;font-weight:700;line-height:20px}.mg-cell.today .mg-date{background:hsl(var(--primary));color:#fff}.mg-cell.holiday{background:#fef2f2}.mg-cell.workday{background:#f0fdf4}.mg-date .mg-hd{color:#dc2626;vertical-align:baseline;margin-left:3px;font-size:9px;font-weight:700}.mg-date .mg-hd.workday{color:#16a34a}.mg-chip{border-radius:var(--r);color:#fff;white-space:nowrap;text-overflow:ellipsis;padding:1px 4px;font-size:9px;font-weight:500;line-height:1.4;position:relative;overflow:hidden}.mg-chip.locked:after{content:"";border-radius:var(--r);pointer-events:none;mix-blend-mode:overlay;background-image:repeating-linear-gradient(-45deg,#ffffff80,#ffffff80 2px,#0000 0 5px);position:absolute;inset:0}.mg-chip .pdot{border-radius:var(--r);vertical-align:1px;width:5px;height:5px;margin-right:3px;display:inline-block}.mg-more{color:hsl(var(--muted-foreground));padding-left:4px;font-size:9px}.fab{right:calc(16px + env(safe-area-inset-right,0px));bottom:calc(18px + var(--safe-b));border-radius:var(--r);background:hsl(var(--primary));z-index:40;justify-content:center;align-items:center;width:50px;height:50px;display:flex;position:fixed;box-shadow:0 4px 12px #0000003d}.fab svg{width:24px;height:24px;stroke:hsl(var(--primary-foreground));fill:none;stroke-width:2px;stroke-linecap:round}.fab:active{transform:scale(.94)}.mask{z-index:100;opacity:0;pointer-events:none;background:#0000006b;transition:opacity .2s;position:fixed;inset:0}.mask.show{opacity:1;pointer-events:auto}.sheet{background:hsl(var(--card));border-radius:var(--r) var(--r) 0 0;border-top:1px solid hsl(var(--border));z-index:110;width:100%;max-width:480px;max-height:90vh;padding-bottom:var(--safe-b);flex-direction:column;transition:transform .24s cubic-bezier(.32,.72,.28,1);display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%,105%);box-shadow:0 -4px 24px #00000024}.sheet.show{transform:translate(-50%)}.sheet-handle{border-radius:var(--r);background:hsl(var(--border));flex-shrink:0;width:36px;height:3px;margin:8px auto 2px}.sheet-title{text-align:center;border-bottom:1px solid hsl(var(--border));flex-shrink:0;padding:6px 16px 9px;font-size:15px;font-weight:700}.sheet-body{padding:6px 14px 16px;overflow-y:auto}.field{margin-bottom:12px}.field>label{color:hsl(var(--muted-foreground));letter-spacing:.5px;margin-bottom:7px;font-size:11.5px;font-weight:700;display:block}.field input[type=text]{border:1px solid hsl(var(--input));border-radius:var(--r);background:hsl(var(--card));width:100%;color:hsl(var(--foreground));outline:none;padding:10px 11px}.field input[type=text]:focus{border-color:hsl(var(--ring));box-shadow:0 0 0 2px hsl(var(--accent))}.csec{border-top:1px solid hsl(var(--border));padding:9px 0}.csec:first-of-type{border-top:none;padding-top:4px}.csec-label{color:hsl(var(--muted-foreground));align-items:center;margin-bottom:6px}.csec-label,.lock-inline{letter-spacing:.5px;font-size:10.5px;font-weight:700;display:flex}.lock-inline{gap:6px;margin-left:auto}.pt-row{align-items:center;gap:6px;display:flex}.pt-row .mini-seg{flex-shrink:0}.pt-row input[type=text]{border:1px solid hsl(var(--input));border-radius:var(--r);background:hsl(var(--card));min-width:0;color:hsl(var(--foreground));outline:none;flex:1;padding:8px 10px}.pt-row input[type=text]:focus{border-color:hsl(var(--ring));box-shadow:0 0 0 2px hsl(var(--accent))}.tpl-grid{grid-template-columns:repeat(4,1fr);gap:4px;display:grid}.tpl{border:1px solid hsl(var(--border));border-radius:var(--r);text-align:center;background:hsl(var(--card));color:hsl(var(--muted-foreground));flex-direction:column;align-items:center;gap:2px;padding:4px 1px;font-size:9.5px;font-weight:500;line-height:1.1;display:flex;position:relative}.tpl .temoji{font-size:15px;line-height:1}.tpl .tdot{border-radius:var(--r);border:1px solid #0000002e;width:8px;height:8px;position:absolute;top:3px;right:3px}.tpl.on{border-color:hsl(var(--primary));background:hsl(var(--accent));color:hsl(var(--foreground));font-weight:700}.mini-seg{flex-wrap:wrap;gap:4px;display:flex}.mini-seg button{border-radius:var(--r);color:hsl(var(--muted-foreground));border:1px solid hsl(var(--border));background:hsl(var(--card));padding:5px 9px;font-size:11.5px;font-weight:500}.mini-seg.compact button{padding:5px 7px;font-size:11px}.mini-seg button.on{background:hsl(var(--primary));border-color:hsl(var(--primary));color:#fff;font-weight:700}.swatch-grid{grid-template-columns:repeat(8,1fr);gap:4px;display:grid}.swatch{aspect-ratio:1;border-radius:var(--r);border:1px solid #00000040;justify-content:center;align-items:center;width:100%;height:auto;display:flex;position:relative}.swatch.on{outline:2px solid hsl(var(--foreground));outline-offset:1px}.swatch svg{stroke:#fff;fill:none;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 1px #0006);width:13px;height:13px}.cal-head{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.cal-head .m{font-size:13.5px;font-weight:700}.cal-head button{border:1px solid hsl(var(--border));border-radius:var(--r);background:hsl(var(--card));width:30px;height:30px;color:hsl(var(--foreground));font-weight:700}.cal-head .q{width:auto;color:hsl(var(--foreground));padding:0 10px;font-size:11.5px}.cal-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.cal-grid .cw{text-align:center;color:hsl(var(--muted-foreground));padding:2px 0;font-size:10px;font-weight:700}.cal-cell{border-radius:var(--r);border:1px solid #0000;justify-content:center;align-items:center;height:34px;font-size:12.5px;font-weight:500;display:flex}.cal-cell.other{color:hsl(var(--muted-foreground));opacity:.4}.cal-cell.today{border-color:hsl(var(--primary));color:hsl(var(--foreground));font-weight:700}.cal-cell.sel{background:hsl(var(--primary));color:#fff;font-weight:700}.cal-cell:active{background:hsl(var(--accent))}.cal-cell.sel:active{background:hsl(var(--primary))}.wheel-wrap{gap:8px;display:flex}.wheel-group{border:1px solid hsl(var(--border));border-radius:var(--r);background:hsl(var(--card));flex:1;overflow:hidden}.wheel-group .wg-label{text-align:center;color:hsl(var(--muted-foreground));border-bottom:1px solid hsl(var(--border));background:hsl(var(--muted));padding:4px 0;font-size:10.5px;font-weight:700}.wheel-row{display:flex}.wheel{scroll-snap-type:y mandatory;scrollbar-width:none;flex:1;height:170px;position:relative;overflow-y:auto}.wheel::-webkit-scrollbar{display:none}.wheel:after,.wheel:before{content:"";z-index:3;pointer-events:none;height:68px;position:absolute;left:0;right:0}.wheel:before{background:linear-gradient(hsl(var(--card)),hsl(var(--card)/0));top:0}.wheel:after{background:linear-gradient(hsl(var(--card)/0),hsl(var(--card)));bottom:0}.wheel-band{border-top:1px solid hsl(var(--border));border-bottom:1px solid hsl(var(--border));background:hsl(var(--accent));opacity:.5;z-index:2;pointer-events:none;border-radius:var(--r);height:34px;position:absolute;top:68px;left:4px;right:4px}.wheel-item{text-align:center;height:34px;color:hsl(var(--muted-foreground));scroll-snap-align:center;font-size:14px;font-weight:500;line-height:34px}.wheel-item.on{color:hsl(var(--foreground));font-weight:700}.wheel-sep{color:hsl(var(--muted-foreground));font-size:13px;font-weight:700}.ctl-row,.wheel-sep{align-items:center;display:flex}.ctl-row{flex-wrap:wrap;gap:6px}.ctl-row .mini-seg{flex-shrink:0}.ctl-select{border:1px solid hsl(var(--input));border-radius:var(--r);background:hsl(var(--card));min-width:0;color:hsl(var(--foreground));outline:none;flex:1;padding:7px 8px;font-family:inherit;font-size:12px;font-weight:500}.ctl-select:focus{border-color:hsl(var(--ring))}.color-sel option{color:#000}.lock-inline{color:hsl(var(--muted-foreground));flex-shrink:0;align-items:center;gap:4px;font-size:11px;display:inline-flex}.title-row{margin-top:6px}.title-row input{border:1px solid hsl(var(--input));border-radius:var(--r);background:hsl(var(--card));width:100%;color:hsl(var(--foreground));outline:none;padding:10px 11px;font-family:inherit;font-size:14px}.title-row input:focus{border-color:hsl(var(--ring));box-shadow:0 0 0 2px hsl(var(--accent))}.dt-grid{grid-template-rows:1fr 1fr;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:8px;margin-top:8px;display:grid}.dt-cal{border:1px solid hsl(var(--border));border-radius:var(--r);background:hsl(var(--card));flex-direction:column;grid-row:1/3;gap:4px;padding:6px;display:flex;overflow:hidden}.dt-cal .cal-head{align-items:center;gap:4px;display:flex}.dt-cal .cal-head .m{text-align:center;flex:1;min-width:0;font-size:12px;font-weight:700}.dt-cal .cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;display:grid}.dt-cal .cw{text-align:center;color:hsl(var(--muted-foreground));padding:2px 0;font-size:10px}.dt-cal .cal-cell{aspect-ratio:1;border-radius:var(--r);color:hsl(var(--foreground));border:1px solid #0000;justify-content:center;align-items:center;font-size:11px;display:flex}.dt-cal .cal-cell.other{color:hsl(var(--muted-foreground));opacity:.5}.dt-cal .cal-cell.today{border-color:hsl(var(--primary));font-weight:700}.dt-cal .cal-cell.sel{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.dt-time-panel{border:1px solid hsl(var(--border));border-radius:var(--r);background:hsl(var(--card));flex-direction:column;display:flex;overflow:hidden}.dt-time-panel .wg-label{text-align:center;color:hsl(var(--muted-foreground));border-bottom:1px solid hsl(var(--border));background:hsl(var(--muted));padding:4px 0;font-size:10.5px;font-weight:700}.dt-time-panel .wheel-row{flex:1;display:flex}.dt-time-panel .wheel{height:170px}.dur-row{gap:6px;margin-top:6px;display:flex}.dur-row button{border:1px solid hsl(var(--border));border-radius:var(--r);background:hsl(var(--card));color:hsl(var(--muted-foreground));flex:1;padding:6px 0;font-size:11.5px;font-weight:500}.dur-row button:active{background:hsl(var(--accent));color:hsl(var(--foreground))}.switch{flex-shrink:0;width:44px;height:25px;position:relative}.switch.sm{width:38px;height:22px}.switch input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0}.switch .track{background:hsl(var(--muted-foreground));opacity:.45;pointer-events:none;inset:0}.switch .track,.switch .track:after{border-radius:var(--r);transition:all .18s;position:absolute}.switch .track:after{content:"";background:#fff;width:21px;height:21px;top:2px;left:2px;box-shadow:0 1px 3px #00000040}.switch.sm .track:after{width:18px;height:18px}.switch input:checked+.track{background:hsl(var(--primary));opacity:1}.switch input:checked+.track:after{transform:translate(19px)}.switch.sm input:checked+.track:after{transform:translate(16px)}.btn-row{gap:8px;margin-top:10px;display:flex}.btn{border-radius:var(--r);border:1px solid #0000;flex:1;padding:12px;font-size:14px;font-weight:700}.btn-primary{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.btn-primary:active{filter:brightness(.9)}.btn-outline{background:hsl(var(--card));color:hsl(var(--foreground));border-color:hsl(var(--border))}.btn-outline:active{background:hsl(var(--muted))}.btn-danger{background:hsl(var(--card));color:hsl(var(--foreground));border-color:hsl(var(--border))}.btn-danger:active{background:hsl(var(--muted))}.btn-danger.confirm{background:hsl(var(--primary));color:#fff;border-color:hsl(var(--primary))}.method-step{border-bottom:1px solid hsl(var(--border));gap:12px;padding:11px 0;display:flex}.method-step:last-of-type{border-bottom:none}.method-step .num{border-radius:var(--r);background:hsl(var(--accent));width:28px;height:28px;color:hsl(var(--foreground));flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.method-step h4{margin-bottom:3px;font-size:13.5px}.method-step p{font-size:12px;line-height:1.6}.gesture-tips div,.method-quote,.method-step p{color:hsl(var(--muted-foreground))}.method-quote{background:hsl(var(--muted));border-radius:var(--r);border-left:3px solid hsl(var(--primary));margin-bottom:10px;padding:11px 13px;font-size:11.5px;line-height:1.7}.gesture-tips{grid-template-columns:1fr 1fr;gap:7px;margin-top:10px;display:grid}.gesture-tips div{background:hsl(var(--muted));border-radius:var(--r);padding:9px;font-size:11px;line-height:1.55}.gesture-tips b{color:hsl(var(--foreground));margin-bottom:2px;font-size:12px;display:block}.person-edit{border-bottom:1px solid hsl(var(--border));align-items:center;gap:10px;padding:9px 0;display:flex}.person-edit .pid-dot{border-radius:var(--r);flex-shrink:0;width:12px;height:12px}.person-edit input{border:1px solid hsl(var(--border));border-radius:var(--r);background:hsl(var(--card));outline:none;flex:1;padding:9px 11px}.person-edit input:focus{border-color:hsl(var(--ring))}.person-edit .rm{border-radius:var(--r);border:1px solid hsl(var(--border));background:hsl(var(--card));flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.person-edit .rm svg{width:14px;height:14px;stroke:hsl(var(--foreground));fill:none;stroke-width:2px}.link-btn{color:hsl(var(--foreground));padding:9px 0;font-size:13px;font-weight:700}.danger-link{color:hsl(var(--muted-foreground))}.drag-bubble{z-index:200;white-space:nowrap;padding:5px 10px;font-size:11px;font-weight:700;box-shadow:0 4px 12px #00000047}.drag-bubble,.toast{background:hsl(var(--foreground));color:#fff;border-radius:var(--r);pointer-events:none;position:fixed}.toast{left:50%;bottom:calc(88px + var(--safe-b));z-index:300;opacity:0;text-align:center;max-width:82%;padding:9px 16px;font-size:12.5px;transition:all .22s;transform:translate(-50%,16px)}.toast.show{opacity:1;transform:translate(-50%)}body.dragging{overflow:hidden}@media (width<=420px){.dt-grid{grid-template-rows:auto auto;grid-template-columns:repeat(2,minmax(0,1fr))}.dt-cal{grid-area:auto/1/auto/-1}}.fab-voice{right:calc(76px + env(safe-area-inset-right,0px));-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.dat-nav .zoom-value{min-width:38px;color:hsl(var(--muted-foreground));padding:6px 4px;font-size:11px}.voice-dialog,.voice-pulse-overlay{background:hsl(var(--card));width:min(340px,100vw - 32px);color:hsl(var(--foreground));border:1px solid hsl(var(--border));z-index:110;padding:18px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 8px 32px #0004}.voice-pulse-overlay{z-index:120;pointer-events:none;text-align:center;overflow-wrap:anywhere}.voice-pulse{justify-content:center;align-items:center;gap:5px;height:48px;margin:0 auto 8px;display:flex}.voice-pulse i{background:hsl(var(--primary));border-radius:4px;width:5px;height:36px;transform:scaleY(.3)}.voice-pulse.listening i{animation:.65s ease-in-out infinite alternate voice-wave}.voice-pulse i:nth-child(2n){animation-delay:-.2s}.voice-pulse i:nth-child(3n){animation-delay:-.45s}@keyframes voice-wave{to{transform:scaleY(1)}}@media (prefers-reduced-motion:reduce){.voice-pulse.listening i{animation:none}}.voice-dialog h2{margin-bottom:8px;font-size:16px}.voice-dialog p{overflow-wrap:anywhere}.voice-dialog ul{max-height:45dvh;margin:8px 0;list-style:none;overflow:auto}.voice-dialog li button{text-align:left;border-bottom:1px solid hsl(var(--border));width:100%;padding:8px;display:block}*{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea{-webkit-user-select:text;user-select:text}.fab{touch-action:none}.event-sheet.show.swiping-down{transform:translate(-50%,var(--dismiss-offset));transition:none}.event-sheet .dt-grid.time-only{grid-template-rows:auto;grid-template-columns:repeat(2,minmax(0,1fr))}.event-sheet .dt-time-panel,.event-sheet .wheel{touch-action:pan-y;overscroll-behavior:contain}.mosaic-login{max-width:360px;margin:auto;padding:20px}.mosaic-login form{gap:10px;display:grid}.mosaic-login select{background:hsl(var(--card));color:inherit;border:1px solid hsl(var(--border));padding:8px}.login-pattern{aspect-ratio:1;touch-action:none;grid-template-columns:repeat(3,1fr);display:grid;position:relative}.login-pattern svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.login-pattern polyline{fill:none;stroke:hsl(var(--primary));stroke-width:6px;stroke-linecap:round;stroke-linejoin:round}.login-pattern button{place-items:center;display:grid;position:relative}.login-pattern button span{border:2px solid hsl(var(--primary));background:hsl(var(--card));border-radius:50%;width:20px;height:20px}.login-pattern button[aria-pressed=true] span{background:hsl(var(--primary))}.topbar{color:#fff;background:#000;border-bottom-color:#222}.topbar .brand,.topbar .icon-btn{color:#fff;background:#151515;border-color:#363636}.topbar .icon-btn svg{stroke:currentColor}.topbar .seg{background:#1c1c1c;border-color:#3b3b3b}.topbar .seg button{color:#c5c5c5}.topbar .seg button.on{color:#fff;background:#373737;border-color:#6b6b6b}.pwa-install p{margin:4px 0 10px;line-height:1.4}.gp[data-v-e4248b2f]{flex:1;min-width:0;position:relative}.gp-trigger[data-v-e4248b2f]{border:1px solid hsl(var(--input));border-radius:var(--r);background:hsl(var(--card));width:100%;color:hsl(var(--foreground));cursor:pointer;text-align:left;align-items:center;gap:5px;padding:6px 8px;font-family:inherit;font-size:12px;font-weight:500;display:flex}.gp-trigger[data-v-e4248b2f]:hover{border-color:hsl(var(--ring))}.gp-trigger.on[data-v-e4248b2f]{border-color:hsl(var(--primary));box-shadow:0 0 0 2px hsl(var(--accent))}.gp-title[data-v-e4248b2f]{color:hsl(var(--muted-foreground));flex-shrink:0}.gp-cur[data-v-e4248b2f]{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.gp-cur.ph[data-v-e4248b2f]{color:hsl(var(--muted-foreground));font-weight:400}.gp-chev[data-v-e4248b2f]{width:10px;height:6px;stroke:hsl(var(--muted-foreground));fill:none;stroke-width:1.8px;flex-shrink:0}.gp-pop[data-v-e4248b2f]{background:hsl(var(--popover));border:1px solid hsl(var(--border));border-radius:var(--r);z-index:40;min-width:200px;margin-top:4px;padding:8px;position:absolute;top:100%;left:0;right:auto;box-shadow:0 6px 20px #00000024}.gp-pop.flip-up[data-v-e4248b2f]{margin-top:0;margin-bottom:4px}.gp-pop.gp-pop-enter-active[data-v-e4248b2f],.gp-pop.gp-pop-leave-active[data-v-e4248b2f]{transition:opacity .12s,transform .12s}.gp-pop.gp-pop-enter-from[data-v-e4248b2f],.gp-pop.gp-pop-leave-to[data-v-e4248b2f]{opacity:0;transform:translateY(-4px)}.gp-grid[data-v-e4248b2f]{grid-template-columns:repeat(var(--cols),1fr);gap:5px;display:grid}.gp-cell[data-v-e4248b2f]{border:1px solid hsl(var(--border));border-radius:var(--r);background:hsl(var(--card));cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:4px 2px;font-family:inherit;display:flex}.gp-cell.on[data-v-e4248b2f],.gp-cell[data-v-e4248b2f]:hover{border-color:hsl(var(--primary));background:hsl(var(--accent))}.gp-cell.on[data-v-e4248b2f]{box-shadow:0 0 0 1px hsl(var(--primary))}.gp-tpl-grid .gp-cell[data-v-e4248b2f]{color:hsl(var(--foreground));min-height:42px;font-size:10px;line-height:1.1}.gp-ic[data-v-e4248b2f]{border-radius:50%;flex-shrink:0;width:8px;height:8px}.gp-em[data-v-e4248b2f]{font-size:14px;line-height:1}.gp-lb[data-v-e4248b2f]{color:hsl(var(--foreground));font-weight:500}.gp-color-grid .gp-cell[data-v-e4248b2f]{aspect-ratio:1;padding:0}.gp-cell.color[data-v-e4248b2f]{background:var(--c);border-color:#0000}.gp-cell.color[data-v-e4248b2f]:hover{outline:2px solid hsl(var(--primary));outline-offset:-2px}.gp-cell.color.on[data-v-e4248b2f]{outline:2px solid hsl(var(--foreground));outline-offset:-2px;border-color:hsl(var(--primary))}.gp-cell.color svg[data-v-e4248b2f]{stroke:#fff;fill:none;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;width:10px;height:10px}.gp-cell.color:hover svg[data-v-e4248b2f]{stroke:hsl(var(--foreground))}.gp-cell.color.on svg[data-v-e4248b2f]{stroke:#fff}.mosaic-loading{max-width:360px;margin:12vh auto;padding:24px}.mosaic-update button{padding:8px 12px}.mosaic-update{z-index:9999;color:#111;background:#fff;border:1px solid #aaa;border-radius:8px;padding:8px;position:fixed;top:8px;right:8px}
