@import "https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg-deep:#1a1a1f;--bg-surface:#232328;--bg-card:#2a2a30;--bg-hover:#32323a;--border:#3a3a42;--border-light:#44444e;--text-primary:#e8e6e1;--text-secondary:#9a9890;--text-muted:#6a6960;--accent:#e8a44a;--accent-hover:#f0b45a;--accent-dim:#e8a44a1f;--accent-border:#e8a44a40;--success:#5cb878;--error:#d4574a;--error-bg:#d4574a1a;--info-bg:#64a0f014;--info-border:#64a0f033;--info-text:#8ab4f0;--font-body:"DM Sans", system-ui, sans-serif;--font-mono:"JetBrains Mono", monospace;--radius-sm:6px;--radius-md:10px;--radius-lg:14px}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg-deep);height:100%;color:var(--text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-shell{flex-direction:column;height:100vh;display:flex}.app-header{background:var(--bg-surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 28px;display:flex}.app-header__brand{align-items:center;gap:12px;display:flex}.app-header__icon{background:var(--accent);border-radius:var(--radius-sm);width:32px;height:32px;color:var(--bg-deep);justify-content:center;align-items:center;font-size:16px;font-weight:700;display:flex}.app-header__title{letter-spacing:-.02em;color:var(--text-primary);font-size:17px;font-weight:600}.app-header__subtitle{color:var(--text-muted);margin-top:1px;font-size:12px;font-weight:400}.app-header__nav{align-items:center;gap:8px;display:flex}.app-header__link{color:var(--text-secondary);border-radius:var(--radius-sm);padding:6px 14px;font-size:13px;font-weight:500;text-decoration:none;transition:all .15s}.app-header__link:hover{color:var(--text-primary);background:var(--bg-hover)}.app-header__link--active{color:var(--accent);background:var(--accent-dim)}.calendar-wrapper{flex:1;padding:20px 28px 28px;overflow:hidden}#calendar{border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg-surface);height:100%;overflow:hidden}.fc{--fc-border-color:var(--border);--fc-page-bg-color:var(--bg-surface);--fc-neutral-bg-color:var(--bg-card);--fc-today-bg-color:var(--accent-dim);--fc-event-bg-color:var(--accent);--fc-event-border-color:transparent;--fc-event-text-color:var(--bg-deep)}.fc .fc-toolbar{background:var(--bg-card);border-bottom:1px solid var(--border);padding:16px 20px;margin-bottom:0!important}.fc .fc-toolbar-title{letter-spacing:-.02em;color:var(--text-primary);font-family:var(--font-body)!important;font-size:16px!important;font-weight:600!important}.fc .fc-button{transition:all .15s;font-family:var(--font-body)!important;border-radius:var(--radius-sm)!important;border:1px solid var(--border)!important;background:var(--bg-surface)!important;color:var(--text-secondary)!important;text-transform:capitalize!important;box-shadow:none!important;padding:6px 14px!important;font-size:12px!important;font-weight:500!important}.fc .fc-button:hover{background:var(--bg-hover)!important;color:var(--text-primary)!important;border-color:var(--border-light)!important}.fc .fc-button-active,.fc .fc-button.fc-button-active{background:var(--accent-dim)!important;color:var(--accent)!important;border-color:var(--accent-border)!important}.fc .fc-button:disabled{opacity:.4!important}.fc .fc-button-group>.fc-button{border-radius:0!important}.fc .fc-button-group>.fc-button:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm)!important}.fc .fc-button-group>.fc-button:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0!important}.fc td,.fc th{border-color:var(--border)!important}.fc .fc-datagrid-cell-frame{align-items:center!important;padding:0 14px!important;display:flex!important}.fc .fc-datagrid-cell-cushion{color:var(--text-primary);font-size:13px;font-weight:500;padding:0!important}.fc .fc-col-header-cell{background:var(--bg-card)}.fc .fc-col-header-cell-cushion{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:500;padding:10px 6px!important}.fc .fc-timeline-slot-frame{border-color:var(--border)!important}.fc .fc-resource-area{background:var(--bg-card)}.fc .fc-datagrid-header .fc-datagrid-cell-frame{background:var(--bg-card);align-items:center!important;display:flex!important}.fc .fc-datagrid-header .fc-datagrid-cell-cushion{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:11px;font-weight:600;padding:0!important}.fc .fc-timeline-event,.fc .fc-h-event{box-shadow:0 1px 3px #0003;font-size:12px!important;font-weight:500!important;font-family:var(--font-body)!important;border:none!important;border-radius:5px!important;padding:2px 8px!important}.fc .fc-event-title{font-weight:500}.fc .fc-timeline-lane,.fc .fc-datagrid-cell{min-height:40px!important}.fc .fc-resource-timeline .fc-resource{border-bottom:1px solid var(--border)}.fc .fc-scrollgrid{border:none!important}.fc .fc-scrollgrid td:last-of-type{border-right:none!important}.fc .fc-scroller::-webkit-scrollbar{width:6px;height:6px}.fc .fc-scroller::-webkit-scrollbar-track{background:var(--bg-surface)}.fc .fc-scroller::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:3px}.fc .fc-scroller::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.event-tooltip{background:var(--text-primary);color:var(--bg-deep);font-family:var(--font-body);border-radius:var(--radius-sm);pointer-events:none;z-index:9999;white-space:normal;max-width:560px;padding:8px 14px;font-size:12px;line-height:1.4;animation:.12s tooltipIn;position:fixed;transform:translate(-50%,-100%);box-shadow:0 4px 16px #00000059}.event-tooltip__title{font-weight:600}.event-tooltip__desc{color:#1a1a1fb3;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-top:3px;font-weight:400;display:-webkit-box;overflow:hidden}.event-tooltip:after{content:"";border:5px solid #0000;border-top-color:var(--text-primary);position:absolute;top:100%;left:50%;transform:translate(-50%)}@keyframes tooltipIn{0%{opacity:0;transform:translate(-50%,calc(4px - 100%))}to{opacity:1;transform:translate(-50%,-100%)}}
