.dashboard-root{gap:20px!important}.dashboard-section-header{font-size:var(--lumo-font-size-l)!important;margin:12px 0 4px!important;color:var(--lumo-secondary-text-color);font-weight:500}.dashboard-actions-row{display:flex!important;flex-wrap:wrap;gap:16px!important;align-items:stretch;width:100%}.dashboard-actions-row>*{flex:1 1 220px}.dashboard-action-tile{display:flex;flex-direction:column;gap:6px;padding:16px 18px;border-radius:var(--lumo-border-radius-l);background:var(--lumo-base-color);border:1px solid var(--lumo-contrast-10pct);cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease;outline:none}.dashboard-action-tile:hover,.dashboard-action-tile:focus-visible{transform:translateY(-2px);border-color:var(--lumo-primary-color-50pct);box-shadow:var(--lumo-box-shadow-s)}.dashboard-action-icon{color:var(--lumo-primary-color);width:28px;height:28px}.dashboard-action-title{font-weight:600;color:var(--lumo-header-text-color);font-size:var(--lumo-font-size-m)}.dashboard-action-subtitle{color:var(--lumo-secondary-text-color);font-size:var(--lumo-font-size-s)}@media(max-width:768px){.dashboard-actions-row>*{flex:1 1 45%}}@media(max-width:480px){.dashboard-actions-row>*{flex:1 1 100%}}.dashboard-kpi-row{display:flex!important;flex-wrap:wrap;gap:16px!important;align-items:stretch;width:100%}.dashboard-kpi-row>*{flex:1 1 200px}.dashboard-bottom-row{display:flex!important;width:100%}.dashboard-bottom-row>*{flex:1}@media(min-width:1000px){.dashboard-bottom-row>*{width:75%;align-self:center}}@media(max-width:768px){.dashboard-kpi-row>*{flex:1 1 45%}}@media(max-width:480px){.dashboard-kpi-row>*{flex:1 1 100%}}.board-root{align-items:center;background:var(--lumo-base-color)}.board-title{margin:0;font-size:2.4rem;text-align:center}.board-date{color:var(--lumo-secondary-text-color);font-size:1.1rem;margin-bottom:var(--lumo-space-l)}.board-list{width:100%;max-width:920px;padding:0;gap:var(--lumo-space-s)}.board-notice{text-align:center;font-size:1.6rem;color:var(--lumo-secondary-text-color);padding:var(--lumo-space-xl)}.board-row{display:flex;align-items:center;gap:var(--lumo-space-l);width:100%;padding:var(--lumo-space-m) var(--lumo-space-l);border-radius:var(--lumo-border-radius-l);box-shadow:var(--lumo-box-shadow-xs);box-sizing:border-box;transition:background-color .3s}.board-place{font-size:1.6rem;font-weight:700;min-width:2.4rem;text-align:center;flex:0 0 auto}.board-name{font-size:1.5rem;font-weight:600;flex:1 1 auto;min-width:0;word-break:break-word}.board-time{display:flex;flex-direction:column;align-items:flex-end;line-height:1.15;min-width:5.5rem;flex:0 0 auto}.board-time-planned{font-size:1.2rem;opacity:.85}.board-time-actual{font-size:1rem;font-weight:600}.board-group{font-size:1.25rem;white-space:nowrap;flex:0 0 auto}.board-row--waiting{background-color:var(--lumo-contrast-5pct);color:var(--lumo-body-text-color)}.board-row--in-progress{background-color:#1565c0;color:#fff}.board-row--defended{background-color:#2e7d32;color:#fff}.board-row--next{background-color:#f9a825;color:#1f2933}.board-row--blink{animation:board-blink .9s ease-in-out infinite}@keyframes board-blink{0%,to{opacity:1;box-shadow:0 0 #f9a82500}50%{opacity:.5;box-shadow:0 0 0 6px #f9a8258c}}.schedule-board-root{align-items:stretch;gap:var(--lumo-space-m);background:var(--lumo-base-color);max-width:1100px;margin:0 auto}.schedule-board-search{max-width:420px;align-self:center}.schedule-board-hint{align-self:center;color:var(--lumo-secondary-text-color);font-size:var(--lumo-font-size-s)}@media(max-width:600px){.board-title{font-size:1.6rem}.board-date{font-size:.95rem;margin-bottom:var(--lumo-space-m)}.board-row{gap:var(--lumo-space-s);padding:var(--lumo-space-s) var(--lumo-space-m);flex-wrap:wrap}.board-place{font-size:1.2rem;min-width:1.8rem}.board-name{font-size:1.1rem;flex:1 1 60%}.board-time{min-width:auto;order:3;align-items:flex-start}.board-time-planned{font-size:1rem}.board-time-actual{font-size:.85rem}.board-group{font-size:1rem;order:2;margin-left:auto}.board-notice{font-size:1.25rem;padding:var(--lumo-space-l)}}.info-card{display:flex;flex-direction:column;background-color:#fff;border-radius:16px;box-shadow:0 2px 8px #00000012,0 1px 2px #0000000a;border:1px solid #e6e9f0;border-left:4px solid #cbd5e1;padding:20px;transition:box-shadow .2s;box-sizing:border-box}.info-card:hover{box-shadow:0 6px 20px #0000001a,0 2px 4px #0000000f}.info-card.info-card-kpi{flex:1 1 0;min-width:200px}.info-card.info-card-teachers{width:100%;font-size:18px}.info-card.info-card-accent-blue{border-left-color:#3b82f6}.info-card.info-card-accent-green{border-left-color:#22c55e}.info-card.info-card-accent-purple{border-left-color:#a855f7}.info-card.info-card-accent-orange{border-left-color:#f97316}.info-card-metric-block{display:flex;align-items:baseline;gap:8px;margin:8px 0 4px}.info-card-metric-number{font-size:2.6rem;font-weight:700;line-height:1;color:#0f172a;letter-spacing:-1px}.info-card-metric-label{font-size:.9rem;color:#94a3b8;font-weight:400}.info-card-progress{width:100%;margin:8px 0 4px;--vaadin-progress-bar-value-color: #3b82f6;--vaadin-progress-bar-background: #e2e8f0}.info-card-accent-green .info-card-progress{--vaadin-progress-bar-value-color: #22c55e}.info-card-accent-purple .info-card-progress{--vaadin-progress-bar-value-color: #a855f7}.info-card-accent-orange .info-card-progress{--vaadin-progress-bar-value-color: #f97316}.info-card-span-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.info-card-extra-span{font-size:12px;color:#64748b;background:#f1f5f9;padding:2px 8px;border-radius:20px}.info-card-p-row{display:flex;flex-direction:column;gap:6px;margin-top:8px}.info-card-p{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:13px;color:#334155;padding:4px 0;border-bottom:1px solid #f1f5f9}.info-card-p:last-child{border-bottom:none}.info-card-status-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px}.info-card-status-done{color:#22c55e}.info-card-status-pending{color:#f97316}.info-card-span-name{font-weight:500;font-size:20px;color:#0f172a;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.info-card-span-count{font-weight:700;color:#2563eb;background:#eff6ff;padding:2px 10px;border-radius:20px;font-size:20px;min-width:36px;text-align:center;flex-shrink:0}@media(max-width:600px){.info-card-metric-number{font-size:2rem}.info-card.info-card-kpi{min-width:140px}}.settings-cards-layout{flex-wrap:wrap;gap:20px;padding:8px 0;align-items:flex-start}.settings-nav-card{width:220px;min-height:120px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.settings-nav-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px #0000001f}.settings-nav-card-icon{color:var(--lumo-primary-color);width:var(--lumo-icon-size-l);height:var(--lumo-icon-size-l)}.initials-badge{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;min-width:32px;border-radius:50%;color:#fff;font-weight:700;font-size:12px;letter-spacing:.5px;-webkit-user-select:none;user-select:none}vaadin-grid::part(queue-row-inactive){color:var(--lumo-disabled-text-color);background-color:var(--lumo-shade-5pct);text-decoration:line-through}vaadin-grid::part(queue-row-current){background-color:var(--lumo-primary-color-10pct);font-weight:600}vaadin-grid::part(queue-row-defended){background-color:var(--lumo-success-color-10pct)}.defend-mode-root{gap:16px!important;padding:var(--lumo-space-l)!important}.defend-mode-title{margin:0;font-size:var(--lumo-font-size-xl)}.defend-mode-subtitle{color:var(--lumo-secondary-text-color);font-size:var(--lumo-font-size-m);text-align:center}.defend-mode-header{margin-bottom:var(--lumo-space-m)}.defend-mode-card{background:var(--lumo-base-color);border:1px solid var(--lumo-contrast-10pct);border-radius:var(--lumo-border-radius-l);box-shadow:var(--lumo-box-shadow-s);width:min(900px,100%);align-items:center;text-align:center}.defend-mode-position{font-size:var(--lumo-font-size-l);font-weight:600;color:var(--lumo-primary-text-color);padding:4px 12px;background:var(--lumo-primary-color-10pct);border-radius:var(--lumo-border-radius-m)}.defend-mode-student{font-size:2.2rem;font-weight:700;margin:0}.defend-mode-group{font-size:var(--lumo-font-size-l);color:var(--lumo-secondary-text-color)}.defend-mode-time{font-size:var(--lumo-font-size-l);font-family:var(--lumo-font-family);font-weight:500}.defend-mode-meta{gap:var(--lumo-space-m)!important;flex-wrap:wrap;justify-content:center;padding:var(--lumo-space-s) 0}.defend-mode-pending{color:var(--lumo-secondary-text-color);font-size:var(--lumo-font-size-m);margin-top:var(--lumo-space-s)}.defend-mode-actions{width:min(900px,100%);gap:var(--lumo-space-m)!important;flex-wrap:wrap}.defend-mode-nav{width:min(900px,100%);gap:var(--lumo-space-m)!important}.defend-mode-next-wrap{width:min(900px,100%)}.defend-mode-next-heading{font-size:var(--lumo-font-size-m);color:var(--lumo-secondary-text-color);margin:var(--lumo-space-m) 0 var(--lumo-space-xs) 0}.defend-mode-next-list{gap:var(--lumo-space-xs)!important}.defend-mode-next-item{padding:var(--lumo-space-xs) var(--lumo-space-s);border-left:3px solid var(--lumo-contrast-20pct);background:var(--lumo-contrast-5pct);border-radius:var(--lumo-border-radius-s)}vaadin-select.dchk-green{color:var(--lumo-success-text-color)}vaadin-select.dchk-green::part(input-field){background-color:var(--lumo-success-color-10pct)}vaadin-select.dchk-yellow{color:var(--lumo-warning-text-color)}vaadin-select.dchk-yellow::part(input-field){background-color:var(--lumo-warning-color-10pct)}vaadin-select.dchk-red{color:var(--lumo-error-text-color)}vaadin-select.dchk-red::part(input-field){background-color:var(--lumo-error-color-10pct)}vaadin-select.dchk-grey{color:var(--lumo-secondary-text-color)}vaadin-select.dchk-grey::part(input-field){background-color:var(--lumo-contrast-10pct)}.dchk-ready-icon{color:var(--lumo-success-color);flex:0 0 auto}@media(max-width:1024px){.dchk-grid vaadin-select::part(input-field),.dchk-grid vaadin-text-field::part(input-field){min-height:2.75rem}}@media(max-width:600px){.dchk-root{padding:var(--lumo-space-s)!important}.dchk-grid vaadin-select::part(input-field),.dchk-grid vaadin-text-field::part(input-field){min-height:3rem;font-size:var(--lumo-font-size-m)}.dchk-grid vaadin-grid-cell-content{font-size:var(--lumo-font-size-s)}}.details-scroll-container{overscroll-behavior:contain}vaadin-grid:has(.details-scroll-container:hover){overflow:hidden!important}.grid-no-scroll{overflow:hidden!important}.version-span{font-size:14px;align-self:center;color:gray}
