@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;600;700;800&display=swap');
:root{--ink:#172330;--muted:#7d8792;--line:#e8ebef;--blue:#2461ee;--bg:#f6f8fa}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font-family:'Noto Sans KR',sans-serif;font-size:14px;letter-spacing:-.35px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button{border:0;background:none;color:inherit}button:focus-visible,a:focus-visible{outline:3px solid #7ca4ff;outline-offset:3px}button:hover{filter:brightness(.96)}.site-header{height:88px;padding:0 4.3%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#fff}.brand{display:flex;align-items:center;gap:13px;font-size:19px;font-weight:800}.brand-mark{font-size:33px;font-weight:800;line-height:1;letter-spacing:-4px;background:var(--ink);color:#fff;border-radius:13px;padding:5px 14px 10px 10px}.brand-mark span{color:#8ae0c1}.brand small{font-weight:400;font-size:13px;border-left:1px solid #dce1e5;margin-left:17px;padding-left:17px;color:#75808b}.header-right{display:flex;align-items:center;gap:8px;font-size:12px;color:#7b858e}.live-dot,.green-dot{background:#2caf83;width:6px;height:6px;border-radius:50%;display:inline-block}.text-button{font-size:13px;color:var(--ink);margin-left:25px;border-left:1px solid var(--line);padding-left:25px}.text-button span{margin-left:12px}main{max-width:1600px;margin:auto;padding:44px 4.3% 0}.intro{display:flex;align-items:center;justify-content:space-between;margin-bottom:31px}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:700;color:#7c8995}h1{font-size:32px;letter-spacing:-1.7px;margin:12px 0 10px;font-weight:800}p{line-height:1.8}.intro p{font-size:13px;color:#78818a;margin:0}.primary,.secondary{padding:12px 19px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;font-weight:600;font-size:13px}.primary{background:var(--blue);color:#fff;box-shadow:0 4px 8px #2461ee12}.primary span{font-size:21px;line-height:1}.secondary{border:1px solid #dfe4e9;background:#fff}.summary{border:1px solid var(--line);background:var(--surface);border-radius:12px;display:grid;grid-template-columns:repeat(3,1fr);padding:23px 0;margin-bottom:32px}.summary>div{padding:0 28px;border-right:1px solid var(--line)}.summary>div:last-child{border:0}.stat-label{display:block;font-size:12px;color:#65717d}.stat-label i{margin-right:5px}.summary strong{font-size:30px;font-weight:700;display:inline-block;margin:7px 11px 0 0;letter-spacing:-1px}.summary small{font-size:10px;color:#a0a7ae}.summary-note{display:flex;align-items:center;gap:16px}.note-symbol{font-size:30px;color:#2e69f3;background:#edf3ff;border-radius:50%;width:48px;height:48px;text-align:center;line-height:45px}.summary-note p{margin:0;font-size:11px;color:#8b929a}.summary-note b{font-weight:500;color:#465362}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:26px}.calendar-main{border:1px solid var(--line);background:var(--surface);border-radius:12px;overflow:hidden}.toolbar{padding:24px 23px 21px;display:flex;align-items:center;justify-content:space-between}.month-nav{display:flex;align-items:center;gap:8px}.month-nav h2{font-size:23px;margin:0 18px 0 0;letter-spacing:-.9px}.icon-btn{border:1px solid var(--line);border-radius:5px;height:28px;width:28px;font-size:22px;line-height:20px;color:#66717d}.today-btn{border:1px solid var(--line);border-radius:5px;padding:5px 11px;font-size:11px;margin-left:4px}.view-switch{padding:3px;background:#f1f3f6;border-radius:6px;display:flex}.view-switch button{font-size:11px;padding:6px 13px;color:#8b9299;border-radius:4px}.view-switch .selected{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #0001}.filter-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 23px 15px}.pills{display:flex;gap:7px}.pills button{padding:7px 12px;border:1px solid var(--line);border-radius:30px;font-size:11px;color:#78828c}.pills .active{background:var(--ink);border-color:var(--ink);color:#fff}.search{border:1px solid var(--line);border-radius:6px;display:flex;align-items:center;padding:6px 10px;width:210px;gap:6px;color:#8c96a1}.search span{font-size:20px;line-height:1}.search input{min-width:0;width:100%;border:0;outline:0;font-size:11px;background:transparent}.category-row{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;gap:17px;align-items:center;padding:13px 24px;font-size:10px;color:#9aa2ab}.category-row>span{margin-right:2px}.category-row button{padding:0;font-size:11px;color:#8b949e}.category-row .active{color:var(--blue);font-weight:700}.weekdays{display:grid;grid-template-columns:repeat(7,1fr);padding:13px 0;text-align:center;font-size:10px;color:#8a939c;border-bottom:1px solid var(--line)}.weekdays span:first-child{color:#dc7f7f}.weekdays span:last-child{color:#779ee4}.cal-week{position:relative;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1px solid var(--line);min-height:142px}.day-cell{border-right:1px solid var(--line);padding:9px 11px;min-width:0}.day-cell:last-of-type{border-right:0}.day-number{font-size:11px;display:inline-flex;align-items:center;justify-content:center;width:23px;height:23px}.day-cell.outside{background:#fafbfc;color:#c4cbd1}.day-cell.today{background:#f8fbff}.today .day-number{background:var(--blue);color:#fff;border-radius:50%}.day-cell.sunday:not(.outside):not(.today) .day-number{color:#d77e7e}.day-cell.saturday:not(.outside):not(.today) .day-number{color:#6b94d5}.event-layer{position:absolute;top:40px;left:0;right:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px 0;pointer-events:none;padding:0 0 10px}.event-bar{pointer-events:auto;height:27px;align-self:start;display:flex;gap:6px;align-items:center;border-radius:4px;padding:0 8px;margin:0 4px;font-size:10px;white-space:nowrap;overflow:hidden;border-left:3px solid var(--event-color);color:var(--event-ink);background:var(--event-bg);transition:box-shadow .16s,transform .16s}.event-bar:hover{box-shadow:0 3px 7px #20354e22;transform:translateY(-1px)}.event-bar .event-text{overflow:hidden;text-overflow:ellipsis}.event-bar .arrow{margin-left:auto;font-size:12px}.event-bar.expired{opacity:.46}.flight{--event-color:#5e8ef5;--event-bg:#edf3ff;--event-ink:#315ea7}.hotel{--event-color:#41b69a;--event-bg:#eaf8f3;--event-ink:#238269}.tour{--event-color:#9b79de;--event-bg:#f3eefa;--event-ink:#7954b7}.coupon{--event-color:#eca94b;--event-bg:#fff5e5;--event-ink:#aa7830}.calendar-footer{padding:15px 18px;display:flex;justify-content:space-between;gap:10px;color:#a0a7ae;font-size:9px}.legend{display:flex;gap:14px}.legend>span{display:flex;align-items:center;gap:5px}.swatch{width:6px;height:6px;border-radius:2px}.blue{background:#5e8ef5}.mint{background:#41b69a}.violet{background:#9b79de}.amber{background:#eca94b}.side-heading{padding:6px 0 15px}.side-heading h2{font-size:19px;margin:10px 0 5px;letter-spacing:-.8px}.side-heading p{color:#959da5;font-size:11px;margin:0}.side-card{display:block;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:16px;margin-bottom:10px;transition:transform .15s,border-color .15s}.side-card:hover{transform:translateY(-2px);border-color:#b9cbef}.side-card .card-top{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:10px;color:#949da6}.badge{font-size:9px;border-radius:4px;padding:3px 6px;color:var(--event-ink);background:var(--event-bg)}.side-card h3{font-size:13px;line-height:1.6;margin:10px 0 7px;font-weight:600}.side-card .benefit{font-size:11px;color:#2d68eb;font-weight:600;margin:0}.side-card .card-bottom{font-size:10px;color:#9da5ad;display:flex;justify-content:space-between;padding-top:12px;margin-top:12px;border-top:1px dashed var(--line)}.card-bottom b{font-weight:500;color:#606e7b}.tip-card{background:#eaf0f7;border-radius:10px;padding:20px;margin-top:20px}.tip-label{font-size:9px;color:#7890ac}.tip-card h3{font-size:13px;margin:10px 0 8px}.tip-card p{font-size:11px;color:#8593a3;margin:0}.source-note{font-size:10px;color:#a4abb2;line-height:1.8;margin:17px 4px}footer{margin-top:38px;border-top:1px solid var(--line);padding:22px 0;display:flex;justify-content:space-between;gap:20px;font-size:10px;color:#929ca5}footer b{margin-right:8px;color:#667480}footer p{margin:0}.mobile-only{display:none}dialog{border:0;border-radius:15px;box-shadow:0 30px 100px #152a4f40;padding:28px;width:min(560px,94vw);max-height:91vh;color:var(--ink)}dialog::backdrop{background:#10213c70;backdrop-filter:blur(4px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.dialog-heading h2{margin:8px 0 0;font-size:22px}.close-btn{font-size:25px;color:#7f8c99;padding:0 5px}form>label,.form-row label{display:flex;flex-direction:column;gap:7px;font-size:11px;font-weight:500;margin-bottom:14px}input:not([type=file]),select,textarea{border:1px solid #dce2e9;border-radius:6px;padding:10px;width:100%;color:var(--ink);background:var(--surface);font-size:12px}input:focus,textarea:focus,select:focus{outline:2px solid #aac3ff;outline-offset:1px}.search input{padding:0;border:0;font-size:11px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.optional{font-size:10px;font-weight:400;color:#a6afb7}.storage-notice{font-size:11px;color:#89939d;line-height:1.7;background:#f4f6f9;padding:11px 13px;border-radius:6px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:17px}#formError{font-size:11px;color:#ca4141;margin:0}#manager{width:min(760px,95vw)}.manager-toolbar{display:flex;gap:7px;flex-wrap:wrap;margin:18px 0}.upload-label{cursor:pointer}.manage-row{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-top:1px solid var(--line);gap:12px}.manage-row strong{display:block;font-size:12px;font-weight:600}.manage-row small{font-size:10px;color:#939da7;display:block;margin-top:4px}.manage-row .actions{display:flex;gap:10px;flex-shrink:0}.manage-row button{font-size:11px;color:#6d8297}.manage-row button.danger{color:#c98181}.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);z-index:10;background:var(--ink);color:#fff;padding:12px 23px;border-radius:8px;font-size:12px;box-shadow:0 5px 20px #0002}.empty-state{padding:65px 20px;text-align:center;color:#9aa4ae;font-size:13px}.list-event{margin:0 20px;padding:20px 0;display:flex;align-items:center;border-bottom:1px solid var(--line);gap:20px}.list-date{width:98px;flex-shrink:0;color:#7b8a99;font-size:11px}.list-copy{flex:1;min-width:0}.list-copy h3{font-size:13px;margin:7px 0}.list-copy p{font-size:11px;color:#88939f;margin:0}.list-arrow{font-size:20px;color:#5c83c7}.list-event.expired{opacity:.5}[hidden]{display:none!important}
@media(min-width:1500px){.cal-week{min-height:165px}.event-bar{font-size:11px;height:29px}.event-layer{gap:7px 0}.workspace{grid-template-columns:minmax(0,1fr) 285px}}
@media(max-width:1100px){.workspace{grid-template-columns:minmax(0,1fr) 225px;gap:18px}.summary>div{padding:0 18px}.summary-note{gap:8px}.summary-note .note-symbol{display:none}.summary small{display:block}.event-bar{padding:0 4px;font-size:9px}.legend{gap:7px}.search{width:175px}.month-nav h2{font-size:20px;margin-right:7px}.side-heading h2{font-size:17px}}
@media(max-width:820px){.workspace{grid-template-columns:1fr}aside{display:none}.summary-note{display:none!important}.summary{grid-template-columns:repeat(3,1fr)}.summary>div:nth-child(3){border:0}.brand small{display:none}.header-right>span{display:none}.site-header{height:70px}.intro h1{font-size:27px}.intro{align-items:flex-start}.intro>.primary{margin-top:25px}.calendar-main{border-radius:9px}.cal-week{min-height:135px}main{padding-top:30px}.event-bar{font-size:10px}.header-right .text-button{border:0;padding:0;margin:0}.summary strong{font-size:27px}.calendar-footer{font-size:9px}footer{display:block}footer p{margin-top:8px}}
@media(max-width:520px){main{padding:25px 16px 0}.site-header{padding:0 18px}.brand{font-size:17px}.brand-mark{font-size:27px;border-radius:10px;padding:5px 12px 8px 8px}.eyebrow{font-size:8px}.intro{position:relative;margin-bottom:24px}.intro h1{font-size:23px;letter-spacing:-1.2px;margin-top:10px}.intro p{font-size:11px;line-height:1.9}.intro>.primary{position:absolute;right:0;top:-5px;padding:5px 9px;font-size:10px;margin:0}.intro>.primary span{font-size:16px}.intro>.primary{transform:translateY(-6px)}.intro .eyebrow{padding-top:5px}.summary{padding:17px 0;margin-bottom:20px}.summary>div{padding:0 12px}.summary strong{font-size:25px}.stat-label{font-size:10px}.summary small{font-size:8px;line-height:1.6}.summary .stat-label i{display:none}.toolbar{padding:17px 12px}.month-nav{gap:4px}.month-nav h2{font-size:18px}.icon-btn{height:25px;width:25px}.today-btn{font-size:10px;padding:5px 7px}.view-switch button{font-size:10px;padding:5px 9px}.filter-row{padding:0 12px 12px;flex-wrap:wrap}.pills button{font-size:10px;padding:6px 11px}.search{width:100%;margin-top:5px;padding:7px 10px}.category-row{gap:12px;padding:12px;font-size:9px}.category-row button{font-size:10px}.day-cell{padding:5px 2px}.day-number{font-size:10px;width:21px;height:21px}.cal-week{min-height:105px}.event-layer{top:31px;gap:4px 0}.event-bar{height:24px;font-size:8px;border-left-width:2px;margin:0 1px;padding:0 3px;gap:2px}.event-bar .arrow{display:none}.calendar-footer{display:block;font-size:8px;padding:12px}.legend{gap:11px;margin-bottom:9px}.weekdays{font-size:9px}.list-event{margin:0 12px;gap:12px}.list-date{width:70px;font-size:10px}.list-copy h3{font-size:12px}.list-copy p{font-size:10px}.mobile-only{display:initial}.manager-toolbar .primary,.manager-toolbar .secondary{padding:9px;font-size:11px}dialog{padding:22px}.manage-row .actions{gap:4px}.manage-row strong{font-size:11px}.manage-row small{font-size:9px}}

/* Keep calendar text readable at every screen size. */
.calendar-main .weekdays,.calendar-main .day-number,.calendar-main .event-bar,.calendar-main .event-bar .arrow,.calendar-main .list-date,.calendar-main .list-copy h3,.calendar-main .list-copy p{font-size:16px}

.affiliate-notice{background:#d8f3e5;color:#14563f;border-bottom:2px solid #8bd1af;padding:22px 5%;font-size:20px;font-weight:700;line-height:1.65;text-align:center}.admin-status{font-size:14px;color:#53677c;margin:0 0 15px}#calendarMessage{color:#b54635}#trashList h3{margin-top:28px;font-size:16px}#trashList button{font-size:13px;color:#2461ee}@media(max-width:520px){.affiliate-notice{font-size:18px;padding:18px 16px}}

/* Region, category filters and search match the calendar typography. */
.calendar-main .pills button,.calendar-main .category-row,.calendar-main .category-row button,.calendar-main .search input{font-size:16px}
.calendar-main .filter-row,.calendar-main .category-row{flex-wrap:wrap}
.calendar-main .search{width:280px;max-width:100%}
@media(max-width:520px){.calendar-main .search{width:100%}}

.admin-login{max-width:560px;padding-top:48px}.login-back{font-size:16px;color:#53677c}.login-card{margin:24px 0;padding:32px;background:var(--surface);border:1px solid var(--line);border-radius:14px}.login-card h1{font-size:28px}.login-card p,.login-card label,.login-card input,.login-card button,.login-card a{font-size:16px}.login-card label{display:block;margin:24px 0 8px}.login-card form>.primary{width:100%;margin-top:10px}.login-card #ownerSignIn{display:block;margin-top:24px;color:#2461ee}#loginError{color:#b54635;min-height:25px}.login-card button:disabled{opacity:.55;cursor:wait}

/* Readable promotion cards and guidance in the sidebar. */
.workspace aside .eyebrow,.workspace aside .side-heading p,.workspace aside .side-card .card-top,.workspace aside .badge,.workspace aside .side-card .benefit,.workspace aside .side-card .card-bottom,.workspace aside .tip-label,.workspace aside .tip-card p,.workspace aside .source-note{font-size:16px}
.workspace aside .side-card h3,.workspace aside .tip-card h3{font-size:18px}
.workspace aside .side-heading h2{font-size:22px}
.workspace aside .side-card .card-top,.workspace aside .side-card .card-bottom{flex-wrap:wrap;gap:8px}

/* Shared surfaces and theme controls. */
:root{color-scheme:light;--surface:#fff;--subtle:#f1f4f8;--input-bg:#fff;--accent:#2461ee;--outside:#fafbfc;--outside-ink:#a2adb8;--today-bg:#f0f6ff;--notice-bg:#d8f3e5;--notice-ink:#14563f;--notice-border:#8bd1af;--danger:#b33d48}
:root[data-theme="night"]{color-scheme:dark;--ink:#edf2f8;--muted:#b1bed0;--line:#334257;--blue:#356de0;--bg:#0d1420;--surface:#172131;--subtle:#202e42;--input-bg:#101a29;--accent:#96baff;--outside:#111a28;--outside-ink:#738399;--today-bg:#1b2f4d;--notice-bg:#123b2e;--notice-ink:#c6f8df;--notice-border:#2e7558;--danger:#ff9da5}
.site-header{height:auto;min-height:88px;padding-top:16px;padding-bottom:16px;gap:16px;flex-wrap:wrap}
.header-right{flex-wrap:wrap;justify-content:flex-end;gap:12px}
.theme-switch{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:9px;background:var(--subtle)}
.theme-switch button{font-size:16px;line-height:1.4;padding:7px 12px;border-radius:6px;color:var(--muted)}
.theme-switch button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 4px #0002;font-weight:700}
.login-theme{display:flex;justify-content:flex-end;max-width:1600px;margin:auto;padding:20px 4.3% 0}
.site-header,.summary,.calendar-main,.side-card,.secondary,dialog,.login-card{background:var(--surface)}
.brand-mark{background:#172330;color:#fff}
.brand small,.header-right,.eyebrow,.intro p,.stat-label,.summary small,.summary-note p,.summary-note b,.pills button,.search,.category-row,.category-row button,.weekdays,.calendar-footer,.side-heading p,.side-card .card-top,.side-card .card-bottom,.card-bottom b,.tip-label,.tip-card p,.source-note,.storage-notice,.manage-row small,.manage-row button,.optional,.list-date,.list-copy p,.empty-state,.admin-status,.login-back{color:var(--muted)}
.brand small,.text-button,.secondary,input:not([type=file]),select,textarea{border-color:var(--line)}
input:not([type=file]),select,textarea{background:var(--input-bg);color:var(--ink)}
.search input{background:transparent}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:.8}
.view-switch,.tip-card,.storage-notice,.note-symbol{background:var(--subtle)}
.view-switch button{color:var(--muted)}
.view-switch .selected{background:var(--surface);color:var(--ink)}
.pills .active{background:var(--ink);color:var(--bg)}
.category-row .active,.side-card .benefit,.list-arrow,#trashList button,.login-card #ownerSignIn{color:var(--accent)}
.day-cell.outside{background:var(--outside);color:var(--outside-ink)}
.day-cell.today{background:var(--today-bg)}
.affiliate-notice{background:var(--notice-bg);color:var(--notice-ink);border-color:var(--notice-border)}
#formError,#managerMessage,#calendarMessage,#loginError,.manage-row button.danger{color:var(--danger)}
.toast{background:var(--surface);color:var(--ink);border:1px solid var(--line)}
:root[data-theme="night"] .flight{--event-bg:#203754;--event-ink:#b2d1ff;--event-color:#6ea7ff}
:root[data-theme="night"] .hotel{--event-bg:#183c35;--event-ink:#a0e8d3;--event-color:#5acbad}
:root[data-theme="night"] .tour{--event-bg:#352b4b;--event-ink:#d5baff;--event-color:#b293ec}
:root[data-theme="night"] .coupon{--event-bg:#42351f;--event-ink:#f5d49c;--event-color:#f1bd6b}
:root[data-theme="night"] .event-bar.expired,:root[data-theme="night"] .list-event.expired{opacity:.65}
/* Larger text throughout schedule management. */
#manager,#editor{font-size:16px}
#manager .storage-notice,#manager .primary,#manager .secondary,#manager .manage-row small,#manager .manage-row button,#manager #trashList button,#managerMessage,#editor label,#editor input,#editor select,#editor textarea,#editor .optional,#editor .storage-notice,#editor .primary,#editor .secondary,#formError{font-size:16px}
#manager .manage-row strong{font-size:18px;line-height:1.6}
#manager .manage-row small{line-height:1.7}
#manager .eyebrow,#editor .eyebrow{font-size:14px}
#manager .dialog-heading h2,#editor .dialog-heading h2{font-size:26px}
#manager #trashList h3{font-size:22px}
#manager .manage-row{padding:18px 0;flex-wrap:wrap}
#manager .actions{gap:12px}
#manager .manage-row button{padding:8px 10px}
#manager .manager-toolbar{gap:10px}
#manager .close-btn,#editor .close-btn{font-size:30px}
footer{display:block;text-align:center;font-size:16px;color:var(--muted);padding:28px 0}
footer p{margin:0;font-size:16px;line-height:1.9}
@media(max-width:520px){.site-header{min-height:70px}.header-right{gap:8px}.theme-switch button{padding:6px 10px}#manager .manager-toolbar .primary,#manager .manager-toolbar .secondary{font-size:16px;white-space:normal}#manager .manage-row .actions{gap:8px}.form-row{grid-template-columns:1fr}}

.icon-btn,.today-btn,.text-button{color:var(--ink)}

.brand-icon{display:block;width:48px;height:48px;flex-shrink:0;object-fit:contain;border-radius:10px}@media(max-width:520px){.brand-icon{width:42px;height:42px;border-radius:9px}}

.brand-icon{object-position:center center;align-self:center}

/* Mobile usability: keep page width stable and make touch controls readable. */
.calendar-swipe-hint{display:none}
.calendar-scroll:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}
@media(max-width:820px){
  .intro p{font-size:16px;line-height:1.8}
  .theme-switch button,.text-button,.primary,.secondary,.close-btn{min-height:44px}
  .icon-btn{width:44px;height:44px;flex:0 0 44px;font-size:26px}
  .today-btn,.view-switch button{min-height:44px;font-size:16px;white-space:nowrap}
  .calendar-main .pills button{min-height:44px}
  .calendar-main .category-row{gap:8px 12px}
  .calendar-main .category-row button{min-height:44px;padding:8px 4px}
  .calendar-main .search{min-height:46px}
  .toolbar{gap:14px;flex-wrap:wrap}
  .month-nav{min-width:0;gap:6px;flex-wrap:wrap}
  .month-nav h2{font-size:22px;white-space:nowrap;margin-right:auto}
  .summary .stat-label{font-size:14px;line-height:1.6}
  .summary small{font-size:12px;line-height:1.7}
  .summary>div{min-width:0;padding:0 12px}
  .calendar-swipe-hint{display:block;font-size:14px;line-height:1.7;color:var(--muted);padding:0 14px;margin:12px 0}
  .calendar-scroll{overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--muted) var(--subtle)}
  .calendar-scroll .weekdays,.calendar-scroll #calendarGrid{min-width:700px}
  .calendar-scroll{--event-row-size:52px}
  .calendar-main .event-layer{top:40px;row-gap:8px}
  .calendar-main .event-bar{height:44px;padding:0 8px;line-height:1.5}
  .calendar-main .event-bar .arrow{display:inline}
  .calendar-main .day-cell{padding:8px}
  .calendar-footer{font-size:14px;line-height:1.8;flex-wrap:wrap}
  .legend{flex-wrap:wrap;gap:8px 14px}
  .calendar-main .list-event{align-items:flex-start;flex-wrap:wrap;gap:8px;padding:20px 0;position:relative}
  .calendar-main .list-date{width:100%;line-height:1.6;padding-right:24px}
  .calendar-main .list-date .list-status{display:inline;margin:0 0 0 10px}
  .calendar-main .list-copy{flex-basis:calc(100% - 28px)}
  .calendar-main .list-copy h3,.calendar-main .list-copy p{line-height:1.8;overflow-wrap:anywhere}
  .calendar-main .list-arrow{position:absolute;top:20px;right:0}
  .calendar-main .badge{font-size:14px}
  dialog{max-height:calc(100dvh - 24px);overscroll-behavior:contain}
  #manager .manage-row>div:first-child{min-width:0;overflow-wrap:anywhere;max-width:100%}
  #manager .actions button,#trashList button{min-height:44px;min-width:44px}
  #editor input,#editor select,#editor textarea{min-width:0;max-width:100%;min-height:46px}
  .toast{max-width:calc(100vw - 32px);width:max-content;font-size:16px;bottom:max(20px,env(safe-area-inset-bottom))}
  footer{padding-bottom:max(28px,env(safe-area-inset-bottom))}
}
@media(max-width:520px){
  .site-header{padding:14px 16px;gap:12px}
  .brand{gap:9px}.header-right{gap:8px}
  .theme-switch{gap:2px;padding:3px}.theme-switch button{padding:6px 9px}
  .intro{display:flex;flex-direction:column;gap:16px}
  .intro>.primary{position:static;transform:none;margin:0;font-size:16px;padding:10px 16px}
  .intro h1{font-size:26px}
  .toolbar{padding:16px 12px;align-items:stretch}
  .month-nav{width:100%}.month-nav h2{font-size:20px}
  .view-switch{width:100%}.view-switch button{flex:1}
  .calendar-main .pills{flex-wrap:wrap;gap:6px}
  .summary>div{padding:0 8px}.summary .stat-label{font-size:13px}.summary small{font-size:12px}
  .admin-status{font-size:16px;line-height:1.7}
  .login-card{padding:22px 18px}.login-card h1{font-size:25px}
  #manager,#editor{padding:20px 16px}
  #manager .manager-toolbar>*{flex:1 1 140px}
  #manager .dialog-heading h2,#editor .dialog-heading h2{font-size:24px}
  .dialog-heading{gap:8px}.close-btn{min-width:44px;flex-shrink:0}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}

.list-status{display:block;margin-top:10px}

.footer-home-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 12px;margin-bottom:10px;font-size:16px;font-weight:600;color:var(--accent);border-radius:6px}.footer-home-link:hover{background:var(--subtle)}
