:root{color-scheme:light;font-family:"Instrument Sans","Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;color:#262437;background:#f7f7fb;--line:#e9e7f0;--muted:#6c697e;--purple:#5b42c8;--soft:#eeebff}*{box-sizing:border-box}body{margin:0}header{height:66px;border-bottom:1px solid var(--line);background:white;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1170px)/2))}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit;font-weight:800;font-size:20px;white-space:nowrap}.brand b{display:grid;place-items:center;background:var(--purple);color:#fff;width:33px;height:33px;border-radius:10px}.sample{font-size:12px;color:var(--muted);background:#f1eff7;padding:6px 11px;border-radius:20px;white-space:nowrap}main{max-width:1218px;margin:auto;padding:38px 24px 44px}.intro{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:22px}h1,h2,p{margin:0}h1{font-size:clamp(27px,4vw,39px);letter-spacing:-.06em}p{color:var(--muted);line-height:1.55;font-size:14px}.intro p{margin-top:6px}.groups,.nav{display:flex;gap:6px;flex-wrap:wrap}.groups{padding:4px;background:#eeedf5;border-radius:12px;flex-shrink:0}button,select{font:inherit;color:inherit;border:1px solid var(--line);border-radius:9px;background:white;cursor:pointer}button{padding:8px 12px}button:hover,select:hover{border-color:#a297d2}button:focus-visible,select:focus-visible{outline:2px solid var(--purple);outline-offset:2px}.groups button{background:transparent;border-color:transparent;font-size:14px}.groups button[aria-pressed=true]{background:white;color:var(--purple);box-shadow:0 1px 4px #26243716;font-weight:700}.layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start}.card{background:white;border:1px solid var(--line);border-radius:17px;overflow:hidden}.bar{display:flex;align-items:center;justify-content:space-between;padding:18px 17px;gap:6px}.bar h2{font-size:24px}.bar span{font-size:12px;color:var(--muted)}.week,.grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.week span{text-align:center;font-size:12px;color:var(--muted);padding:9px 2px;background:#faf9fe}.week span:first-child,.holiday{color:#a32f4d}.grid{border-top:1px solid var(--line)}.cell{display:flex;flex-direction:column;gap:4px;min-width:0;min-height:83px;text-align:left;padding:7px;border:0;border-bottom:1px solid var(--line);border-right:1px solid var(--line);border-radius:0}.cell:nth-child(7n){border-right:0}.cell[aria-pressed=true]{background:#f3f0ff;box-shadow:inset 0 0 0 1px #aa9aee}.cell:hover{background:#f7f5ff}.blank{background:#fcfbff;border-bottom:1px solid var(--line);border-right:1px solid var(--line)}.number{font-size:13px;font-weight:700}.pill{font-size:11px;border-radius:5px;background:var(--soft);color:#4d36aa;padding:3px 4px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pill.holiday{background:#fff0f3;color:#a32f4d}.pill.busy{background:#efedf3;color:#514c63}.pill.vacation{background:#e4f5ed;color:#256647}.day{min-height:80px;padding:13px 17px}.day strong{font-size:14px}.day p{margin-top:4px}aside{display:grid;gap:16px}aside section{padding:17px}aside h2{font-size:18px;letter-spacing:-.04em}aside p{margin:5px 0 11px}aside label{display:block;font-size:12px;color:var(--muted);margin-bottom:4px}aside select{width:100%;padding:8px 9px}#recommendations{display:grid;gap:7px;margin-top:10px}.recommend{text-align:left;background:#f8f6ff;display:grid;gap:3px}.recommend strong{color:#4d36aa;font-size:14px}.recommend span,.preview{color:var(--muted);font-size:12px}.policy{display:grid;grid-template-columns:42px 1fr;gap:5px;align-items:center;margin-top:8px}.policy label{margin:0}.preview{margin:4px 0 1px 47px;overflow-wrap:anywhere}@media(max-width:780px){.layout{grid-template-columns:1fr}aside{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){header{height:55px;padding:0 14px}main{padding:23px 10px}.intro{align-items:start;flex-direction:column;margin-bottom:14px}.cell{min-height:64px;padding:4px 3px}.pill{font-size:9px;padding:2px}.bar{padding:13px 9px}.bar h2{font-size:20px}.nav button{padding:6px 8px}aside{grid-template-columns:1fr}}
main{max-width:1440px}.layout{grid-template-columns:160px minmax(0,1fr) 310px}.sidebar{padding:20px 8px}.sidebar h2{font-size:13px;color:var(--muted);margin-bottom:18px}.sidebar .groups{display:grid;background:transparent;padding:0}.sidebar .groups button{text-align:left;padding:13px}.sidebar .groups button[aria-pressed=true]{background:var(--soft);box-shadow:none}.sidebar p{margin:32px 12px 16px}.sidebar small{display:block;color:var(--muted);line-height:1.8;margin:12px}.cell{min-height:105px}.weekend .number{color:#a32f4d}.cell.rest{background:#f0faf5}.cell[aria-pressed=true]{box-shadow:inset 0 0 0 2px var(--purple)}.legend{font-size:12px;padding:16px;color:var(--muted)}.detail .day{padding:14px 0}.detail .day strong{font-size:21px}.detail .day p{line-height:1.8}#close-detail{display:none}footer{font-size:12px;color:var(--muted);padding:24px 0;text-align:center}.recommend{padding:14px 12px}.recommend strong{font-size:16px}.intro{margin-bottom:28px}.sharing{margin-top:4px}.cell[aria-current=date] .number{background:var(--purple);color:white;border-radius:20px;padding:2px 5px}
@media(max-width:1100px) and (min-width:781px){.layout{grid-template-columns:110px minmax(0,1fr) 270px}.cell{padding:4px}}
@media(max-width:780px){.layout{grid-template-columns:1fr}.sidebar{padding:0}.sidebar h2,.sidebar p,.sidebar small{display:none}.sidebar .groups{display:flex}.sidebar .groups button{flex:1;text-align:center;padding:12px 8px}.cell{min-height:85px}aside{grid-template-columns:1fr}.detail{display:none}.detail.open{display:block;position:fixed;bottom:0;left:0;right:0;z-index:10;box-shadow:0 -12px 80px #26243740;border-radius:22px 22px 0 0;padding:24px;padding-bottom:calc(24px + env(safe-area-inset-bottom))}#close-detail{display:block;float:right;min-height:44px}.intro p{max-width:300px}.nav button{min-height:44px}.bar h2{font-size:20px}}
:root{--group:#654bc9}body[data-group="1"]{--group:#a35035}body[data-group="2"]{--group:#277665}body[data-group="3"]{--group:#3d67b2}.sidebar .groups button[aria-pressed=true]{color:var(--group)}.sidebar .groups button::before{content:'●';margin-right:8px;color:var(--group)}button.primary{background:#6046c7;color:white;border-color:#6046c7;font-weight:700;min-height:44px;padding:12px 20px}.intro{align-items:center}.legend{display:flex;gap:14px}.holiday-key{color:#a32f4d}.leave-key{color:#256647}.event-row{padding:14px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:5px}.event-row .event-time{grid-column:1/-1;font-size:12px;color:var(--group)}.event-row strong{font-size:15px!important;overflow-wrap:anywhere}.event-row p{grid-column:1/-1;white-space:pre-wrap;overflow-wrap:anywhere}.edit-button{font-size:12px}.day-add{margin-top:16px;color:var(--purple);width:100%;min-height:44px}.detail{max-height:65vh;overflow:auto}.mobile-nav{display:none}dialog{width:min(480px,calc(100% - 24px));border:1px solid var(--line);border-radius:22px;padding:24px;color:#262437;max-height:90dvh;overflow:auto}dialog::backdrop{background:#211b3e66;backdrop-filter:blur(3px)}.editor-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.editor-heading h2{font-size:23px}dialog label{display:block;font-size:13px;font-weight:600;margin:18px 0 7px}dialog input,dialog select,dialog textarea{width:100%;min-width:0;background:#fbfaff;border:1px solid #dcd8e9;border-radius:10px;padding:11px;font:inherit;color:inherit;font-size:16px}dialog input:focus-visible,dialog textarea:focus-visible{outline:2px solid var(--purple)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-row>div{min-width:0}.save-hint{font-size:12px;margin-top:8px}.editor-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}#delete-event{color:#a32f4d;margin-right:auto}#form-error{color:#a32f4d;margin-top:10px}#notice:not(:empty){position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#302946;color:white;padding:12px 20px;border-radius:12px;font-size:13px;z-index:30;max-width:90vw;pointer-events:none}
@media(max-width:780px){main{padding-top:20px;padding-bottom:100px}.intro{flex-direction:row;align-items:center;gap:8px}.intro h1{font-size:25px}.intro p{font-size:12px}.intro .primary{font-size:13px;padding:10px 12px;white-space:nowrap}.cell{min-height:66px}.sidebar .groups button{font-size:13px}.sidebar .groups button::before{margin-right:4px}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);padding:8px 12px calc(8px + env(safe-area-inset-bottom));z-index:11;gap:8px}.mobile-nav button{flex:1;min-height:44px;border:0;color:var(--muted);font-size:13px}.mobile-nav button[aria-pressed=true]{background:var(--soft);color:var(--purple);font-weight:700}body[data-panel="calendar"] #leave-panel,body[data-panel="calendar"] #sharing-panel{display:none}body[data-panel="leave"] .calendar,body[data-panel="leave"] .sidebar,body[data-panel="leave"] #sharing-panel{display:none}body[data-panel="sharing"] .calendar,body[data-panel="sharing"] .sidebar,body[data-panel="sharing"] #leave-panel{display:none}.detail.open{bottom:72px;max-height:60dvh}#notice:not(:empty){bottom:82px;width:max-content}.sample{font-size:10px}.brand{font-size:18px}dialog{padding:20px}.calendar .legend{font-size:11px}}
.sidebar .groups button:nth-child(1)::before{color:#654bc9}.sidebar .groups button:nth-child(2)::before{color:#a35035}.sidebar .groups button:nth-child(3)::before{color:#277665}.sidebar .groups button:nth-child(4)::before{color:#3d67b2}
/* Reference-led calendar: compact chrome, colored event strips, persistent add. */
#choose-month{display:flex;align-items:center;gap:10px;border:0;background:transparent;padding:0;min-height:44px;font-weight:750;letter-spacing:-.04em}#choose-month #month{font-size:24px;color:#262437}#choose-month span:last-child{font-size:20px;color:var(--muted)}.bar #group-caption{color:var(--group)}.cell{border-right:0;gap:3px;padding:7px 2px;min-height:108px}.cell .number{align-self:center;display:grid;place-items:center;min-width:24px;height:24px;margin-bottom:3px;border-radius:50%;font-size:13px}.cell[aria-pressed=true]{box-shadow:none;background:#f5f3fb}.cell[aria-pressed=true] .number{background:#6350c8;color:white}.cell.saturday .number{color:#3563ba}.cell.saturday[aria-pressed=true] .number{color:white}.cell[aria-current=date] .number{box-shadow:0 0 0 2px #6350c8}.blank{border-right:0;background:#fdfcfe}.pill{border-radius:3px;width:100%;padding:3px 4px;font-weight:600;font-size:11px;line-height:1.25}.event-pill[data-calendar="0"]{background:#e5ddfa;color:#49318b}.event-pill[data-calendar="1"]{background:#ffe0c7;color:#854020}.event-pill[data-calendar="2"]{background:#ccede5;color:#185e50}.event-pill[data-calendar="3"]{background:#d8e8ff;color:#294f8b}.pill.busy{background:#ececf1;color:#5a5966}.more-events{font-size:10px;color:var(--muted);text-align:center}.week span{background:white;padding:12px 0}.week span:last-child{color:#3563ba}.sidebar .groups button{border-radius:24px}.event-row{border-left:3px solid var(--group);padding:12px;margin-top:12px;background:#faf9fc;border-radius:0 10px 10px 0}.detail h2{color:var(--muted);font-size:13px}.detail .day strong{font-size:24px}.detail .day{padding-top:10px}
@media(max-width:780px){body{background:#faf9fd}header{height:52px;padding:0 18px;border:0;background:#faf9fd}.brand b{width:26px;height:26px;border-radius:8px;font-size:18px}.brand{font-size:18px}.sample{background:transparent;padding:0;font-size:10px}main{padding:0 0 90px}.intro{display:none}.layout{gap:0}.sidebar{padding:7px 14px 12px}.sidebar .groups{gap:8px}.sidebar .groups button{padding:8px 9px;min-height:40px;font-weight:600;border:1px solid #e7e3ee;background:white;font-size:12px;flex:1}.sidebar .groups button[aria-pressed=true]{background:#e9e3fc;border-color:#d4c8f4}.calendar{border-radius:20px 20px 0 0;border:0;border-top:1px solid var(--line);min-height:0}.bar{padding:10px 16px 3px}.bar #choose-month #month{font-size:22px}.bar #group-caption{font-size:11px}.nav{gap:0}.nav button{border:0;background:transparent;min-width:36px;font-size:22px}.nav #today{font-size:12px;border:1px solid var(--line);border-radius:20px;padding:5px 12px;min-height:32px;margin-right:5px}.week span{padding:12px 0 8px;font-size:11px}.grid{grid-auto-rows:minmax(100px,calc((100svh - 350px)/var(--weeks)));border-top:0}.cell{min-height:0;padding:4px 1px;gap:2px;overflow:hidden}.cell .number{font-size:12px;height:22px;min-width:22px;margin-bottom:1px}.pill{font-size:10px;padding:3px 2px}.legend{padding:12px 14px;border-top:1px solid var(--line);font-size:10px}.mobile-nav{padding:7px 8px calc(7px + env(safe-area-inset-bottom));gap:4px;background:#fffffff5;backdrop-filter:blur(14px)}.mobile-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:51px;font-size:10px;padding:3px;border-radius:12px}.mobile-nav button>span{font-size:23px;line-height:25px}.mobile-nav #mobile-add{color:var(--purple)}.mobile-nav #mobile-add>span{display:grid;place-items:center;width:34px;height:30px;background:#6350c8;color:white;border-radius:11px;font-size:28px}.mobile-nav button[aria-pressed=true]{background:transparent;color:#5942bc}.detail.open{bottom:76px;border-radius:24px 24px 0 0;box-shadow:0 -20px 90px #29213d40;padding-top:26px}.detail.open::before{content:'';position:absolute;top:10px;left:calc(50% - 20px);width:40px;height:4px;border-radius:3px;background:#d9d5e3}#side-panels{gap:0}#leave-panel,#sharing-panel{margin:12px;border-radius:18px;padding:22px}footer{margin:0;padding:15px 18px;font-size:10px;background:#faf9fd;text-align:left}body[data-panel="calendar"] footer{padding-top:10px}dialog{border-radius:24px}#notice:not(:empty){bottom:90px}}
