@charset "utf-8";

.sch-wrap { font-family: inherit; color: inherit; }
.sch-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px; }
.sch-card { border: 1px solid #eee; border-radius: 12px; background: #fff; padding: 1rem; }
.sch-card-full { border: 1px solid #eee; border-radius: 12px; background: #fff; padding: 1rem; margin-bottom: 12px; }
.sch-h3 { font-size: 13px; font-weight: 500; margin-bottom: 10px; display: flex; align-items: center; justify-content: space-between; }
.sch-badge { font-size: 10px; padding: 2px 7px; border-radius: 999px; }
.sb-blue { background: #e8f0fe; color: #1967d2; }
.sb-red { background: #fce8e6; color: #c5221f; }
.sb-green { background: #e6f4ea; color: #137333; }
.sb-orange { background: #fef3e2; color: #b06000; }
.sb-purple { background: #f0eafb; color: #534ab7; }

.ui-btn { display: inline-block; padding: 5px 14px; border-radius: 999px; border: 1px solid #ddd; background: #fff; color: #555; font-size: 12px; cursor: pointer; text-decoration: none; transition: all .12s; }
.ui-btn:hover { border-color: #999; color: #333; }
.ui-btn.point { background: #222; color: #fff; border-color: #222; }

/* 달력 */
.cal-wrap { }
.cal-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.cal-month-label { font-size: 14px; font-weight: 500; }
.cal-nav-btn { font-size: 11px; padding: 3px 8px; border: 1px solid #eee; border-radius: 6px; background: #fff; color: #888; cursor: pointer; }
.cal-nav-btn:hover { background: #f8f8f8; }
.gcal-badge { font-size: 10px; color: #4285f4; border: 1px solid #4285f4; border-radius: 999px; padding: 1px 7px; }
.cal-day-labels { display: grid; grid-template-columns: repeat(7,1fr); margin-bottom: 2px; }
.cal-day-lbl { text-align: center; font-size: 10px; color: #aaa; padding: 2px 0; }
.cal-day-lbl.sun { color: #e24b4a; }
.cal-day-lbl.sat { color: #4285f4; }
.cal-body { display: grid; grid-template-columns: repeat(7,1fr); gap: 1px; }
.cal-cell { min-height: 48px; padding: 2px 3px; border-radius: 4px; cursor: pointer; }
.cal-cell:hover { background: #fafafa; }
.cal-cell.selected { background: #fafafa; outline: 1.5px solid #ccc; outline-offset: -1px; }
.cal-day-num { font-size: 11px; text-align: center; line-height: 18px; margin-bottom: 2px; }
.cal-day-num.today { background: #1967d2; color: #fff; border-radius: 50%; width: 18px; height: 18px; display: flex; align-items: center; justify-content: center; margin: 0 auto 2px; }
.cal-bars { display: flex; flex-direction: column; gap: 1px; }
.cal-ev-bar { height: 3px; border-radius: 999px; }
.bar-gcal { background: #4285f4; }
.bar-personal { background: #8b5cf6; }
.bar-todo { background: #e24b4a; }
.bar-habit { background: #1d9e75; }
.cal-more-txt { font-size: 9px; color: #aaa; }
.cal-legend { display: flex; gap: 10px; margin-top: 8px; flex-wrap: wrap; }
.cal-leg { display: flex; align-items: center; gap: 4px; font-size: 11px; color: #888; }
.cal-leg-bar { width: 12px; height: 3px; border-radius: 999px; }

.detail-panel { background: #fafafa; border: 1px solid #eee; border-radius: 10px; padding: 12px; margin-top: 8px; display: none; }
.detail-panel.open { display: block; }
.detail-date-label { font-size: 12px; font-weight: 500; color: #555; margin-bottom: 8px; }
.ev-item { display: flex; align-items: flex-start; gap: 8px; padding: 7px 10px; border-radius: 8px; margin-bottom: 4px; background: #fff; border: 1px solid #eee; }
.ev-item:last-child { margin-bottom: 0; }
.ev-color-bar { width: 3px; border-radius: 999px; flex-shrink: 0; align-self: stretch; min-height: 16px; }
.ev-info { flex: 1; min-width: 0; }
.ev-time-txt { font-size: 10px; color: #aaa; margin-bottom: 1px; }
.ev-title-txt { font-size: 12px; font-weight: 500; }
.ev-desc-txt { font-size: 11px; color: #888; margin-top: 2px; }
.no-ev-txt { font-size: 12px; color: #bbb; text-align: center; padding: 8px 0; }

/* 투두 */
.todo-item { display: flex; align-items: center; gap: 7px; padding: 5px 0; border-bottom: 1px solid #f5f5f5; font-size: 12px; }
.todo-item:last-child { border-bottom: none; }
.todo-chk { width: 14px; height: 14px; border-radius: 3px; border: 1px solid #ddd; flex-shrink: 0; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.todo-chk.done { background: #137333; border-color: #137333; }
.todo-done-text { text-decoration: line-through; color: #bbb; }
.todo-pri { width: 5px; height: 5px; border-radius: 50%; flex-shrink: 0; }
.pri-h { background: #e24b4a; }
.pri-m { background: #ef9f27; }
.pri-l { background: #639922; }
.todo-tag { font-size: 10px; padding: 1px 5px; border-radius: 999px; margin-left: auto; flex-shrink: 0; }
.todo-add-input { width: 100%; font-size: 12px; margin-top: 8px; padding: 6px 10px; border: 1px solid #eee; border-radius: 6px; outline: none; }
.todo-add-input:focus { border-color: #ccc; }

/* 뽀모도로 */
.pomo-wrap { text-align: center; }
.pomo-task-label { font-size: 11px; color: #666; margin-bottom: 8px; padding: 3px 8px; background: #fafafa; border-radius: 6px; display: inline-block; }
.pomo-ring { width: 90px; height: 90px; margin: 0 auto 8px; position: relative; }
.pomo-ring svg { transform: rotate(-90deg); }
.pomo-time-inner { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.pomo-time-big { font-size: 21px; font-weight: 500; }
.pomo-time-sub { font-size: 10px; color: #aaa; }
.pomo-btn-row { display: flex; gap: 5px; justify-content: center; margin-bottom: 8px; }
.pomo-btn { padding: 4px 10px; border-radius: 999px; font-size: 11px; border: 1px solid #eee; cursor: pointer; background: #fff; color: #555; }
.pomo-btn:hover { background: #f8f8f8; }
.pomo-btn.main { background: #222; color: #fff; border-color: #222; }
.pomo-sessions { display: flex; gap: 4px; justify-content: center; margin-bottom: 4px; }
.pomo-sess { width: 9px; height: 9px; border-radius: 50%; }
.pomo-sess.done { background: #e24b4a; }
.pomo-sess.empty { background: #f0f0f0; border: 1px solid #ddd; }
.pomo-info-txt { font-size: 10px; color: #aaa; }

/* 해빗 트래커 */
.habit-item { margin-bottom: 10px; }
.habit-item:last-child { margin-bottom: 0; }
.habit-hd { display: flex; justify-content: space-between; align-items: center; margin-bottom: 3px; }
.habit-name { font-size: 12px; font-weight: 500; }
.habit-streak { font-size: 11px; color: #888; }
.habit-bar-bg { height: 4px; background: #f0f0f0; border-radius: 999px; margin-bottom: 4px; overflow: hidden; }
.habit-bar { height: 100%; border-radius: 999px; }
.habit-dots { display: flex; gap: 2px; flex-wrap: wrap; }
.hd { width: 10px; height: 10px; border-radius: 2px; }
.hd-done { background: #1d9e75; }
.hd-miss { background: #f0f0f0; border: 1px solid #e8e8e8; }
.hd-today { background: #9fe1cb; border: 1px solid #1d9e75; }
.hd-fut { background: #f0f0f0; opacity: .3; }
.habit-add-link { font-size: 11px; color: #aaa; cursor: pointer; padding-top: 6px; margin-top: 6px; border-top: 1px dashed #eee; display: block; }

/* D-day */
.dday-item { display: flex; align-items: center; justify-content: space-between; padding: 6px 0; border-bottom: 1px solid #f5f5f5; font-size: 12px; }
.dday-item:last-child { border-bottom: none; }
.dday-title { font-size: 12px; }
.dday-date-sub { font-size: 10px; color: #aaa; margin-top: 1px; }
.dday-num { font-size: 15px; font-weight: 500; color: #1967d2; min-width: 40px; text-align: right; }
.dday-num.urgent { color: #e24b4a; }
.dday-add-link { font-size: 11px; color: #aaa; cursor: pointer; padding-top: 6px; margin-top: 6px; border-top: 1px dashed #eee; display: block; }

/* 이달 할일 */
.month-item { display: flex; align-items: center; gap: 8px; padding: 5px 0; border-bottom: 1px solid #f5f5f5; font-size: 12px; }
.month-item:last-child { border-bottom: none; }
.month-date-label { width: 32px; font-size: 11px; color: #aaa; flex-shrink: 0; }
.month-title { flex: 1; }

/* 주간 리뷰 */
.week-stat-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 6px; margin-bottom: 10px; }
.week-stat-box { background: #fafafa; border-radius: 8px; padding: 8px; text-align: center; }
.wsb-num { font-size: 17px; font-weight: 500; }
.wsb-label { font-size: 10px; color: #aaa; }
.week-bar-row { display: flex; align-items: center; gap: 8px; margin-bottom: 5px; font-size: 11px; }
.wbr-label { width: 24px; color: #888; }
.wbr-bg { flex: 1; height: 5px; background: #f0f0f0; border-radius: 999px; overflow: hidden; }
.wbr-fill { height: 100%; border-radius: 999px; background: #4285f4; }
.wbr-val { width: 26px; text-align: right; color: #aaa; }

/* 메모 패드 */
.memo-tags { display: flex; gap: 4px; margin-bottom: 8px; flex-wrap: wrap; }
.memo-tag-btn { font-size: 10px; padding: 2px 8px; border-radius: 999px; border: 1px solid #eee; background: #fff; cursor: pointer; color: #888; }
.memo-tag-btn.on { background: #222; color: #fff; border-color: #222; }
.memo-textarea { width: 100%; min-height: 80px; resize: vertical; border: 1px solid #eee; border-radius: 8px; padding: 8px 10px; font-size: 12px; line-height: 1.6; background: #fff; color: #333; font-family: inherit; outline: none; }
.memo-textarea:focus { border-color: #ccc; }
.memo-footer { display: flex; justify-content: space-between; align-items: center; margin-top: 6px; }
.memo-saved-txt { font-size: 11px; color: #bbb; }
.memo-save-btn { font-size: 11px; padding: 4px 12px; border-radius: 999px; border: 1px solid #ddd; cursor: pointer; background: #fff; color: #555; }
.memo-save-btn:hover { background: #f8f8f8; }

/* 모바일 반응형 */
@media (max-width: 600px) {
    .sch-grid { grid-template-columns: 1fr; }
    .sch-card-full, .sch-card { padding: .75rem; }
    .dday-item { flex-wrap: nowrap; gap: 6px; }
    .dday-title { font-size: 12px; word-break: break-word; }
    .dday-num { font-size: 13px; min-width: 36px; white-space: nowrap; }
    .dday-date-sub { font-size: 10px; }
    .cal-day-num { font-size: 10px; line-height: 16px; }
    .cal-cell { min-height: 38px; padding: 1px 2px; }
    .week-stat-grid { grid-template-columns: repeat(2, 1fr); }
    .todo-add-input { width: 100%; }
    .inline-row { flex-wrap: wrap; }
    .inline-row input[type=text] { min-width: 0; }
    .pomo-wrap { text-align: center; }
    .habit-dots { flex-wrap: wrap; }
    .cal-legend { gap: 6px; }
}
.sch-empty { font-size: 12px; color: #bbb; padding: 8px 0; }
.habit-edit-row { display: none; gap: 6px; align-items: center; margin-top: 4px; }
.no-perm { opacity: .4; pointer-events: none; }

.ev-done { opacity: .85; }
