*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--sage: #6B8F71;--sage-light: #E8F0E9;--sage-dark: #3D5E42;--accent: #3D5E42;--accent-soft:#E8F0E9;--accent-muted:#8ab590;--app-bg: #F4F1EC;--surface: #ffffff;--surface-2: #F7F5F0;--soft: #FAFAFA;--input-bg: #FAFAFA;--text: #2C2C2A;--text-soft: #4a4a47;--muted: #6B6B67;--faint: #aaa;--border: rgba(0,0,0,.08);--border-soft:rgba(0,0,0,.06);--border-strong:rgba(0,0,0,.12);--danger: #8B2500;--danger-bg: #FAEAE4;--danger-border:rgba(139,37,0,.24);--shadow: 0 20px 60px rgba(0,0,0,.15);--font: "Noto Sans KR", -apple-system, BlinkMacSystemFont, sans-serif;--sidebar-w: 215px;--sidebar-col: 52px;color-scheme:light dark}@media (prefers-color-scheme: dark){:root{--app-bg: #111511;--surface: #1A201B;--surface-2: #232A24;--soft: #202720;--input-bg: #141914;--text: #ECEFEB;--text-soft: #D2D9D1;--muted: #A8B2A6;--faint: #7F897D;--border: rgba(255,255,255,.1);--border-soft:rgba(255,255,255,.07);--border-strong:rgba(255,255,255,.16);--accent: #8FBE93;--accent-soft:#223326;--accent-muted:#5f8465;--danger: #FFB199;--danger-bg: #3A2019;--danger-border:rgba(255,177,153,.28);--shadow: 0 20px 60px rgba(0,0,0,.42)}}html,body,#root{height:100%;width:100%;font-family:var(--font);background:var(--app-bg);color:var(--text);-webkit-font-smoothing:antialiased;overflow:hidden}button{cursor:pointer;font-family:var(--font)}input,select,textarea{font-family:var(--font);color-scheme:light dark}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#00000026;border-radius:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}.animate-in{animation:fadeIn .2s ease-out}.spin{animation:spin .7s linear infinite;display:inline-block}.app-shell{display:flex;width:100%;height:100vh;height:100dvh;overflow:hidden}.sidebar{width:var(--sidebar-w);background:#3d5e42;display:flex;flex-direction:column;flex-shrink:0;overflow:hidden;transition:width .22s ease}.sidebar.collapsed{width:var(--sidebar-col)}.main-area{flex:1;display:flex;overflow:hidden;min-width:0}.center-col{flex:1;overflow-y:auto;overflow-x:hidden;padding:18px 16px;display:flex;flex-direction:column;gap:14px;min-width:0;max-width:100%}.right-panel{width:228px;flex-shrink:0;overflow-y:auto;padding:18px 14px;border-left:.5px solid var(--border);display:flex;flex-direction:column;gap:14px}.mobile-nav{display:none;position:fixed;bottom:0;left:0;right:0;z-index:200;background:var(--surface);border-top:.5px solid var(--border);padding-bottom:env(safe-area-inset-bottom)}.top-actions{display:flex;align-items:center;gap:6px;justify-content:flex-end;flex-wrap:wrap;max-width:100%}.calendar-section{min-width:0;width:100%}.calendar-header{display:flex;align-items:center;gap:10px;margin-bottom:10px;min-width:0}.calendar-title-row{display:flex;align-items:center;gap:8px;min-width:0;flex-shrink:0}.calendar-title{font-size:15px;font-weight:600;color:var(--text);white-space:nowrap;margin:0}.calendar-legend{display:flex;align-items:center;justify-content:flex-end;gap:8px 10px;flex:1;min-width:0;flex-wrap:wrap}.calendar-legend-item{display:flex;align-items:center;gap:3px;font-size:10px;color:var(--muted);white-space:nowrap;min-width:0}.calendar-legend-swatch{width:7px;height:7px;border-radius:2px;flex-shrink:0}.calendar-grid-wrap{width:100%;min-width:0;background:var(--surface);border-radius:12px;border:.5px solid var(--border);overflow:hidden}.calendar-dow-row,.calendar-cells{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));min-width:0}.calendar-dow-row{border-bottom:.5px solid var(--border-soft)}.calendar-dow{min-width:0;text-align:center;padding:9px 0;font-size:11px;font-weight:500}.calendar-cell{min-width:0;min-height:78px;padding:6px 4px;cursor:pointer;border-right:.5px solid var(--border-soft);border-bottom:.5px solid var(--border-soft);overflow:hidden}.calendar-date{width:20px;height:20px;border-radius:50%;margin-bottom:3px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:500}.calendar-event-chip{min-width:0;font-size:9px;padding:2px 4px;margin-bottom:1px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width:900px){.right-panel{display:none}.sidebar{width:var(--sidebar-col)}.sidebar.expanded-mobile{width:var(--sidebar-w);position:fixed;top:0;left:0;bottom:0;z-index:300}.sidebar .lbl{display:none}.sidebar.expanded-mobile .lbl{display:inline}.sidebar .logo-full{display:none}.sidebar.expanded-mobile .logo-full{display:block}.center-col{padding:14px 12px}}@media (max-width:600px){.sidebar{display:none!important}.mobile-nav{display:flex}.center-col{padding:12px 10px 76px}.top-actions{justify-content:flex-start;gap:6px}.calendar-header{align-items:flex-start;flex-direction:column;gap:8px}.calendar-title-row{width:100%;justify-content:center}.calendar-title{flex:1;text-align:center;font-size:14px}.calendar-legend{width:100%;justify-content:center;gap:5px 8px}.calendar-legend-item{font-size:9px}.calendar-dow{padding:7px 0;font-size:10px}.calendar-cell{min-height:60px;padding:4px 3px}.calendar-date{width:18px;height:18px;font-size:10px;margin-bottom:2px}.calendar-event-chip{font-size:8px;padding:1px 2px;margin-bottom:1px}.calendar-cell .calendar-event-chip:nth-of-type(n+4){display:none}}@media (max-width:420px){.center-col{padding-left:6px;padding-right:6px}.top-actions button{padding-left:8px!important;padding-right:8px!important}.calendar-grid-wrap{border-radius:8px}.calendar-dow{padding:6px 0;font-size:9px}.calendar-cell{min-height:50px;padding:3px 2px}.calendar-date{width:17px;height:17px;font-size:9px}.calendar-event-chip{height:5px;padding:0;color:transparent!important;border-left:none!important}.calendar-cell .calendar-event-chip:nth-of-type(n+4){display:none}}@media (max-width:360px){.center-col{padding-left:4px;padding-right:4px}.calendar-legend{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px}.calendar-cell{min-height:46px}}
