/* insubriefing/leaflets.css — 리플렛 캘린더(공개 열람, .ib-hero 위 프로스티드 카드로 표시) */
/* 2026-08-25 — 색상 팔레트를 insuwork 자체 캘린더(css/insuwork.css의 .iw-calendar-month/.iw-cal-*,
   PR #1815)와 맞춘다. 그 캘린더는 --iw-cal-main/--iw-cal-deep/--iw-cal-soft(및 --iw-cal-holiday-fg 등
   이벤트 타입별 색)를 .iw-calendar-shell에만 지역 선언해 쓰는데, 이 리플렛 캘린더는 그 스코프 밖(다른
   섹션)에 렌더되므로 같은 이름·같은 값으로 #leaflet-calendar에 지역 재선언한다(값 자체는 원본과 동일,
   토큰 이름만 재사용 — 새 색을 만들지 않음). */
#leaflet-calendar{--iw-cal-main:#2d64d8;--iw-cal-deep:#243b7a;--iw-cal-soft:#eef4ff;--iw-cal-holiday-fg:#b3261e;--iw-cal-memorial-fg:#5b4ab0;--iw-cal-term-fg:#2e6f66;display:flex;flex-direction:column;flex:1;min-height:0}
/* #iw-main은 다른 섹션과 공유되는 컨테이너라 기본 규칙은 건드리지 않고, css/insuwork.css의
   iw-main:has(>.iw-calendar-shell) 패턴과 동일하게 이 섹션에만 :has()로 스코프해 flex 체인을 켠다.
   이렇게 해야 #leaflet-calendar가 available height를 다 차지하고, 내부 그리드만 스크롤된다(바깥 페이지
   스크롤 대신 캘린더 박스 자체 스크롤바). */
#v-insuwork .iw-main:has(>#leaflet-calendar){display:flex;flex-direction:column;min-height:0}
.ib-leaflet-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex:0 0 auto}
.ib-leaflet-nav{display:flex;align-items:center;gap:6px}
.ib-leaflet-nav button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--bd);border-radius:var(--radius-full,999px);background:var(--s1);color:var(--tp);font-size:16px;cursor:pointer}
.ib-leaflet-nav button:hover{background:var(--s2);color:var(--ac)}
.ib-leaflet-nav .ib-leaflet-today-btn{width:auto;padding:0 12px;font-size:12px;border-color:#d9dbe8;background:rgba(255,255,255,.92);color:#344158;box-shadow:0 4px 14px rgba(48,57,97,.06)}
.ib-leaflet-nav .ib-leaflet-today-btn:hover{background:#fff;color:#344158}
#ib-leaflet-nav-arrows{display:inline-flex;align-items:center;gap:6px}
#ib-leaflet-nav-arrows button{color:#4d5869}
#ib-leaflet-nav-arrows button:hover{background:var(--iw-cal-soft);color:var(--iw-cal-deep)}
#ib-leaflet-month-label{font-weight:800;font-size:15px;min-width:92px;text-align:center}
.ib-leaflet-modes{display:inline-flex;gap:2px;padding:3px;border:1px solid #d9dbe8;border-radius:var(--radius-full,999px);background:rgba(255,255,255,.86);box-shadow:0 4px 14px rgba(48,57,97,.05)}
.ib-leaflet-mode{border:0;padding:6px 14px;border-radius:var(--radius-full,999px);background:transparent;color:#4d5869;font-size:12px;font-weight:700;cursor:pointer}
.ib-leaflet-mode:hover{color:var(--tp)}
.ib-leaflet-mode.on{background:var(--iw-cal-main);color:#fff}
.ib-leaflet-grid{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;overflow-y:auto;transition:opacity .15s ease}
.ib-leaflet-grid.is-loading{opacity:.5}

/* 월 보기 */
.ib-leaflet-month-card{flex:0 0 auto;display:flex;flex-direction:column;border:1px solid #dfe1ec;border-radius:var(--radius-md,12px);background:rgba(255,255,255,.8);box-shadow:0 8px 22px rgba(38,48,77,.06);overflow:hidden}
.ib-leaflet-dow-row{display:grid;grid-template-columns:repeat(7,1fr);flex:0 0 auto;border-bottom:1px solid #dfe1ec}
.ib-leaflet-dow{background:none;padding:6px 4px;text-align:center;font-size:11px;color:#424956}
.ib-leaflet-dow:first-child{color:#a74742}
.ib-leaflet-dow:nth-child(7){color:#3f667f}
.ib-leaflet-grid-month{flex:0 0 auto;display:grid;grid-template-rows:repeat(6,1fr);gap:1px;background:#dfe1ec}
.ib-leaflet-week{min-height:108px;overflow:hidden}
.ib-leaflet-week-cells{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;height:100%}
.ib-leaflet-week-cells .ib-leaflet-day{background:rgba(255,255,255,.84);backdrop-filter:none;-webkit-backdrop-filter:none}
.ib-leaflet-week-cells .ib-leaflet-day:hover{background:#fff}
.ib-leaflet-grid-month .ib-leaflet-thumbs{display:grid;grid-template-columns:repeat(auto-fit,minmax(44px,48px));align-content:start;gap:5px}
.ib-leaflet-grid-month .ib-leaflet-thumb{width:46px;height:46px;border-radius:var(--radius-sm,6px)}
.ib-leaflet-grid-month .ib-leaflet-more{display:inline-flex;align-items:center;justify-content:center;min-height:28px;margin-top:6px;padding:0 10px;border:1px solid color-mix(in srgb,var(--ac) 28%,var(--bd));border-radius:var(--radius-full,999px);background:color-mix(in srgb,var(--ac) 10%,var(--s1));font-size:12px;font-weight:800;line-height:1;color:var(--ac)}
.ib-leaflet-grid-month .ib-leaflet-more:hover{border-color:var(--ac);background:color-mix(in srgb,var(--ac) 16%,var(--s1))}

/* 주 보기 */
.ib-leaflet-grid-week{flex:1;min-height:0;display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:#dfe1ec;border:1px solid #dfe1ec;border-radius:var(--radius-md,12px);overflow:hidden;box-shadow:0 8px 22px rgba(38,48,77,.06)}
.ib-leaflet-grid-week .ib-leaflet-day{background:rgba(255,255,255,.84);backdrop-filter:none;-webkit-backdrop-filter:none}
.ib-leaflet-grid-week .ib-leaflet-day:hover{background:#fff}
.ib-leaflet-week-day{min-height:220px!important}
.ib-leaflet-week-day .ib-leaflet-thumbs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(64px,100%),1fr));align-items:start}
.ib-leaflet-week-day .ib-leaflet-thumb{width:100%;height:auto;max-width:96px;aspect-ratio:3/4;border-radius:var(--radius-sm,6px)}
.ib-leaflet-week-day .ib-leaflet-thumb img,.ib-leaflet-week-day .ib-leaflet-thumb canvas{object-fit:contain}

/* 일 보기 */
.ib-leaflet-grid-day{flex:1;min-height:0;display:block;overflow-y:auto}
.ib-leaflet-day-view{min-height:320px!important;border:1px solid color-mix(in srgb,var(--tp) 16%,var(--bd));border-radius:var(--radius-md,12px);background:color-mix(in srgb,var(--s1) 40%,transparent)}
.ib-leaflet-day-view .ib-leaflet-daynum{font-size:16px;font-weight:800;color:var(--tp)}
.ib-leaflet-day-view .ib-leaflet-thumbs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),240px));gap:12px;align-items:start}
.ib-leaflet-day-view .ib-leaflet-thumb{width:100%;height:auto;aspect-ratio:3/4;border-radius:var(--radius-md,12px)}
.ib-leaflet-day-view .ib-leaflet-thumb img,.ib-leaflet-day-view .ib-leaflet-thumb canvas{object-fit:contain}

/* 목록(agenda) 보기 */
.ib-leaflet-agenda{flex:1;min-height:0;display:grid;gap:10px;overflow-y:auto;align-content:start}
.ib-leaflet-agenda-row{min-height:0!important;border:1px solid color-mix(in srgb,var(--s1) 55%,var(--bd));border-radius:var(--radius-md,10px);padding:10px 12px!important;background:color-mix(in srgb,var(--s1) 40%,transparent)}
.ib-leaflet-agenda-row .ib-leaflet-daynum{font-size:13px;font-weight:800;color:var(--tp)}
.ib-leaflet-agenda-empty{padding:32px 8px;text-align:center;color:var(--tf);font-size:13px}

/* 공통 날짜 칸 */
.ib-leaflet-day{position:relative;min-height:108px;padding:6px;background:none}
.ib-leaflet-day.is-other{background:rgba(237,239,246,.7);opacity:.55}
.ib-leaflet-day.is-other .ib-leaflet-daynum{color:#9aa0ad}
.ib-leaflet-day.is-today{background:color-mix(in srgb,var(--iw-cal-soft) 85%,white);box-shadow:inset 0 0 0 3px var(--iw-cal-main),inset 0 0 24px color-mix(in srgb,var(--iw-cal-main) 12%,transparent)}
.ib-leaflet-day.is-today .ib-leaflet-daynum{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 4px;border-radius:var(--radius-full,999px);background:linear-gradient(145deg,var(--iw-cal-main),var(--iw-cal-deep));color:#fff;font-weight:800;box-shadow:0 3px 9px rgba(34,54,82,.28)}
.ib-leaflet-daynum{display:block;font-size:12px;color:#3f4657}
.ib-leaflet-day.is-droppable.drag-over{outline:2px dashed var(--ac);outline-offset:-2px;background:color-mix(in srgb,var(--ac) 8%,var(--s1))}
.ib-leaflet-day.is-droppable.is-selected{outline:2px solid var(--ac);outline-offset:-2px;background:color-mix(in srgb,var(--ac) 9%,transparent)}
.ib-leaflet-holiday{display:inline-block;margin-top:2px;margin-right:4px;font-size:10px;font-weight:700;color:var(--iw-cal-holiday-fg,#b3261e)}
.ib-leaflet-holiday-memorial{color:var(--iw-cal-memorial-fg,#5b4ab0)}
.ib-leaflet-holiday-term{color:var(--iw-cal-term-fg,#2e6f66);font-weight:600}
.ib-leaflet-more{display:block;margin-top:3px;padding:0;border:0;background:transparent;color:var(--ac);font-size:10px;font-weight:700;cursor:pointer}
.ib-leaflet-thumbs{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.ib-leaflet-thumb{position:relative;width:26px;height:26px;border-radius:5px;overflow:hidden;border:1px solid var(--bd);cursor:pointer;background:var(--s2);flex:0 0 auto}
.ib-leaflet-thumb img,.ib-leaflet-thumb canvas{width:100%;height:100%;object-fit:cover;display:block}
.ib-leaflet-thumb.is-pdf{display:flex;align-items:center;justify-content:center;background:var(--s2)}
.ib-leaflet-thumb.is-document{display:flex;align-items:stretch;justify-content:stretch;background:var(--s1)}
.ib-leaflet-file-card{display:flex;width:100%;height:100%;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:4px;background:linear-gradient(145deg,color-mix(in srgb,var(--ac) 12%,var(--s1)),var(--s1));text-align:center}
.ib-leaflet-file-card b{color:var(--ac);font-size:9px;line-height:1}
.ib-leaflet-file-card small,.ib-leaflet-file-card em{display:none;max-width:100%;overflow:hidden;color:var(--ts);font-size:11px;font-style:normal;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
.ib-leaflet-day-view .ib-leaflet-file-card,.ib-leaflet-week-day .ib-leaflet-file-card{padding:12px}
.ib-leaflet-day-view .ib-leaflet-file-card b,.ib-leaflet-week-day .ib-leaflet-file-card b{font-size:16px}
.ib-leaflet-day-view .ib-leaflet-file-card small,.ib-leaflet-day-view .ib-leaflet-file-card em,.ib-leaflet-week-day .ib-leaflet-file-card small,.ib-leaflet-week-day .ib-leaflet-file-card em{display:block}
.ib-leaflet-pdf-badge{position:absolute;left:1px;bottom:1px;padding:0 2px;border-radius:2px;background:var(--ac);color:#fff;font-size:7px;font-weight:800;line-height:1.3}
.ib-leaflet-thumb canvas{position:absolute;inset:0}
.ib-leaflet-delete{position:absolute;z-index:3;top:2px;right:2px;display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:1px solid var(--bd);border-radius:50%;background:var(--s1);color:var(--tp);font-size:16px;font-weight:700;line-height:1;box-shadow:0 2px 8px rgba(0,0,0,.16);cursor:pointer;opacity:0;transform:scale(.9);transition:opacity .15s ease,transform .15s ease}
.ib-leaflet-thumb:hover .ib-leaflet-delete,.ib-leaflet-delete:focus-visible{opacity:1;transform:scale(1)}
.ib-leaflet-delete:hover{border-color:var(--err);color:var(--err)}
.ib-leaflet-delete:disabled{cursor:wait;opacity:.55}
@media(hover:none){.ib-leaflet-delete{opacity:1;transform:scale(1)}}
.ib-confirm-dialog{width:min(420px,calc(100vw - 32px));padding:0;border:1px solid var(--bd);border-radius:var(--radius-lg);background:var(--s1);color:var(--tp);box-shadow:0 24px 72px color-mix(in srgb,var(--tp) 24%,transparent)}
.ib-confirm-dialog::backdrop{background:color-mix(in srgb,var(--tp) 48%,transparent);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.ib-confirm-dialog form{display:grid;gap:10px;padding:24px}
.ib-confirm-brand{color:var(--ac);font-size:12px;font-weight:800;letter-spacing:.08em}
.ib-confirm-dialog h2{margin:0;font-size:20px;line-height:1.35}
.ib-confirm-dialog p{margin:0;color:var(--ts);font-size:14px;line-height:1.65}
.ib-confirm-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}
.ib-confirm-actions button{min-width:76px;min-height:40px;padding:0 16px;border:1px solid var(--bd);border-radius:var(--radius-full);background:var(--s1);color:var(--tp);font:inherit;font-weight:700;cursor:pointer}
.ib-confirm-actions button:hover{background:var(--s2)}
.ib-confirm-actions .is-danger{border-color:var(--err);background:var(--err);color:var(--s1)}
.ib-confirm-actions .ib-confirm-submit:not(.is-danger){border-color:var(--ac);background:var(--ac);color:var(--s1)}
.ib-leaflet-notice{position:fixed;z-index:13000;right:20px;bottom:20px;max-width:min(420px,calc(100vw - 40px));padding:12px 16px;border:1px solid var(--bd);border-radius:var(--radius-md);background:var(--s1);color:var(--tp);font-size:14px;font-weight:600;line-height:1.5;box-shadow:0 16px 44px color-mix(in srgb,var(--tp) 20%,transparent)}
.ib-text-dialog{position:fixed;inset:50% auto auto 50%;transform:translate(-50%,-50%);margin:0;width:min(760px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:0;border:1px solid var(--bd);border-radius:var(--radius-lg);background:var(--s1);color:var(--tp);box-shadow:0 24px 72px color-mix(in srgb,var(--tp) 24%,transparent)}
.ib-text-dialog::backdrop{background:color-mix(in srgb,var(--tp) 48%,transparent);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.ib-text-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:22px 24px;border-bottom:1px solid var(--bd)}
.ib-text-head span{color:var(--ac);font-size:12px;font-weight:800}.ib-text-head h2{margin:5px 0 0;font-size:18px}.ib-text-head button{width:36px;height:36px;border:0;border-radius:var(--radius-full);background:var(--s2);color:var(--tp);font-size:22px;cursor:pointer}
.ib-text-dialog pre{max-height:60dvh;margin:0;padding:24px;overflow:auto;color:var(--bodytx);font:inherit;font-size:14px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}
.ib-text-dialog pre a{color:var(--ac);font-weight:700;text-decoration:underline;text-underline-offset:2px}
.ib-text-dialog textarea.ib-text-edit:not([hidden]){display:block;box-sizing:border-box;width:100%;min-height:min(60dvh,320px);max-height:60dvh;margin:0;padding:24px;border:0;resize:vertical;background:transparent;color:var(--bodytx);font:inherit;font-size:14px;line-height:1.7}
.ib-text-dialog textarea.ib-text-edit:focus{outline:none;background:color-mix(in srgb,var(--ac) 5%,transparent)}
.ib-text-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:14px 24px;border-top:1px solid var(--bd)}
.ib-text-actions a{padding:9px 16px;border-radius:var(--radius-full);background:var(--ac);color:var(--s1);font-size:13px;font-weight:700;text-decoration:none}
.ib-text-actions button{padding:9px 16px;border:1px solid var(--bd);border-radius:var(--radius-full);background:var(--s1);color:var(--tp);font-size:13px;font-weight:700;cursor:pointer}
.ib-text-actions button:hover{background:var(--s2)}
.ib-text-actions .ib-text-save-btn{border-color:transparent;background:var(--ac);color:var(--s1)}
.ib-text-actions .ib-text-save-btn:hover{background:color-mix(in srgb,var(--ac) 88%,black)}
.ib-text-actions button:disabled{opacity:.6;cursor:default}
@media(max-width:900px){.ib-leaflet-grid-month .ib-leaflet-thumbs{grid-template-columns:repeat(auto-fit,minmax(36px,42px))}.ib-leaflet-grid-month .ib-leaflet-thumb{width:40px;height:40px}}
@media(max-width:560px){#leaflet-calendar,.ib-leaflet-head,.ib-leaflet-grid{box-sizing:border-box;width:100%;max-width:100%}.ib-leaflet-head{align-items:stretch;gap:10px}.ib-leaflet-nav{justify-content:space-between;min-width:0}.ib-leaflet-modes{align-self:flex-end;max-width:100%;overflow:hidden}.ib-leaflet-mode{padding:6px 10px}.ib-leaflet-week-cells{width:100%;grid-template-columns:repeat(7,minmax(0,1fr))}.ib-leaflet-day{min-width:0;min-height:82px;padding:3px}.ib-leaflet-daynum{max-width:100%;overflow:hidden;text-overflow:ellipsis}.ib-leaflet-thumb{width:18px;height:18px}.ib-leaflet-grid-month .ib-leaflet-thumbs{grid-template-columns:repeat(2,minmax(0,1fr));gap:3px}.ib-leaflet-grid-month .ib-leaflet-thumb{width:100%;height:auto;aspect-ratio:1}.ib-leaflet-grid-month .ib-leaflet-more{min-height:24px;margin-top:4px;padding:0 7px;font-size:11px}.ib-leaflet-week-day{min-height:140px!important}.ib-leaflet-week-day .ib-leaflet-thumbs{grid-template-columns:1fr;gap:3px}.ib-leaflet-week-day .ib-leaflet-thumb{width:100%;max-width:none;height:auto}.ib-leaflet-day-view{padding:8px}.ib-leaflet-day-view .ib-leaflet-thumbs{grid-template-columns:repeat(auto-fit,minmax(min(132px,100%),1fr));gap:8px}.ib-leaflet-day-view .ib-leaflet-thumb{width:100%;height:auto}}

/* 호버 확대(이미지 전용, PDF는 클릭으로만) */
.ib-leaflet-hover{position:fixed;z-index:9000;width:240px;height:320px;padding:4px;border:1px solid var(--bd);border-radius:var(--radius-md,12px);background:var(--s1);box-shadow:0 20px 48px rgba(0,0,0,.28);pointer-events:none}
.ib-leaflet-hover img{width:100%;height:100%;object-fit:contain;border-radius:6px;display:block}
