* { box-sizing:border-box; margin:0; padding:0; font-family:'Montserrat',sans-serif; } body { margin:0; padding:0; color:var(--text-primary); background-color:var(--background) !important; min-height:100vh; font-size:16px; } @media (max-width:768px) { body { font-size:14px; } }.kreta-container { min-height:100vh; display:flex; flex-direction:column; } .kreta-main { flex:1; padding:clamp(1rem,3vw,2rem); max-width:1400px; margin:0 auto; width:100%; } .k-overlay,.k-widget.k-window { display:none !important; } .card { border-radius:24px; overflow:hidden; animation:fadeIn 0.3s ease; margin-bottom:1rem; } .timetable-grid { display:grid; grid-template-columns:80px repeat(5,1fr); overflow-x:auto; } .grid-header { padding:12px; text-align:center; font-weight:600; color:var(--text-primary); border-radius:12px; min-width:120px; } .grid-header:first-child { min-width:80px; } .grid-header { display:flex; justify-content:space-between; padding:0 10px; } .day-name { text-align:left; color:var(--text-primary); font-family:Montserrat; font-size:16px; font-style:normal; font-weight:600; line-height:normal; } .day-date { text-align:right; color:var(--text-secondary); font-family:Figtree; font-size:16px; font-style:normal; font-weight:500; line-height:130%; } .notice-header { min-width:80px; } .notice-slot { padding:4px 8px; min-height:auto; } .special-day-notice { background:#F99F50; color:white; padding:8px 12px; border-radius:8px; text-align:center; box-shadow:0 1px 3px rgba(0,0,0,0.1); font-size:0.85rem; } .special-day-notice .special-day-title { font-weight:600; margin-bottom:2px; } .special-day-notice .special-day-subtitle { font-size:0.75rem; opacity:0.9; font-weight:400; } .time-slot { padding:12px; text-align:center; color:var(--text-secondary); font-size:14px; border-radius:12px; } .lesson-slot { min-height:100px; border-radius:12px; padding:8px; transition:transform 0.2s ease; display:grid; grid-gap:16px; } .lesson-slot.empty-slot { border: 2px dashed var(--text-secondary); opacity: 0.3; background: transparent; margin: 8px; border-radius: 16px; min-height: 84px; } .empty-lesson-placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; color: var(--text-secondary); font-size: 14px; opacity: 0.5; } .lesson-card { display:flex; padding:16px; flex-direction:column; align-items:flex-start; gap:10px; align-self:stretch; border-radius:16px; background:var(--card-card); box-shadow:0px 1px var(--shadow-blur,2px) 0px var(--accent-shadow); transition:all 0.3s cubic-bezier(0.4,0,0.2,1); transform:translateY(0); } .lesson-card:hover, .lesson-card.group-hover { transform:translateY(-4px); box-shadow:0 8px 12px var(--accent-shadow); } .lesson-card.substituted { background:var(--warning-card); } .lesson-card.cancelled { border-radius:16px; background:var(--card-translucent); } .lesson-card.cancelled .lesson-subject,.lesson-card.cancelled .lesson-teacher,.lesson-card.cancelled .lesson-room { opacity:0.5; text-decoration:line-through; } .lesson-card.lesson-spans-multiple { border-bottom-left-radius: 0; border-bottom-right-radius: 0; } .lesson-card.lesson-continuation.continuation-middle { border-radius: 0; } .lesson-card.lesson-continuation.continuation-end { border-top-left-radius: 0; border-top-right-radius: 0; } .lesson-slot.has-multi-start { padding-bottom: 0; } .lesson-slot.has-continuation { padding-top: 0; } .lesson-subject { align-self:stretch; color:var(--text-primary); font-family:Montserrat; font-size:16px; font-style:normal; font-weight:600; line-height:normal; } .lesson-teacher { color:var(--text-secondary); font-family:Figtree; font-size:16px; font-style:normal; font-weight:500; line-height:130%; } .lesson-bottom { margin-top:auto; display:flex; justify-content:space-between; align-items:flex-end; width:100%; } .lesson-room { background:var(--accent-15); color:var(--text-secondary); padding:4px 8px; border-radius:12px; font-size:12px; font-weight:500; } .lesson-card.substituted .lesson-bottom .lesson-room { background:var(--warning-15); } .lesson-time { color:var(--text-secondary); font-size:12px; font-weight:500; margin-left:auto; text-align:right; min-width:45px; } .lesson-indicators { position:absolute; top:8px; right:8px; display:flex; gap:4px; } .lesson-indicator { display:flex; align-items:center; justify-content:center; width:28px; height:28px; border-radius:50%; background:var(--accent-15); color:var(--accent-accent); } .lesson-indicator.homework-indicator { background:var(--accent-15); color:var(--accent-accent); } .lesson-indicator.test-indicator { background:var(--warning-15); color:var(--warning-accent); } .lesson-indicator .material-icons-round { font-size:18px; } .week-controls { display:flex; flex-direction:column; align-items:center; justify-content:center; margin:16px auto; background:var(--card-card); border-radius:12px; box-shadow:0px 1px var(--shadow-blur) 0px var(--accent-shadow); max-width:800px; padding:16px; } .week-selector-container { width:100%; position:relative; } .expand-week-view-btn { display:flex; align-items:center; justify-content:center; width:40px; height:40px; border:none; border-radius:8px; background:var(--button-secondaryFill); color:var(--text-primary); cursor:pointer; transition:all 0.2s ease; margin-left:12px; } .expand-week-view-btn:hover { background:var(--accent-15); color:var(--accent-accent); transform:scale(1.05); } .expand-week-view-btn .material-icons-round { font-size:18px; } .week-selector { display:flex; align-items:center; justify-content:center; gap:clamp(8px,2vw,12px); max-width:100%; } .week-nav-btn { display:flex; align-items:center; justify-content:center; width:40px; height:40px; border:none; border-radius:8px; background:var(--button-secondaryFill); color:var(--text-primary); cursor:pointer; transition:all 0.2s ease; } .week-nav-btn:hover:not(:disabled) { background:var(--accent-15); color:var(--accent-accent); transform:scale(1.05); } .week-nav-btn .material-icons-round { font-size:20px; } .week-display { display:flex; gap:8px; align-items:center; } .week-cell { display:flex; flex-direction:column; align-items:center; justify-content:center; width:40px; height:40px; border:2px solid var(--button-secondaryFill); border-radius:8px; background:var(--button-secondaryFill); color:var(--text-primary); font-family:inherit; font-weight:500; cursor:pointer; transition:all 0.2s ease; position:relative; gap:2px; } .week-cell:hover { background:var(--accent-15); border-color:var(--accent-accent); color:var(--accent-accent); transform:scale(1.05); } .week-cell.selected { background:var(--accent-accent); border-color:var(--accent-accent); color:white; font-weight:600; } .week-cell.selected:hover { background:var(--accent-accent); transform:scale(1.05); } .week-cell.current-week { border-color:var(--accent-accent); box-shadow:0 0 0 1px var(--accent-accent); } .week-cell.current-week.selected { box-shadow:0 0 0 2px rgba(255,255,255,0.5); } .week-number { font-size:14px; font-weight:inherit; } .current-indicator { font-size:8px; color:var(--accent-accent); line-height:1; } .week-cell.selected .current-indicator { color:white; } .week-tooltip { position:absolute; background:var(--card-card); border:1px solid var(--border-border); border-radius:8px; padding:8px 12px; font-size:14px; color:var(--text-primary); box-shadow:0 4px 12px rgba(0,0,0,0.15); pointer-events:none; opacity:0; transition:opacity 0.2s ease; z-index:1000; white-space:nowrap; } .week-tooltip.show { opacity:1; } .week-modal { position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.5); z-index:10000; display:flex; align-items:center; justify-content:center; padding:20px; } .week-modal-content { background:var(--card-card); border-radius:16px; max-width:700px; max-height:70vh; width:100%; overflow:hidden; box-shadow:0 20px 40px rgba(0,0,0,0.3); } .week-modal-header { display:flex; align-items:center; justify-content:space-between; padding:20px 24px; border-bottom:1px solid var(--border-border); } .week-modal-grid { display:grid; grid-template-columns:repeat(13,1fr); gap:8px; padding:20px; overflow-y:auto; } .modal-week-cell { width:60px; height:60px; font-size:12px; } @media (max-width:768px) { .week-modal-content { max-width:95vw; max-height:80vh; } .week-modal-grid { grid-template-columns:repeat(10,1fr); gap:6px; padding:16px; max-height:calc(80vh - 80px); } .modal-week-cell { width:35px; height:35px; font-size:11px; } }.week-modal-header h3 { margin:0; color:var(--text-primary); font-size:20px; font-weight:600; } .week-modal-close { display:flex; align-items:center; justify-content:center; width:40px; height:40px; border:none; border-radius:8px; background:var(--button-secondaryFill); color:var(--text-primary); cursor:pointer; transition:all 0.2s ease; } .week-modal-close:hover { background:var(--accent-15); color:var(--accent-accent); } .week-modal-close .material-icons-round { font-size:24px; } .week-modal-grid { display:grid; grid-template-columns:repeat(auto-fill, 60px); gap:4px; padding:24px; max-height:70vh; overflow-y:auto; justify-content:center; } .week-modal-grid .week-cell { width:60px; height:60px; font-size:14px; } @media (max-width:768px) { .week-modal-grid { grid-template-columns:repeat(auto-fill, 40px); gap:4px; } .week-modal-grid .week-cell { width:40px; height:40px; font-size:12px; } .week-modal-content { margin:10px; } .week-modal-header { padding:16px 20px; } .week-modal-grid { padding:16px; } }@media (max-width:768px) { .week-grid { grid-template-columns:repeat(10,1fr); gap:6px; } .week-cell { width:40px; height:35px; font-size:12px; } .week-controls { max-width:600px; padding:15px; } }@media (max-width:480px) { .week-grid { grid-template-columns:repeat(8,1fr); gap:4px; } .week-cell { width:40px; height:40px; font-size:11px; } .week-controls { max-width:400px; padding:12px; } }.day-navigation { display:none; align-items:center; justify-content:space-between; margin-bottom:1rem; padding:0 1rem; } .day-nav-btn { background:var(--card-card); box-shadow: 0px 1px var(--shadow-blur, 2px) 0px var(--accent-shadow); border-radius:12px; padding:12px 16px; color:var(--text-secondary); cursor:pointer; transition:all 0.2s ease; display:flex; align-items:center; gap:8px; border: #00000000 0px solid; } .day-nav-btn:hover { background:var(--accent-15); color:var(--accent-accent); } .current-day-info { text-align:center; flex:1; margin:0 1rem; } .current-day-name { font-size:18px; font-weight:600; color:var(--text-primary); margin-bottom:4px; } .current-day-date { font-size:14px; color:var(--text-secondary); } @media (max-width:1024px) { .timetable-grid { grid-template-columns:60px repeat(5,minmax(200px,1fr)); } .lesson-slot { min-height:80px; } }@media (max-width:768px) { .day-navigation { display:flex; } .timetable-container { overflow: hidden; flex: 1; display: flex; flex-direction: column; } .timetable-grid { grid-template-columns:60px 1fr; overflow:visible; } .grid-header:not(:first-child) { display:none; } .grid-header.active { display:flex !important; } .notice-slot { display:none; } .notice-slot.active { display:block; } .lesson-slot { display:none; } .lesson-slot.active { display:block; } .lesson-card { padding:8px; } .lesson-subject { font-size:14px; } .lesson-teacher,.lesson-room { font-size:12px; } }.lesson-modal { display:none; position:fixed; top:0; left:0; right:0; bottom:0; background:rgba(0,0,0,0.5); z-index:1000; padding:1rem; align-items:center; justify-content:center; opacity:0; transition:opacity 0.3s ease; } .lesson-modal.show { display:flex !important; opacity:1; } .modal-content { background:var(--card-card) !important; border-radius:24px; border-width:0 !important; box-shadow: 0 1px var(--shadow-blur) 0 var(--accent-shadow); width:100%; max-width:500px; max-height:90vh; overflow-y:auto; position:relative; transform:translateY(20px); opacity:0; transition:all 0.3s ease; } .lesson-modal.show .modal-content { transform:translateY(0); opacity:1; } .modal-header { display:flex; justify-content:space-between; align-items:center; padding:1.5rem; background:var(--button-secondaryFill); border: none !important; } .modal-title { font-size:18px; font-weight:600; color:var(--text-primary); } .modal-close { background:none; border:none; color:var(--text-secondary); cursor:pointer; padding:0.5rem; border-radius:8px; transition:all 0.2s ease; } .modal-header-buttons { display: flex; align-items: center; gap: 0.5rem; } .modal-add-btn { background: none; border: none; color: var(--text-secondary); cursor: pointer; padding: 0.5rem; border-radius: 8px; transition: all 0.2s ease; display: flex; align-items: center; justify-content: center; } .modal-add-btn:hover { background: var(--background); color: var(--text-primary); } .modal-close { background: none; border: none; color: var(--text-secondary); cursor: pointer; padding: 0.5rem; border-radius: 8px; transition: all 0.2s ease; display: flex; align-items: center; justify-content: center; } .modal-close:hover { background: var(--background); color: var(--text-primary); } .modal-body { padding:1.5rem; background-color:var(--button-secondaryFill); } .lesson-details { display:flex; flex-direction:column; gap:1rem; } .detail-item { display:flex; align-items:center; gap:0.75rem; } .detail-label { color:var(--text-secondary); font-weight:500; min-width:80px; } .detail-value { color:var(--text-primary); } .modal-section { margin-top:1.5rem; padding-top:1.5rem; border-top:1px solid var(--background-0); } .modal-section h4 { display:flex; align-items:center; gap:0.5rem; color:var(--text-primary); font-size:16px; margin-bottom:0.75rem; } .homework-section h4 { color:var(--accent-accent); } .test-section h4 { color:var(--warning-accent); } .custom-homework-section h4, .custom-tests-section h4 { color: var(--accent-accent); } .custom-homework-list, .custom-tests-list { display: flex; flex-direction: column; gap: 0.75rem; } .custom-homework-item, .custom-test-item { display: flex; align-items: center; justify-content: space-between; padding: 0.75rem; background: var(--background); border-radius: 8px; border: 1px solid var(--background-0); transition: all 0.2s ease; } .custom-homework-item.completed, .custom-test-item.completed { opacity: 0.6; } .custom-homework-item.completed .homework-text, .custom-test-item.completed .test-text { text-decoration: line-through; } .homework-text, .test-text { flex: 1; color: var(--text-primary); font-size: 14px; line-height: 1.4; } .homework-actions, .test-actions { display: flex; align-items: center; gap: 0.5rem; } .homework-complete-btn, .test-complete-btn, .homework-delete-btn, .test-delete-btn { background: none; border: none; cursor: pointer; padding: 0.25rem; border-radius: 4px; transition: all 0.2s ease; display: flex; align-items: center; justify-content: center; } .homework-complete-btn:hover, .test-complete-btn:hover { background: var(--accent-accent-20); } .homework-delete-btn:hover, .test-delete-btn:hover { background: var(--error-20); } .empty-message { color: var(--text-secondary); font-style: italic; text-align: center; padding: 1rem; margin: 0; } .add-item-modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.5); display: flex !important; align-items: center !important; justify-content: center !important; z-index: 10001; opacity: 0; visibility: hidden; transition: all 0.3s ease; } .add-item-modal.show { opacity: 1; visibility: visible; } .add-modal-content { background: var(--button-secondaryFill); border-radius: 12px; width: 90%; max-width: 400px; max-height: 90vh; overflow-y: auto; position: relative; transform: translateY(20px); opacity: 0; transition: all 0.3s ease; } .add-item-modal.show .add-modal-content { transform: translateY(0); opacity: 1; } .add-modal-header { display: flex; justify-content: space-between; align-items: center; padding: 1.5rem; border-bottom: 1px solid var(--background-0); } .add-modal-header h3 { font-size: 18px; font-weight: 600; color: var(--text-primary); margin: 0; } .add-modal-close { background: none; border: none; color: var(--text-secondary); cursor: pointer; padding: 0.5rem; border-radius: 8px; transition: all 0.2s ease; display: flex; align-items: center; justify-content: center; } .add-modal-close:hover { background: var(--background); color: var(--text-primary); } .add-modal-body { padding: 1.5rem; display: flex; flex-direction: column; gap: 1rem; } .type-selection, .text-input { display: flex; flex-direction: column; gap: 0.5rem; } .type-selection label, .text-input label { color: var(--text-primary); font-weight: 500; font-size: 14px; } .type-select { padding: 0.75rem; border: 1px solid var(--background-0); border-radius: 8px; background: var(--background); color: var(--text-primary); font-size: 14px; transition: all 0.2s ease; } .type-select:focus { outline: none; border-color: var(--accent-accent); } .item-text { padding: 0.75rem; border: 1px solid var(--background-0); border-radius: 8px; background: var(--background); color: var(--text-primary); font-size: 14px; font-family: inherit; resize: vertical; min-height: 80px; transition: all 0.2s ease; } .item-text:focus { outline: none; border-color: var(--accent-accent); } .item-text::placeholder { color: var(--text-secondary); } .add-modal-actions { display: flex; gap: 0.75rem; justify-content: flex-end; margin-top: 0.5rem; } .cancel-btn, .save-btn { padding: 0.75rem 1.5rem; border: none; border-radius: 8px; font-size: 14px; font-weight: 500; cursor: pointer; transition: all 0.2s ease; } .cancel-btn { background: var(--background); color: var(--text-secondary); border: 1px solid var(--background-0); } .cancel-btn:hover { background: var(--background-0); color: var(--text-primary); } .save-btn { background: var(--accent-accent); color: white; } .save-btn:hover { background: var(--accent-accent-80); } @media (max-width: 768px) { .lesson-modal { z-index: 10000; } .add-item-modal { z-index: 10001; } .modal-content { width: 95%; max-width: none; margin: 1rem; } .add-modal-content { width: 95%; max-width: none; margin: 1rem; } .modal-header, .add-modal-header { padding: 1rem; } .modal-body, .add-modal-body { padding: 1rem; } .modal-header-buttons { gap: 0.25rem; } .modal-add-btn, .modal-close, .add-modal-close { padding: 0.375rem; } .modal-add-btn img, .modal-close img, .add-modal-close img { width: 20px !important; height: 20px !important; } .custom-homework-item, .custom-test-item { padding: 0.5rem; flex-direction: column; align-items: flex-start; gap: 0.5rem; } .homework-actions, .test-actions { align-self: flex-end; } .homework-text, .test-text { font-size: 13px; } .add-modal-actions { flex-direction: column; gap: 0.5rem; } .cancel-btn, .save-btn { width: 100%; padding: 0.875rem; } } @media (min-width: 769px) { .lesson-modal { z-index: 10000; } .add-item-modal { z-index: 10001; } .modal-content { position: relative; } .add-modal-content { position: relative; } } .tema-section h4 { color:var(--primary-accent); } .homework-content,.test-content,.tema-content { background:var(--card-translucent); padding:1rem; border-radius:8px; color:var(--text-primary); } .homework-attachments { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--background-0); } .attachments-list { display: flex; flex-direction: column; gap: 0.5rem; } .attachment-item { display: flex; align-items: center; justify-content: center; padding: 0.75rem; background-color: var(--accent-15); border-radius: 6px; border: 1px solid var(--background-0); cursor: pointer; transition: all 0.2s ease; text-align: center; } .attachment-item:hover { background-color: var(--background-0); transform: translateY(-1px); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); } .attachment-item:active { transform: translateY(0); background-color: var(--accent-accent); opacity: 0.8; } .test-details-loading { color:var(--text-secondary); font-style:italic; margin-top:0.5rem; } .homework-details-loading { color:var(--text-secondary); font-style:italic; margin-top:0.5rem; } .test-details { color:var(--text-primary); padding:0.75rem; background:var(--background-0); } .homework-details { color:var(--text-primary); padding:0.75rem; background:var(--background-0); border-radius:6px; margin-bottom:0.75rem; } .homework-details p { margin:0.5rem 0; line-height:1.4; } .homework-details p:first-child { margin-top:0; } .homework-details p:last-child { margin-bottom:0; } .homework-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; } .homework-header h4 { margin: 0; display: flex; align-items: center; gap: 8px; } .homework-completion-header-btn { background: transparent; border: 2px solid var(--border-color); border-radius: 50%; width: 32px; height: 32px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.2s ease; opacity: 0.6; } .homework-completion-header-btn:hover { opacity: 1; border-color: var(--accent-accent); background: var(--background-hover); } .homework-completion-header-btn.completed { background: var(--success-color, #4caf50); border-color: var(--success-color, #4caf50); opacity: 1; } .homework-completion-header-btn.completed:hover { background: var(--success-color-hover, #45a049); border-color: var(--success-color-hover, #45a049); } .homework-completion-header-btn img { filter: var(--icon-filter, none); } .homework-completion-header-btn.completed img { filter: brightness(0) invert(1); } .homework-completion { margin-top:15px; text-align:center; } .homework-completion-btn { background:var(--background-secondary); border:2px solid var(--border-color); color:var(--text-primary); padding:10px 20px; border-radius:8px; cursor:pointer; font-size:14px; font-weight:500; transition:all 0.2s ease; display:inline-flex; align-items:center; gap:8px; } .homework-completion-btn:hover { background:var(--background-hover); border-color:var(--accent-accent); } .homework-completion-btn.completed { background:var(--success-background, #e8f5e8); border-color:var(--success-color, #4caf50); color:var(--success-color, #4caf50); } .homework-completion-btn.completed:hover { background:var(--success-background-hover, #d4edda); } .homework-completion-btn span { font-size:16px; font-weight:bold; } .test-details p { margin:0.5rem 0; line-height:1.4; } .test-details p:first-child { margin-top:0; } .test-details p:last-child { margin-bottom:0; } .test-details strong { color:var(--warning-accent); font-weight:600; } .test-details-error { color:var(--error-accent); font-style:italic; margin-top:0.5rem; } .detail-item .line-through { text-decoration:line-through; } .detail-item.hidden { display:none; } @keyframes fadeIn { from { opacity:0; transform:translateY(-20px); } to { opacity:1; transform:translateY(0); } }@keyframes dropdownShow { from { opacity:0; transform:translateY(-10px) scale(0.95); } to { opacity:1; transform:translateY(0) scale(1); } }@keyframes modalShow { from { opacity:0; transform:scale(0.9); } to { opacity:1; transform:scale(1); } }@media (max-width:768px) { .kreta-header { flex-direction:column; text-align:center; } .user-info { text-align:center; } .lesson-cell { min-width:200px; } }::-webkit-scrollbar { width:8px; height:8px; } ::-webkit-scrollbar-track { background:var(--background); } ::-webkit-scrollbar-thumb { background:var(--text-secondary); border-radius:4px; } ::-webkit-scrollbar-thumb:hover { background:var(--text-primary); } .grid-header.special-day { background:linear-gradient(135deg,#F99F50,#FF8C42); color:white; position:relative; } .special-day-indicator { display:block; font-size:0.7rem; font-weight:500; margin-top:2px; opacity:0.9; text-align:center; } .special-day-card { background:#F99F50; color:white; padding:12px; border-radius:8px; margin:4px; text-align:center; cursor:pointer; transition:all 0.2s ease; box-shadow:0 2px 4px rgba(0,0,0,0.1); } .special-day-card:hover { transform:translateY(-2px); box-shadow:0 4px 8px rgba(0,0,0,0.15); } .special-day-title { font-weight:600; font-size:1.1rem; margin-bottom:4px; } .special-day-subtitle { font-size:0.9rem; opacity:0.9; font-weight:400; } .week-select { min-width:200px; max-width:300px; } @media (max-width:768px) { .special-day-indicator { font-size:0.6rem; } .special-day-card { padding:8px; margin:2px; } .special-day-title { font-size:0.8rem; } .special-day-subtitle { font-size:0.7rem; } }.more-link { margin-top:auto; display:inline-flex; align-items:center; gap:0.5rem; color:var(--accent-accent); text-decoration:none; font-weight:500; padding-top:16px; transition:gap 0.2s ease; font-size:clamp(0.875rem,1.5vw,1rem); } .timetable-calendar { display: flex; flex-direction: column; background: var(--card-card); border-radius: 16px; overflow: hidden; box-shadow: 0px 1px 2px 0px var(--accent-shadow); flex: 1; } .calendar-header { display: grid; grid-template-columns: 80px repeat(5, 1fr); background: var(--background-0); border-bottom: 1px solid var(--background-0); padding: 0; gap: 0; } .time-column-header { padding: 12px; border-right: 1px solid var(--background-0); } .calendar-day-header { padding: 12px; border-right: 1px solid var(--background-0); text-align: center; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; } .calendar-day-header:last-child { border-right: none; } .calendar-day-header .day-name { font-weight: 600; color: var(--text-primary); font-size: 14px; } .calendar-day-header .day-date { color: var(--text-secondary); font-size: 12px; font-weight: 500; } .calendar-notices { display: grid; grid-template-columns: 80px repeat(5, 1fr); border-bottom: 1px solid var(--background-0); padding: 0; gap: 0; background: var(--background); } .notices-time-column { border-right: 1px solid var(--background-0); } .notice-day-slot { padding: 8px; border-right: 1px solid var(--background-0); display: flex; align-items: center; justify-content: center; min-height: 60px; } .notice-day-slot:last-child { border-right: none; } .notice-day-slot .special-day-notice { width: 100%; margin: 0; } .calendar-grid { display: grid; grid-template-columns: 80px repeat(5, 1fr); gap: 0; background: var(--background); position: relative; flex: 1; min-height: 0; } .time-column { border-right: 1px solid var(--background-0); background: var(--background-0); position: sticky; left: 0; z-index: 10; display: flex; flex-direction: column; height: 100%; } .time-marker { padding: 8px; text-align: center; font-size: 12px; font-weight: 500; color: var(--text-secondary); border-bottom: 1px solid var(--background); display: flex; align-items: flex-start; justify-content: center; } .time-marker:last-child { border-bottom: none; } .calendar-day-column { position: relative; border-right: 1px solid var(--background-0); background: var(--background); height: 100%; } .calendar-day-column:last-child { border-right: none; } .day-background { position: absolute; top: 0; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; pointer-events: none; width: 100%; } .time-slot-bg { border-bottom: 1px solid var(--background-0); flex-shrink: 0; } .time-slot-bg:last-child { border-bottom: none; } .lessons-container { position: absolute; top: 0; left: 0; right: 0; bottom: 0; width: 100%; height: 100%; } .calendar-lesson-card { position: absolute; left: 4px; right: 4px; width: calc(100% - 8px); display: flex; flex-direction: column; padding: 10px; border-radius: 12px; background: var(--card-card); box-shadow: 0px 1px 2px 0px var(--accent-shadow); border: 1px solid var(--background-0); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); cursor: pointer; overflow: hidden; z-index: 2; } .calendar-lesson-card:hover { transform: translateY(-2px); box-shadow: 0 4px 8px var(--accent-shadow); z-index: 5; } .calendar-lesson-card.substituted { background: var(--warning-card); border-color: var(--warning-15); } .calendar-lesson-card.cancelled { background: var(--card-translucent); opacity: 0.6; } .calendar-lesson-card.cancelled .lesson-subject, .calendar-lesson-card.cancelled .lesson-teacher, .calendar-lesson-card.cancelled .lesson-time-info { opacity: 0.5; text-decoration: line-through; } .calendar-lesson-card .lesson-subject { font-weight: 600; font-size: 13px; color: var(--text-primary); line-height: 1.2; margin-bottom: 2px; } .calendar-lesson-card .lesson-teacher { font-size: 11px; color: var(--text-secondary); margin-bottom: 4px; line-height: 1.2; } .calendar-lesson-card .lesson-time-info { font-size: 11px; color: var(--text-secondary); display: flex; justify-content: space-between; gap: 4px; margin-top: auto; } .calendar-lesson-card .lesson-room { background: var(--accent-15); padding: 2px 6px; border-radius: 8px; font-size: 10px; font-weight: 500; white-space: nowrap; } .calendar-lesson-card.substituted .lesson-room { background: var(--warning-15); } .calendar-lesson-card .lesson-time { font-weight: 500; white-space: nowrap; } .calendar-lesson-card .lesson-indicators { position: absolute; top: 4px; right: 4px; display: flex; gap: 2px; flex-wrap: wrap; } .calendar-lesson-card .lesson-indicator { display: flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%; background: var(--accent-15); color: var(--accent-accent); } .calendar-lesson-card .lesson-indicator.test-indicator { background: var(--warning-15); color: var(--warning-accent); } .calendar-lesson-card .lesson-indicator.custom-homework-indicator, .calendar-lesson-card .lesson-indicator.custom-test-indicator { background: rgba(0, 0, 0, 0.1); } @media (max-width: 768px) { .calendar-grid { grid-template-columns: 60px repeat(5, 1fr); } .time-column-header { padding: 8px; } .calendar-day-header { padding: 8px; } .calendar-day-header .day-name { font-size: 12px; } .calendar-day-header .day-date { font-size: 10px; } .time-marker { padding: 4px; font-size: 10px; } .calendar-lesson-card { padding: 6px; } .calendar-lesson-card .lesson-subject { font-size: 11px; } .calendar-lesson-card .lesson-teacher { font-size: 9px; } .calendar-lesson-card .lesson-time-info { font-size: 9px; } .calendar-lesson-card .lesson-indicator { width: 20px; height: 20px; } .calendar-lesson-card .lesson-indicator img { width: 14px !important; height: 14px !important; } }