:root{font-synthesis:none;text-rendering:optimizelegibility;font-family:Nunito,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--app-page-bg);color:var(--app-text)}button,input,textarea,select{font:inherit}.brand-mark{border-radius:12px;justify-content:flex-start;align-items:center;min-width:0;max-width:100%;display:inline-flex}.brand-mark__image{-webkit-user-select:none;user-select:none;width:190px;max-width:100%;height:auto;display:block}.brand-mark--compact{flex:0 0 42px;width:42px;height:42px;overflow:hidden}.brand-mark--compact .brand-mark__image{width:auto;max-width:none;height:52px;transform:translateY(-5px)}.mock-banner{z-index:20;position:relative}.app-loading{background:var(--app-page-bg);background-image:var(--app-page-glow);place-items:center;min-height:100vh;padding:24px;display:grid}.app-loading__content{width:min(420px,100%)}.page-title h2{margin:0 0 4px;font-weight:800}.page-title--actions{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.page-title__actions{flex:none}.surface-card{border:1px solid var(--app-border);background:var(--app-card-gradient);box-shadow:var(--app-shadow-card);border-radius:18px}.interactive-card{transition:transform .18s,box-shadow .18s}.interactive-card:hover{box-shadow:var(--app-shadow-card-hover);transform:translateY(-2px)}.metric-card{height:100%}.metric-card__value{font-size:26px;font-weight:800;line-height:1.2}.status-tag{border-radius:999px;padding-inline:10px;font-weight:700}.status-tag--small{padding-inline:7px;font-size:12px;line-height:20px}@media (width<=767px){.page-title--actions{flex-direction:column;align-items:stretch}.page-title__actions .ant-btn{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important}}.skip-link{z-index:10000;border:1px solid var(--app-border);background:var(--app-surface-elevated);color:var(--app-text);box-shadow:var(--app-shadow-card);border-radius:10px;padding:10px 14px;transition:transform .16s;position:fixed;top:8px;left:8px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}:where(a,button,input,textarea,select,[tabindex]):focus-visible{outline:3px solid var(--app-primary);outline-offset:2px}[role=button][tabindex="0"]{cursor:pointer}.ant-table-wrapper{max-width:100%}.ant-table-cell{overflow-wrap:anywhere}@media (width<=767px){.ant-drawer-content-wrapper{width:100%!important;max-width:100vw!important}.ant-modal{max-width:calc(100vw - 16px);margin-inline:auto}.public-page-shell .ant-btn,.pwa-shell .ant-btn,.public-page-shell .ant-input,.public-page-shell .ant-input-affix-wrapper,.public-page-shell .ant-select-selector,.pwa-shell .ant-input,.pwa-shell .ant-input-affix-wrapper,.pwa-shell .ant-select-selector{min-height:44px}}.status-tag--default{color:var(--app-badge-text);background:var(--app-text-secondary);border-color:var(--app-text-secondary)}.status-tag--success{color:var(--app-badge-text);background:var(--app-vivid-success);border-color:var(--app-vivid-success)}.status-tag--warning{color:var(--app-badge-text);background:var(--app-vivid-warning);border-color:var(--app-vivid-warning)}.status-tag--danger{color:var(--app-badge-text);background:var(--app-vivid-danger);border-color:var(--app-vivid-danger)}.status-tag--info{color:var(--app-badge-text);background:var(--app-vivid-info);border-color:var(--app-vivid-info)}.ant-progress .ant-progress-bg{background:var(--app-vivid-primary)!important}.ant-progress-status-success .ant-progress-bg{background:var(--app-vivid-success)!important}.ant-progress-status-exception .ant-progress-bg{background:var(--app-vivid-danger)!important}.ant-badge .ant-badge-count{color:var(--app-badge-text);background:var(--app-vivid-primary);box-shadow:none;font-weight:800}.ant-menu-item-selected,.ant-menu-submenu-selected>.ant-menu-submenu-title{font-weight:800;color:var(--app-active-nav)!important}.ant-menu-item-selected .anticon,.ant-menu-submenu-selected>.ant-menu-submenu-title .anticon{color:var(--app-active-nav)!important}.metric-card--raspberry{background:var(--app-metric-raspberry)}.metric-card--blue{background:var(--app-metric-blue)}.metric-card--green{background:var(--app-metric-green)}.metric-card--violet{background:var(--app-metric-violet)}.metric-card--amber{background:var(--app-metric-amber)}.metric-card--teal{background:var(--app-metric-teal)}.ant-tabs .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn,.ant-tabs .ant-tabs-tab.ant-tabs-tab-active .anticon,.ant-segmented .ant-segmented-item-selected,.ant-segmented .ant-segmented-item-selected .anticon{color:var(--app-active-nav)!important}[data-theme=dark] .status-tag--default{color:var(--app-text);background:color-mix(in srgb, var(--app-surface-elevated) 88%, var(--app-text-secondary));border-color:color-mix(in srgb, var(--app-text-secondary) 46%, var(--app-border))}[data-theme=dark] .status-tag--success{color:var(--app-vivid-success);background:color-mix(in srgb, var(--app-vivid-success) 10%, var(--app-surface-elevated));border-color:color-mix(in srgb, var(--app-vivid-success) 58%, var(--app-border))}[data-theme=dark] .status-tag--warning{color:var(--app-vivid-warning);background:color-mix(in srgb, var(--app-vivid-warning) 10%, var(--app-surface-elevated));border-color:color-mix(in srgb, var(--app-vivid-warning) 58%, var(--app-border))}[data-theme=dark] .status-tag--danger{color:var(--app-vivid-danger);background:color-mix(in srgb, var(--app-vivid-danger) 10%, var(--app-surface-elevated));border-color:color-mix(in srgb, var(--app-vivid-danger) 58%, var(--app-border))}[data-theme=dark] .status-tag--info{color:var(--app-vivid-info);background:color-mix(in srgb, var(--app-vivid-info) 10%, var(--app-surface-elevated));border-color:color-mix(in srgb, var(--app-vivid-info) 58%, var(--app-border))}.ant-badge .ant-badge-count{color:var(--app-badge-text)}.pwa-width{width:100%}.pwa-auth{background:var(--app-page-bg);background-image:var(--app-page-glow);place-items:center;min-height:100vh;padding:18px;display:grid}.pwa-auth__theme{position:fixed;top:12px;right:12px}.pwa-auth__card{width:min(480px,100%);padding:26px}.pwa-auth h2{margin:0 0 6px;font-weight:800}.pwa-shell{background:var(--app-page-bg);border-inline:1px solid var(--app-border);max-width:720px;min-height:100vh;margin:0 auto}.pwa-header{z-index:10;border-bottom:1px solid var(--app-border);height:62px;box-shadow:var(--app-shadow-card);justify-content:space-between;align-items:center;padding:0 14px;display:flex;position:sticky;top:0}.pwa-content{background-image:var(--app-page-glow);min-height:calc(100vh - 130px);padding:18px 16px 96px}.pwa-nav{z-index:12;width:min(720px,100%);padding:10px 12px max(10px, env(safe-area-inset-bottom));background:var(--app-surface-elevated);border-top:1px solid var(--app-border);box-shadow:var(--app-shadow-card);grid-template-columns:repeat(3,1fr);gap:6px;display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.pwa-nav .ant-btn{flex-direction:column;justify-content:center;align-items:center;gap:2px;height:52px;font-size:12px;display:inline-flex}.pwa-project .ant-card-head-title{white-space:normal}.pwa-sync-banner{border-radius:0}.pwa-center{place-items:center;min-height:140px;display:grid}.pwa-project-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.pwa-project-kpis span{background:var(--app-surface-muted);border-radius:14px;justify-content:space-between;gap:8px;padding:10px 12px;display:flex}.pwa-group-row{border-bottom:1px solid var(--app-divider);justify-content:space-between;gap:12px;padding:10px 0;display:flex}.pwa-group-row:last-child{border-bottom:0}.pwa-student-filters{z-index:7;position:sticky;top:74px}.pwa-filter-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.pwa-filter-row .ant-select{width:100%}.pwa-student-card .ant-card-head{align-items:flex-start}.pwa-student-meta{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.pwa-student-meta>span{text-align:center;background:var(--app-surface-muted);border-radius:12px;padding:8px}.pwa-status-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.pwa-status-grid .ant-btn{white-space:normal;height:auto;min-height:48px}@media (width<=420px){.pwa-content{padding-inline:12px}.pwa-student-meta,.pwa-filter-row{grid-template-columns:1fr}}.pwa-shell,.pwa-auth{min-height:100dvh}.pwa-header{padding-top:env(safe-area-inset-top);height:calc(62px + env(safe-area-inset-top))}.pwa-content{min-height:calc(100dvh - 130px)}.pwa-status-grid .ant-btn{min-height:52px}@media (width<=560px){.pwa-shell{border-inline:0}.pwa-content{padding-inline:14px}.pwa-project-kpis{grid-template-columns:1fr}}@media (width<=380px){.pwa-header,.pwa-content{padding-inline:10px}.pwa-nav{gap:2px;padding-inline:6px}.pwa-nav .ant-btn{padding-inline:6px}}.pwa-contact-list,.pwa-group-list,.pwa-checklist,.pwa-notification-list,.pwa-conflict-list{gap:10px;display:grid}.pwa-contact-card{background:var(--app-surface-muted);border-radius:14px;grid-template-columns:40px minmax(0,1fr);align-items:start;gap:12px;padding:12px;display:grid}.pwa-contact-card__icon{background:var(--app-primary-soft);width:40px;height:40px;color:var(--app-primary);border-radius:12px;place-items:center;font-size:18px;display:grid}.pwa-contact-card__body{gap:3px;min-width:0;display:grid}.pwa-contact-card__role,.pwa-contact-card__name,.pwa-contact-card__phone{overflow-wrap:anywhere;min-width:0;display:block}.pwa-contact-card__name{font-size:16px;line-height:1.35}.pwa-contact-card__phone{color:var(--app-primary);width:fit-content;padding-block:3px;font-weight:700;text-decoration:none}.pwa-group-card{background:var(--app-surface-muted);border-radius:14px;gap:7px;padding:12px;display:grid}.pwa-group-card__head{justify-content:space-between;align-items:center;gap:10px;display:flex}.pwa-group-card__meta{color:var(--app-text-secondary);align-items:center;gap:7px;display:flex}.pwa-group-card__comment{overflow-wrap:anywhere}.pwa-checklist__item{appearance:none;border:1px solid var(--app-border);background:var(--app-surface-muted);width:100%;color:var(--app-text);text-align:left;font:inherit;cursor:pointer;border-radius:14px;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:10px;padding:12px;display:grid}.pwa-checklist__item:active{transform:translateY(1px)}.pwa-checklist__mark{color:var(--app-text-secondary);font-size:21px;line-height:1}.pwa-checklist__item.is-complete .pwa-checklist__mark{color:var(--app-success)}.pwa-checklist__item.is-complete{border-color:var(--app-success)}.pwa-project-note{white-space:pre-wrap;overflow-wrap:anywhere;margin-bottom:0!important}.pwa-notification-filter{justify-content:space-between;align-items:center;gap:12px;padding:0 4px;display:flex}.pwa-notification-card{border:1px solid var(--app-border);background:var(--app-surface-muted);border-radius:14px;overflow:hidden}.pwa-notification-card.is-unread{border-color:var(--app-info)}.pwa-notification-card__head{grid-template-columns:minmax(0,1fr) 44px;align-items:center;min-height:52px;display:grid}.pwa-notification-card__toggle{appearance:none;color:var(--app-text);text-align:left;min-width:0;min-height:52px;font:inherit;cursor:pointer;background:0 0;border:0;grid-template-columns:18px minmax(0,1fr) 8px;align-items:center;gap:8px;padding:10px 4px 10px 12px;display:grid}.pwa-notification-card__chevron{color:var(--app-text-secondary);font-size:12px}.pwa-notification-card__title{overflow-wrap:anywhere;min-width:0;font-weight:800;line-height:1.3}.pwa-notification-card__dot{background:var(--app-info);border-radius:50%;width:7px;height:7px}.pwa-notification-card__read{justify-self:center}.pwa-notification-card__body{border-top:1px solid var(--app-divider);padding:0 14px 12px 38px}.pwa-notification-card__body .ant-typography{overflow-wrap:anywhere;margin:10px 0 4px}.pwa-conflict-card{border:1px solid var(--app-danger);background:var(--app-surface-muted);border-radius:14px;gap:8px;padding:12px;display:grid}.pwa-sync-card{gap:14px;display:grid}.pwa-sync-state{background:var(--app-surface-muted);border-radius:14px;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:12px;padding:12px;display:grid}.pwa-sync-state__icon{background:var(--app-primary-soft);border-radius:12px;place-items:center;width:40px;height:40px;font-size:20px;display:grid}.pwa-sync-state>div{gap:2px;min-width:0;display:grid}.pwa-sync-state.is-online .pwa-sync-state__icon{color:var(--app-success)}.pwa-sync-state.is-offline .pwa-sync-state__icon{color:var(--app-warning)}.pwa-sync-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.pwa-sync-stats>div{background:var(--app-surface-muted);border-radius:12px;gap:2px;padding:10px 12px;display:grid}.pwa-sync-stats span{color:var(--app-text-secondary);font-size:13px}.pwa-sync-stats strong{font-size:20px}.pwa-sync-explain{grid-template-columns:22px minmax(0,1fr);align-items:start;gap:8px;display:grid}.pwa-sync-explain>.anticon{color:var(--app-info);margin-top:2px;font-size:18px}.pwa-sync-warning{color:var(--app-warning);background:var(--app-surface-muted);border-radius:12px;grid-template-columns:20px minmax(0,1fr);gap:8px;padding:10px 12px;display:grid}@media (width<=420px){.pwa-notification-card__body{padding-left:14px}}
