/* FLOW calendar layout & design (measured from FLOW: 64px toolbar, 235px panel, #eee grid, weekend/today tints). */

/* ---------- Full-page calendar (left rail → 캘린더): calendar panel replaces the app sidebar, no top bar ---------- */
body.calendar-page .shell>.sidebar,body.calendar-page .topbar{display:none!important}
body.calendar-page .shell{padding-left:62px;padding-top:0}
body.calendar-page .content{padding:0;max-width:none;margin:0}
.flow-calendar.fc-page{grid-template-columns:235px minmax(0,1fr);height:100vh;border:0;border-radius:0}
.flow-calendar.fc-page .fc-sidebar{position:relative;height:100vh;overflow:auto;padding:0 0 24px;background:#faf9f9;border-right:1px solid #e5e5e5}
.flow-calendar.fc-page .fc-main{display:flex;flex-direction:column;height:100vh;overflow:hidden}
.flow-calendar.fc-page .fc-toolbar{padding:15px 30px}
.flow-calendar.fc-page .fc-month{flex:1;min-height:0;grid-template-rows:21px repeat(var(--fc-weeks),minmax(0,1fr))}
.flow-calendar.fc-page .fc-month-day{min-height:0;overflow:hidden}
.flow-calendar.fc-page .fc-list{flex:1;overflow:auto;min-height:0}
.flow-calendar.fc-page .fc-time-scroll{height:auto;flex:1;min-height:0}
.flow-calendar .fc-logo{display:flex;align-items:center;justify-content:center;width:100%;height:60px;padding:0 20px;border:0;background:#fff;cursor:pointer}
.flow-calendar .fc-logo .brand{margin:0;padding:0;min-height:0;justify-content:center}
.flow-calendar .fc-logo .westance-logo{width:120px;height:auto;filter:none}

/* ---------- Left panel: mini month + collapsible sections ---------- */
.flow-calendar .fc-sidebar{font-size:14px;color:#333}
.flow-calendar .fc-mini{padding:12px 13px 4px}
.flow-calendar .fc-mini-head{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-bottom:6px}
.flow-calendar .fc-mini-head .fc-mini-arrow{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:1px solid #ccc;border-radius:3px;background:#fff;color:#888;font-size:0}
.flow-calendar .fc-mini-arrow svg{width:12px;height:12px}
.flow-calendar .fc-mini-title{display:flex;align-items:center;gap:6px;font-size:15px;font-weight:700}
.flow-calendar .fc-mini-head input{width:46px;padding:0;border:0;background:transparent;font-size:15px;font-weight:700;color:#333;-moz-appearance:textfield}
.flow-calendar .fc-mini-head input::-webkit-inner-spin-button,.flow-calendar .fc-mini-head input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.flow-calendar .fc-mini-head select{width:auto;padding:0 2px;border:0;background:transparent;font-size:15px;font-weight:700;color:#333}
.flow-calendar .fc-mini-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:0;margin:0;text-align:center}
.flow-calendar .fc-mini-grid span{padding:4px 0 6px;font-size:12px;color:#555}
.flow-calendar .fc-mini-grid button{display:flex;align-items:center;justify-content:center;width:26px;height:26px;margin:2px auto;padding:0;border:0;border-radius:50%;background:transparent;font-size:12px;color:#333}
.flow-calendar .fc-mini-grid button:hover{background:#eeecf9}
.flow-calendar .fc-mini-grid .fc-outside{color:#bbb}
.flow-calendar .fc-mini-grid .fc-selected{background:transparent;color:#333;box-shadow:inset 0 0 0 1px #624de4}
.flow-calendar .fc-mini-grid .fc-mini-today,.flow-calendar .fc-mini-grid .fc-mini-today.fc-selected{background:#624de4;color:#fff;box-shadow:none}
.flow-calendar .fc-sec{padding:0 14px 0 22px;margin-top:10px}
.flow-calendar .fc-sec-head{display:flex;align-items:center;justify-content:space-between;height:40px;font-size:13px;font-weight:700;color:#333}
.flow-calendar .fc-sec-toggle{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:0;background:none;color:#555}
.flow-calendar .fc-sec-toggle svg{width:16px;height:16px;transition:transform .15s}
.flow-calendar .fc-closed .fc-sec-toggle svg{transform:rotate(180deg)}
.flow-calendar .fc-sec-body{padding-bottom:6px}
.flow-calendar .fc-sec-body label{display:flex;align-items:center;gap:8px;min-height:30px;padding:0;font-size:14px;color:#333;cursor:pointer}
.flow-calendar .fc-sec-body label span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.flow-calendar .fc-sec-body input[type=radio],.flow-calendar .fc-sec-body input[type=checkbox]{width:16px;height:16px;flex:none;margin:0;accent-color:#624de4}
.flow-calendar .fc-sec-empty{margin:0;font-size:13px;color:#999}
.flow-calendar fieldset{margin:0}

/* ---------- Toolbar ---------- */
.flow-calendar .fc-toolbar{min-height:64px;padding:15px 20px;gap:12px;border-bottom:1px solid #eee;flex-wrap:nowrap}
.flow-calendar .fc-nav{gap:10px;min-width:0}
.flow-calendar .fc-nav h2{margin:0 6px;font-size:22px;font-weight:700;color:#333;white-space:nowrap}
.flow-calendar .fc-nav .fc-sq{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:1px solid #ccc;border-radius:4px;background:#fff;color:#555;font-size:0}
.flow-calendar .fc-nav .fc-sq svg{width:16px;height:16px}
.flow-calendar .fc-nav .fc-sq:hover{background:#f5f5f5}
.flow-calendar .fc-search{display:inline-flex;align-items:center;gap:4px;height:30px;padding:0 4px 0 10px;border:1px solid #ccc;border-radius:4px;background:#fff}
.flow-calendar .fc-search input{width:180px;height:28px;padding:0;border:0;font-size:13px;outline:none}
.flow-calendar .fc-search button{width:22px;height:22px;padding:0;border:0;background:none;font-size:16px;color:#888}
.flow-calendar .fc-controls{gap:6px;flex-wrap:nowrap}
.flow-calendar .fc-controls select{height:30px;padding:0 26px 0 12px;border:1px solid #ddd;border-radius:4px;background:#fff;font-size:14px;color:#555}
.flow-calendar .fc-controls button{height:30px;padding:0 14px;border:1px solid #ddd;border-radius:4px;background:#fff;font-size:12px;font-weight:500;color:#555}
.flow-calendar .fc-controls .fc-today-btn:disabled{color:#bbb;cursor:default}
.flow-calendar .fc-controls .fc-add{border-color:#5b40f8;background:#5b40f8;color:#fff}
.flow-calendar .fc-controls .fc-add:hover{background:#4d33e6}

/* ---------- Month grid ---------- */
.flow-calendar .fc-month{grid-template-columns:repeat(7,minmax(0,1fr))}
.flow-calendar .fc-weekday{display:flex;align-items:center;justify-content:center;height:21px;padding:0;border:0;border-bottom:1px solid #eee;font-size:12px;color:#333}
.flow-calendar .fc-weekday:first-child,.flow-calendar .fc-weekday:nth-child(7){color:#333}
.flow-calendar .fc-month-day{min-height:120px;padding:0 0 4px;border-right:1px solid #eee;border-bottom:1px solid #eee;background:#fff}
.flow-calendar .fc-month-day.fc-sun{background:#fff8f8}
.flow-calendar .fc-month-day.fc-sat{background:#f6faff}
.flow-calendar .fc-month-day.fc-today{background:#eeecf9}
.flow-calendar .fc-month-day.fc-outside{color:#333}
.flow-calendar .fc-day-number{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;margin:5px 0 3px 6px;padding:0 4px;border:0;border-radius:11px;background:none;font-size:12px;color:#333}
.flow-calendar .fc-day-number:hover{background:#0000000d}
.flow-calendar .fc-today .fc-day-number{min-width:26px;height:26px;border-radius:50%;background:#624de4;color:#fff}

/* ---------- Items: events = solid project color, tasks = outlined ---------- */
.flow-calendar .fc-item{height:22px;margin:0 6px 2px;width:calc(100% - 12px);padding:0 8px;border:0;border-radius:3px;background:var(--fc-c,#624de4);color:#fff;font-size:11.5px;line-height:22px}
.flow-calendar .fc-item.fc-task{border-left:3px solid var(--fc-c,#624de4);background:#fff;color:#333;box-shadow:inset 0 0 0 1px #e3e3e8}
.flow-calendar .fc-item .fc-item-time{font-size:11px;font-weight:500;opacity:.9}
.flow-calendar .fc-timed{height:auto;width:auto;margin:0;line-height:1.4;padding:3px 5px}
.flow-calendar .fc-list-row .fc-item{background:transparent;color:#333;box-shadow:none;border-left:3px solid var(--fc-c,#624de4)}

/* ---------- Week/day/list headers aligned to FLOW grid lines ---------- */
.flow-calendar .fc-agenda-head,.flow-calendar .fc-all-day,.flow-calendar .fc-time-scroll,.flow-calendar .fc-list{border-top:0}
.flow-calendar .fc-agenda-head>*,.flow-calendar .fc-all-day>*{border-right:1px solid #eee;border-bottom:1px solid #eee;font-size:12px}
.flow-calendar .fc-agenda-head .fc-today{color:#624de4}

@media(max-width:800px){
  body.calendar-page .shell{padding-left:62px}
  .flow-calendar.fc-page{grid-template-columns:1fr;height:auto}
  .flow-calendar.fc-page .fc-sidebar{height:auto;border-right:0;border-bottom:1px solid #e5e5e5}
  .flow-calendar.fc-page .fc-main{height:auto;overflow:visible}
  .flow-calendar.fc-page .fc-month{grid-template-rows:21px repeat(var(--fc-weeks),minmax(90px,auto))}
  .flow-calendar .fc-toolbar{flex-wrap:wrap}
}
@media(max-width:550px){body.calendar-page .shell{padding-left:48px}}
.flow-calendar .fc-sec-body label{margin:0;font-weight:400;line-height:20px;grid-template-columns:none}
.flow-calendar .fc-sec-body label+label{margin-top:0}
