.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px;background:#f4f5f7;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.login-card{width:100%;max-width:420px;background:#fff;border-radius:18px;padding:32px 28px 28px;box-shadow:0 18px 45px #0f172a14;box-sizing:border-box}.login-logo{width:100%;display:flex;justify-content:center;margin-bottom:18px}.login-logo img{max-width:80px;height:auto}.login-title{font-size:1.4rem;font-weight:600;text-align:center;margin:4px 0;color:#111827}.login-subtitle{font-size:.9rem;text-align:center;margin:0 0 18px;color:#6b7280}.login-error{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;border-radius:10px;padding:8px 10px;font-size:.85rem;margin-bottom:14px}.login-form{display:flex;flex-direction:column;gap:14px}.login-field{display:flex;flex-direction:column;gap:4px}.login-field label{font-size:.85rem;font-weight:500;color:#374151}.login-field input{border-radius:999px;border:1px solid #d1d5db;padding:10px 14px;font-size:.9rem;outline:none;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease;background-color:#f9fafb}.login-field input::placeholder{color:#9ca3af}.login-field input:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a;background-color:#fff}.login-button{margin-top:6px;width:100%;border:none;border-radius:999px;padding:11px 16px;font-size:.95rem;font-weight:600;cursor:pointer;background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;transition:transform .1s ease,box-shadow .1s ease,opacity .1s ease,filter .1s ease;box-shadow:0 10px 25px #4f46e540}.login-button:hover{transform:translateY(-1px);box-shadow:0 14px 30px #4f46e54d;filter:brightness(1.02)}.login-button:active{transform:translateY(0);box-shadow:0 8px 20px #4f46e540}.login-button:disabled{opacity:.7;cursor:default;box-shadow:none}.login-footer{margin-top:16px;text-align:center;font-size:.8rem;color:#9ca3af}@media(max-width:480px){.login-card{padding:24px 18px 20px;border-radius:14px}.login-title{font-size:1.25rem}}.dashboard-root{min-height:100vh;width:100%;max-width:100vw;display:grid;grid-template-columns:260px minmax(0,1fr);background-color:#f4f5f7;overflow-x:hidden}.dashboard-sidebar{background:#020617;color:#e5e7eb;display:flex;flex-direction:column;padding:20px 16px;box-sizing:border-box;z-index:50}.dashboard-brand{display:flex;align-items:center;gap:8px;margin-bottom:24px}.dashboard-logo-dot{width:12px;height:12px;border-radius:999px;background:radial-gradient(circle at 30% 30%,#f97316,#ec4899,#6366f1)}.dashboard-brand-text{font-weight:600;font-size:.95rem}.dashboard-nav{display:flex;flex-direction:column;gap:4px;margin-bottom:auto}.dashboard-nav-item{text-align:left;padding:8px 10px;border-radius:8px;border:none;background:transparent;color:#e5e7eb;font-size:.9rem;cursor:pointer}.dashboard-nav-item.active{background:#94a3b833}.dashboard-nav-item:disabled{opacity:.5;cursor:default}.dashboard-sidebar-footer{margin-top:24px}.dashboard-logout{width:100%;border-radius:999px;border:1px solid #f97373;background:transparent;color:#fecaca;padding:8px 10px;font-size:.85rem;cursor:pointer}.dashboard-logout:hover{background:#f8717126}.dashboard-backdrop{display:none}.dashboard-main{padding:20px 24px 24px;box-sizing:border-box;width:100%}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:12px}.dashboard-title{margin:0;font-size:1.4rem}.dashboard-subtitle{margin:4px 0 0;font-size:.9rem;color:#6b7280}.dashboard-burger{display:none;background:none;border:none;padding:0;cursor:pointer}.dashboard-burger span{display:block;width:24px;height:3px;border-radius:999px;background:#111827}.dashboard-burger span+span{margin-top:4px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:16px;width:100%}.dashboard-card{background:#fff;border-radius:16px;padding:16px 16px 14px;box-shadow:0 14px 35px #0f172a0f;box-sizing:border-box}.dashboard-card-title{margin:0 0 8px;font-size:1rem}.dashboard-card-body{margin:0;font-size:.9rem;color:#4b5563}.dashboard-list{margin:0;padding-left:18px;font-size:.9rem;color:#4b5563}@media(max-width:900px){.dashboard-root{display:block}.dashboard-sidebar{position:fixed;top:0;left:-260px;width:240px;height:100vh;padding:18px 14px;transition:left .2s ease-out;display:flex;flex-direction:column}.dashboard-sidebar--mobile-open{left:0}.dashboard-nav{margin-bottom:12px}.dashboard-sidebar-footer{margin-top:0}.dashboard-backdrop{display:block;position:fixed;inset:0;background:#0f172a73;z-index:40}.dashboard-main{padding:16px 12px 20px}.dashboard-header{align-items:center}.dashboard-title{font-size:1.25rem}.dashboard-subtitle{font-size:.85rem}.dashboard-burger{display:inline-flex;flex-direction:column;justify-content:space-between}.dashboard-grid{grid-template-columns:1fr}}@media(max-width:480px){.dashboard-brand-text{font-size:.85rem}.dashboard-nav-item{font-size:.8rem;padding:6px 8px}.dashboard-title{font-size:1.15rem}}.calendar-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:16px;width:100%;box-sizing:border-box}.calendar-panel,.calendar-detail{background:#fff;border-radius:16px;padding:16px 16px 14px;box-shadow:0 14px 35px #0f172a0f;box-sizing:border-box}.calendar-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.calendar-month-label{font-weight:600;font-size:1rem;text-transform:capitalize}.calendar-nav-btn{border:none;border-radius:999px;padding:6px 10px;font-size:.9rem;cursor:pointer;background:#e5e7eb}.calendar-subheader{display:flex;justify-content:flex-start;margin-bottom:8px}.calendar-today-btn{border-radius:999px;border:1px solid #d1d5db;background:#f9fafb;font-size:.85rem;padding:4px 10px;cursor:pointer}.calendar-grid{width:100%}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));font-size:.75rem;text-align:center;color:#6b7280;margin-bottom:4px}.calendar-weekdays span{padding-bottom:4px}.calendar-weeks{display:flex;flex-direction:column;gap:4px}.calendar-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.calendar-day{position:relative;border-radius:10px;border:1px solid #e5e7eb;background:#f9fafb;min-height:52px;padding:4px 4px 6px;text-align:left;cursor:pointer;display:flex;align-items:flex-start;justify-content:flex-start;box-sizing:border-box;transition:border-color .12s ease,background-color .12s ease,box-shadow .12s ease}.calendar-day-number{font-size:.8rem;font-weight:500;color:#111827}.calendar-day-dot{position:absolute;bottom:4px;left:50%;transform:translate(-50%);width:6px;height:6px;border-radius:999px;background:#6366f1}.calendar-day--other-month{background:#f3f4f6;border-style:dashed}.calendar-day--other-month .calendar-day-number{color:#9ca3af}.calendar-day--today{border-color:#6366f1}.calendar-day--selected{background:#eef2ff;box-shadow:0 0 0 1px #4f46e566}.calendar-day--has-posts .calendar-day-dot{background:#22c55e}.calendar-detail-title{margin:0 0 4px;font-size:1rem;text-transform:capitalize}.calendar-detail-subtitle{margin:0 0 10px;font-size:.85rem;color:#6b7280}.calendar-detail-card{border-radius:12px;border:1px dashed #e5e7eb;padding:10px 12px}.calendar-detail-placeholder{margin:0;font-size:.85rem;color:#4b5563}@media(max-width:900px){.calendar-layout{grid-template-columns:1fr}.calendar-panel,.calendar-detail{padding:12px 12px 10px}}@media(max-width:480px){.calendar-month-label{font-size:.95rem}.calendar-day{min-height:46px}.calendar-day-number{font-size:.75rem}}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background-color:#f4f5f7;color:#111827}button{font-family:inherit}
