.main.main-calendar{--sky-soft:#e1ebf0;--violet:#6e5a93;--violet-soft:#eae5f1;--hour:56px;flex-direction:column;max-width:none;height:100dvh;padding:22px 28px 0;display:flex;position:sticky;top:0;overflow:hidden}.main-calendar .btn:disabled{opacity:.5;cursor:not-allowed}.main-calendar .btn.ghost{color:var(--ink);background:0 0}.main-calendar .btn.small{padding:6px 12px;font-size:12.5px}.main-calendar .cal-top{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.main-calendar .cal-title{min-width:0;margin-right:6px;font-family:Fraunces,serif;font-size:24px;font-weight:500}.main-calendar .nav{align-items:center;gap:6px;display:flex}.main-calendar .icon-btn{border:1px solid var(--line);width:32px;height:32px;color:var(--ink);cursor:pointer;background:#fff;border-radius:50%;justify-content:center;align-items:center;display:flex}.main-calendar .icon-btn:hover{border-color:var(--ink-faint)}.main-calendar .icon-btn svg{width:15px;height:15px}.main-calendar .spacer{flex:1}.main-calendar .seg{border:1px solid var(--line);border-radius:20px;display:flex;overflow:hidden}.main-calendar .seg button{font:inherit;color:var(--ink-soft);cursor:pointer;background:#fff;border:none;padding:6px 14px;font-size:12.5px}.main-calendar .seg button.active{background:var(--ink);color:#fff}.main-calendar .cals{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.main-calendar .cal-chip{font:inherit;color:var(--ink-soft);border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:20px;align-items:center;gap:7px;padding:4px 11px;font-size:12px;display:flex}.main-calendar .cal-chip .sw{border-radius:3px;width:9px;height:9px}.main-calendar .cal-chip.off{opacity:.5}.main-calendar .cal-chip.off .sw{border:1.5px solid var(--ink-faint);background:0 0!important}.main-calendar .frame{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-m) var(--radius-m) 0 0;border-bottom:0;flex:1;min-height:0;overflow:auto}.main-calendar .tg{grid-template-columns:56px repeat(var(--cols),minmax(0,1fr));min-width:var(--min,0);display:grid}.main-calendar .tg-head{z-index:4;background:var(--paper-raised);border-bottom:1px solid var(--line);position:sticky;top:0}.main-calendar .tg-corner{border-right:1px solid var(--line)}.main-calendar .day-head{text-align:center;border-right:1px solid var(--line);padding:10px 8px 9px}.main-calendar .day-head:last-child{border-right:0}.main-calendar .dow{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);font-size:11px}.main-calendar .dnum{border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;margin-top:2px;font-family:Fraunces,serif;font-size:17px;display:inline-flex}.main-calendar .day-head.today .dnum{background:var(--accent);color:#fff}.main-calendar .day-head.today .dow{color:var(--accent);font-weight:600}.main-calendar .gutter{height:calc(var(--hours) * var(--hour));border-right:1px solid var(--line);position:relative}.main-calendar .hlabel{color:var(--ink-faint);background:var(--paper-raised);padding:0 2px;font-size:10.5px;position:absolute;right:8px;transform:translateY(-50%)}.main-calendar .hlabel:first-child{display:none}.main-calendar .col{height:calc(var(--hours) * var(--hour));border-right:1px solid var(--line);background-image:linear-gradient(to bottom,var(--line) 1px,transparent 1px), linear-gradient(to bottom,#eceee6 1px,transparent 1px);background-size:100% var(--hour),100% var(--hour);background-position:0 0,0 calc(var(--hour) / 2);position:relative}.main-calendar .col:last-child{border-right:0}.main-calendar .col.today{background-color:#2f6f5e09}.main-calendar .ev{cursor:pointer;border:0;border-left:3px solid var(--c);background:var(--bg);color:var(--ink);text-align:left;border-radius:5px;padding:4px 8px;font-family:inherit;font-size:12px;line-height:1.3;position:absolute;overflow:hidden;box-shadow:0 1px 2px #1c26220f}.main-calendar .ev:hover{filter:brightness(.97);z-index:3}.main-calendar .ev-title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.main-calendar .ev-time{color:var(--ink-soft);font-size:11px}.main-calendar .ev.short .ev-time{display:none}.main-calendar .now-line{border-top:2px solid var(--brick);z-index:3;pointer-events:none;height:0;position:absolute;left:0;right:0}.main-calendar .now-line:before{content:"";background:var(--brick);border-radius:50%;width:10px;height:10px;position:absolute;top:-6px;left:-5px}.main-calendar .month{grid-template-columns:repeat(7,minmax(0,1fr));min-width:640px;display:grid}.main-calendar .mh{text-align:center;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);border-bottom:1px solid var(--line);border-right:1px solid var(--line);background:var(--paper-raised);z-index:2;padding:9px 8px;font-size:11px;position:sticky;top:0}.main-calendar .mh:nth-child(7){border-right:0}.main-calendar .mcell{border-bottom:1px solid var(--line);border-right:1px solid var(--line);cursor:pointer;min-height:104px;font:inherit;text-align:left;color:inherit;background:0 0;flex-direction:column;gap:3px;padding:6px 6px 8px;display:flex}.main-calendar .mcell:nth-child(7n+7){border-right:0}.main-calendar .mcell:hover{background:var(--paper)}.main-calendar .mcell.other .mnum{color:var(--ink-faint);opacity:.6}.main-calendar .mnum{border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:12.5px;display:flex}.main-calendar .mcell.today .mnum{background:var(--accent);color:#fff;font-weight:600}.main-calendar .pill{border-left:3px solid var(--c);background:var(--bg);text-overflow:ellipsis;white-space:nowrap;border-radius:3px;padding:1px 6px;font-size:11px;overflow:hidden}.main-calendar .more{color:var(--ink-faint);padding-left:4px;font-size:11px}.cal-overlay{z-index:80;background:#1c262266;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.cal-modal{border:1px solid var(--line);border-radius:var(--radius-m);width:100%;max-width:420px;color:var(--ink);background:#fff;padding:22px;font-family:IBM Plex Sans,sans-serif;box-shadow:0 20px 50px #1c262240}.cal-modal h2{margin:0 0 14px;font-family:Fraunces,serif;font-size:20px;font-weight:500}.cal-modal .fld{color:var(--ink-soft);flex-direction:column;gap:5px;margin-bottom:12px;font-size:12.5px;font-weight:500;display:flex}.cal-modal input,.cal-modal select{border:1px solid var(--line);height:40px;font:inherit;color:var(--ink);background:#fff;border-radius:3px;width:100%;padding:0 10px;font-size:14px}.cal-modal input:focus,.cal-modal select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.cal-modal .two{grid-template-columns:1fr 1fr;gap:10px;display:grid}.cal-modal .err{color:var(--brick);margin:-4px 0 10px;font-size:12.5px}.cal-modal .acts{gap:8px;margin-top:6px;display:flex}.cal-modal .acts .sp{flex:1}.cal-modal .btn{font:inherit;cursor:pointer;border:1px solid var(--ink);background:var(--ink);color:#fff;border-radius:3px;padding:9px 16px;font-size:13px;font-weight:500}.cal-modal .btn.ghost{color:var(--ink);border-color:var(--line);background:0 0}.cal-modal .btn.danger{color:var(--brick)}.cal-modal .meta-row{color:var(--ink-soft);gap:10px;margin-bottom:8px;font-size:13px;display:flex}.cal-modal .meta-row b{color:var(--ink);font-weight:500}.cal-modal .tag{border-radius:20px;align-items:center;gap:6px;margin-bottom:12px;padding:3px 10px;font-size:12px;display:inline-flex}@media (max-width:1023px){.main.main-calendar{padding:18px 20px 0}}@media (max-width:767px){.main.main-calendar{height:calc(100vh - 64px);height:calc(100dvh - 64px - env(safe-area-inset-bottom,0px));padding:14px 12px 0;position:static}.main-calendar .cal-title{order:-1;width:100%;font-size:20px}.main-calendar .cal-top{gap:8px}.main-calendar .spacer{display:none}.main-calendar .seg{margin-left:auto}.main-calendar .cals{scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.main-calendar .cals::-webkit-scrollbar{display:none}.main-calendar .cal-chip{flex-shrink:0}.main-calendar .tg{--min:700px}.main-calendar .tg.single{--min:0}.main-calendar .mcell{min-height:84px;padding:4px}.cal-overlay{align-items:flex-end;padding:0}.cal-modal{border-radius:var(--radius-m) var(--radius-m) 0 0;max-width:none;padding:20px 18px calc(20px + env(safe-area-inset-bottom,0px))}.cal-modal input,.cal-modal select{font-size:16px}}
