:host { display: block; min-height: 100vh; } .app-layout { display: grid; grid-template-columns: 250px minmax(0, 1fr); min-height: 100vh; } .sidebar { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; padding: 36px 22px 22px; background: #fff; border-right: 1px solid var(--line); } .brand { display: flex; align-items: center; gap: 12px; color: var(--ink); font-size: 21px; font-weight: 800; letter-spacing: -0.8px; padding: 0 8px; } .brand-mark { background: var(--forest); color: var(--lime); width: 42px; height: 44px; border-radius: 13px 13px 13px 3px; display: flex; align-items: center; justify-content: center; font-size: 30px; position: relative; } .brand-mark > span { font-size: 23px; position: absolute; right: 3px; top: -5px; } .brand-light { font-weight: 450; } .brand small { font-size: 8px; display: block; letter-spacing: 1.8px; font-weight: 600; margin-top: 5px; color: var(--muted); } .nav-label { font-size: 10px; font-weight: 700; letter-spacing: 1.8px; color: var(--muted); margin: 60px 14px 14px; } .nav-item { display: flex; align-items: center; gap: 12px; font-size: 13px; font-weight: 650; padding: 15px 12px; border-radius: 9px; } .nav-item.selected { background: #eaf1ec; color: var(--forest); } .nav-item svg { width: 20px; height: 20px; } .nav-item > span { margin-left: auto; } .sidebar-note { margin-top: auto; padding: 28px 16px; } .sidebar-note > span { color: #569473; font-size: 45px; } .sidebar-note h3 { font-weight: 600; font-size: 24px; letter-spacing: -0.8px; line-height: 1.25; margin: 14px 0; } .sidebar-note p { font-size: 12px; line-height: 1.8; color: var(--muted); } .sidebar-footer { display: flex; align-items: center; gap: 8px; border-top: 1px solid var(--line); padding: 22px 10px 0; font-size: 11px; color: var(--muted); } .sidebar-footer > span:last-child { margin-left: auto; } .status-dot, .topbar-dot { width: 6px; height: 6px; background: #6a9c7b; border-radius: 50%; display: inline-block; } .main-column { min-width: 0; display: flex; flex-direction: column; } .topbar { height: 78px; display: flex; align-items: center; justify-content: space-between; padding: 0 48px; border-bottom: 1px solid var(--line); background: #fff; font-size: 12px; font-weight: 550; } .topbar-right { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 11px; } main { padding: 44px 48px 60px; max-width: 1500px; width: 100%; margin: 0 auto; flex: 1; } .page-footer { margin: 0 48px; border-top: 1px solid var(--line); padding: 22px 0; display: flex; justify-content: space-between; gap: 20px; color: var(--muted); font-size: 10px; } @media (min-width: 1600px) { main { padding: 58px 68px; } } @media (max-width: 1100px) { .app-layout { grid-template-columns: 205px minmax(0, 1fr); } .sidebar { padding-left: 14px; padding-right: 14px; } .brand { font-size: 18px; gap: 8px; } main { padding: 32px 28px 48px; } .topbar { padding: 0 28px; } .page-footer { margin: 0 28px; } } @media (max-width: 760px) { .app-layout { display: block; } .sidebar { position: static; height: auto; padding: 18px 20px; flex-direction: row; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--line); border-right: 0; gap: 18px; } .brand { padding: 0; } .brand-mark { width: 34px; height: 36px; } .nav-label, .sidebar-note, .sidebar-footer, .nav-item svg, .nav-item > span { display: none; } .nav-item { font-size: 11px; padding: 12px; } .topbar { height: 48px; padding: 0 22px; } .topbar-right { font-size: 10px; } main { padding: 28px 20px 42px; } .page-footer { margin: 0 20px; } } .scheduling-snackbar { position: fixed; bottom: 1.5rem; right: 1.5rem; z-index: 1000; display: flex; align-items: center; gap: 1rem; max-width: min(40rem, calc(100vw - 3rem)); padding: 1rem 1.5rem; background: #193b33; color: white; border-radius: 0.75rem; box-shadow: 0 0.25rem 1rem #0003; } .scheduling-snackbar a { color: white; text-decoration: underline; } .scheduling-snackbar button { background: transparent; color: white; border: 0; cursor: pointer; font-size: 1.5rem; }