@import "https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css";body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.layout{height:100vh;display:flex}.sidebar{z-index:1000;background:#f8f9fa;width:250px;height:100%;padding:20px;transition:transform .3s;position:fixed;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.close-btn{cursor:pointer;background:0 0;border:none;font-size:24px}.user-info-sidebar{margin-bottom:20px}.sidebar nav ul{padding:0;list-style:none}.sidebar nav ul li{margin-bottom:10px}.sidebar nav ul li a{color:#333;text-decoration:none}.sidebar nav ul li button{font:inherit;cursor:pointer;color:#333;background:0 0;border:none;padding:0}.sidebar nav ul li.logout a,.sidebar nav ul li.logout button{color:red}.main-content{flex-grow:1;margin-left:0;padding:20px;transition:margin-left .3s}.main-content header{background:#97c7f2;justify-content:flex-start;align-items:center;min-height:60px;margin:-20px -20px 20px;padding-left:20px;display:flex}.menu-toggle{cursor:pointer;background:0 0;border:none;font-size:18px}.overlay{z-index:999;background:#00000080;width:100%;height:100%;position:fixed;top:0;left:0}.breadcrumb{align-items:center;width:83%;margin:0 auto;padding:10px 0;font-size:15px;display:flex}.breadcrumb-item{white-space:nowrap;flex:none;align-items:center;display:flex}.breadcrumb-link{color:#06c;cursor:pointer;font-size:inherit;background:0 0;border:none;padding:0;text-decoration:none}.breadcrumb-link:hover{text-decoration:underline}.breadcrumb-separator{color:#666;margin:0 8px}@media (width>=768px){.main-content{margin-left:0}.menu-toggle{display:block}}.schedule-page{flex-direction:column;align-items:center;padding:20px;font-family:sans-serif;display:flex}.schedule-header{align-items:center;gap:16px;width:85%;display:flex}.schedule-header h2{align-items:center;font-size:30px;display:flex}.date-navigation{align-items:center;gap:10px;margin-right:auto;display:flex}.date-navigation button{cursor:pointer;background:#e0e7ff;border:none;border-radius:5px;margin:0 5px;padding:5px 10px;font-size:20px}.schedule-item.red{cursor:pointer;background-color:#f0f0f0;transition:background-color .2s}.schedule-item.red:hover{background-color:#ffebee}.schedule-item.green{cursor:pointer;background-color:#f0f0f0;transition:background-color .2s}.schedule-item.green:hover{background-color:#e8f5e9}.schedule-item.blue{background-color:#e0e7ff}.schedule-item.future{cursor:default;background-color:#f0f0f0}.schedule-item.future:hover{background-color:#f0f0f0}.schedule-item.event-item{color:#881d4f;background-color:#ead1dc;border-left-color:#d946a6}.schedule-item.event-item:hover{background-color:#e0c0d5;box-shadow:0 2px 8px #c9188e33}.item-action{color:#fff;cursor:pointer;border:none;border-radius:5px;justify-content:center;align-items:center;width:30px;height:30px;text-decoration:none;display:flex}.item-action.red{background-color:red}.item-action.future{opacity:.7;background-color:#ccc}.item-action.disabled{cursor:not-allowed;background-color:#ccc}.item-action.green{background-color:green}.item-action.disabled{cursor:not-allowed;opacity:.5;background-color:#ccc}.item-action.disabled:hover{background-color:#ccc}.week-schedule-container{flex-direction:column;width:100%;height:calc(100vh - 220px);display:flex;position:relative}.week-schedule-table{border-collapse:collapse;table-layout:fixed;background-color:#fff;border:1px solid #ddd;flex-direction:column;flex:1;width:100%;display:flex}.week-schedule-table thead{background-color:#f5f5f5;border-bottom:2px solid #ddd;flex-shrink:0}.week-schedule-table tbody{flex-direction:column;flex:1;display:flex}.week-schedule-table th{text-align:center;word-wrap:break-word;border-right:1px solid #ddd;padding:12px 4px;overflow:hidden}.week-schedule-table th:last-child{border-right:none}.week-schedule-table tr{border-bottom:1px solid #ddd;flex:1;display:flex}.week-schedule-table tbody tr:last-child{border-bottom:none}.time-header{flex-shrink:0;width:80px}.day-header{flex:1;min-width:0}.day-name{text-overflow:ellipsis;white-space:nowrap;margin-bottom:4px;font-size:14px;font-weight:700;overflow:hidden}.day-date{color:#666;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.time-cell{text-align:center;word-wrap:break-word;background-color:#f9f9f9;border-right:1px solid #ddd;flex-shrink:0;justify-content:center;align-items:center;width:80px;padding:8px 4px;font-size:11px;font-weight:500;display:flex;overflow:hidden}.lesson-cell{vertical-align:top;border-right:1px solid #ddd;flex:1;min-width:0;min-height:70px;padding:4px;position:relative;overflow:visible}.lesson-cell:last-child{border-right:none}.lessons-overflow-badge{z-index:6;color:#fff;pointer-events:none;background-color:#2196f3;border-radius:10px;padding:2px 6px;font-size:11px;line-height:1;position:absolute;top:4px;right:4px;box-shadow:0 2px 6px #0003}.week-schedule-table th.day-header.current-week{background:linear-gradient(#e3f2fd 0%,#bbdefb 100%)}.two-weeks-view .week-schedule-table th:nth-child(7),.two-weeks-view .week-schedule-table td:nth-child(7){border-right:4px solid;border-image:linear-gradient(#ccc 0%,#888 50%,#ccc 100%) 0 1 0 0;box-shadow:inset -2px 0 4px #0000001a}.lesson-block{cursor:pointer;-webkit-user-select:none;user-select:none;box-sizing:border-box;border:1px solid;border-radius:4px;flex-direction:column;gap:2px;width:100%;height:auto;min-height:50px;margin:0;padding:6px;font-size:11px;transition:all .3s cubic-bezier(.34,1.56,.64,1);display:flex;position:absolute}.lesson-block:only-child{width:auto;height:auto;min-height:50px;margin:0;transition:box-shadow .2s;position:relative;filter:none!important;z-index:auto!important;transform:none!important}.lesson-block:only-child:hover{box-shadow:0 2px 8px #0003}.lesson-cell.lesson-count-2 .lesson-block:not(:only-child):first-child{z-index:8;transform:translateY(0)translate(-2px)}.lesson-cell.lesson-count-2 .lesson-block:not(:only-child):nth-child(2){z-index:7;filter:brightness(.92);transform:translateY(8px)translate(3px)}.lesson-cell.lesson-count-3 .lesson-block:not(:only-child):first-child{z-index:8;transform:translateY(0)translate(-3px)}.lesson-cell.lesson-count-3 .lesson-block:not(:only-child):nth-child(2){z-index:7;filter:brightness(.9);transform:translateY(8px)translate(3px)}.lesson-cell.lesson-count-3 .lesson-block:not(:only-child):nth-child(3){z-index:6;filter:brightness(.82);transform:translateY(15px)translate(8px)}.lesson-cell.lesson-count-4 .lesson-block:not(:only-child):first-child{z-index:8;transform:translateY(0)translate(-4px)}.lesson-cell.lesson-count-4 .lesson-block:not(:only-child):nth-child(2){z-index:7;filter:brightness(.92);transform:translateY(6px)translate(2px)}.lesson-cell.lesson-count-4 .lesson-block:not(:only-child):nth-child(3){z-index:6;filter:brightness(.86);transform:translateY(12px)translate(6px)}.lesson-cell.lesson-count-4 .lesson-block:not(:only-child):nth-child(4){z-index:5;filter:brightness(.8);transform:translateY(18px)translate(10px)}.lesson-cell.lesson-count-5 .lesson-block:not(:only-child):first-child{z-index:8;transform:translateY(0)translate(-4px)}.lesson-cell.lesson-count-5 .lesson-block:not(:only-child):nth-child(2){z-index:7;filter:brightness(.94);transform:translateY(5px)translate(2px)}.lesson-cell.lesson-count-5 .lesson-block:not(:only-child):nth-child(3){z-index:6;filter:brightness(.9);transform:translateY(10px)translate(6px)}.lesson-cell.lesson-count-5 .lesson-block:not(:only-child):nth-child(4){z-index:5;filter:brightness(.86);transform:translateY(15px)translate(10px)}.lesson-cell.lesson-count-5 .lesson-block:not(:only-child):nth-child(5){z-index:4;filter:brightness(.82);transform:translateY(20px)translate(14px)}.lesson-cell.lesson-count-6 .lesson-block:not(:only-child):first-child{z-index:8;transform:translateY(0)translate(-5px)}.lesson-cell.lesson-count-6 .lesson-block:not(:only-child):nth-child(2){z-index:7;filter:brightness(.95);transform:translateY(4px)translate(1px)}.lesson-cell.lesson-count-6 .lesson-block:not(:only-child):nth-child(3){z-index:6;filter:brightness(.92);transform:translateY(8px)translate(5px)}.lesson-cell.lesson-count-6 .lesson-block:not(:only-child):nth-child(4){z-index:5;filter:brightness(.89);transform:translateY(12px)translate(9px)}.lesson-cell.lesson-count-6 .lesson-block:not(:only-child):nth-child(5){z-index:4;filter:brightness(.86);transform:translateY(16px)translate(13px)}.lesson-cell.lesson-count-6 .lesson-block:not(:only-child):nth-child(6){z-index:3;filter:brightness(.83);transform:translateY(20px)translate(17px)}.lesson-cell.lesson-count-7 .lesson-block:not(:only-child):first-child{z-index:8;transform:translateY(0)translate(-5px)}.lesson-cell.lesson-count-7 .lesson-block:not(:only-child):nth-child(2){z-index:7;filter:brightness(.96);transform:translateY(4px)translate(1px)}.lesson-cell.lesson-count-7 .lesson-block:not(:only-child):nth-child(3){z-index:6;filter:brightness(.93);transform:translateY(8px)translate(5px)}.lesson-cell.lesson-count-7 .lesson-block:not(:only-child):nth-child(4){z-index:5;filter:brightness(.9);transform:translateY(12px)translate(9px)}.lesson-cell.lesson-count-7 .lesson-block:not(:only-child):nth-child(5){z-index:4;filter:brightness(.87);transform:translateY(16px)translate(13px)}.lesson-cell.lesson-count-7 .lesson-block:not(:only-child):nth-child(6){z-index:3;filter:brightness(.84);transform:translateY(20px)translate(17px)}.lesson-cell.lesson-count-7 .lesson-block:not(:only-child):nth-child(7){z-index:2;filter:brightness(.81);transform:translateY(24px)translate(21px)}.lesson-cell.lesson-count-8 .lesson-block:not(:only-child):first-child{z-index:8;transform:translateY(0)translate(-6px)}.lesson-cell.lesson-count-8 .lesson-block:not(:only-child):nth-child(2){z-index:7;filter:brightness(.97);transform:translateY(3px)translate(0)}.lesson-cell.lesson-count-8 .lesson-block:not(:only-child):nth-child(3){z-index:6;filter:brightness(.94);transform:translateY(6px)translate(4px)}.lesson-cell.lesson-count-8 .lesson-block:not(:only-child):nth-child(4){z-index:5;filter:brightness(.91);transform:translateY(9px)translate(8px)}.lesson-cell.lesson-count-8 .lesson-block:not(:only-child):nth-child(5){z-index:4;filter:brightness(.88);transform:translateY(12px)translate(12px)}.lesson-cell.lesson-count-8 .lesson-block:not(:only-child):nth-child(6){z-index:3;filter:brightness(.85);transform:translateY(15px)translate(16px)}.lesson-cell.lesson-count-8 .lesson-block:not(:only-child):nth-child(7){z-index:2;filter:brightness(.82);transform:translateY(18px)translate(20px)}.lesson-cell.lesson-count-8 .lesson-block:not(:only-child):nth-child(8){z-index:1;filter:brightness(.79);transform:translateY(21px)translate(24px)}.lesson-cell.active.lesson-count-2 .lesson-block:not(:only-child):first-child{z-index:10;transform:translateY(-12px)translate(0);box-shadow:0 4px 12px #00000040}.lesson-cell.active.lesson-count-2 .lesson-block:not(:only-child):nth-child(2){z-index:10;transform:translateY(28px)translate(22px);box-shadow:0 4px 12px #0003}.lesson-cell.active.lesson-count-3 .lesson-block:not(:only-child):first-child{z-index:10;transform:translateY(-15px)translate(0);box-shadow:0 4px 12px #00000040}.lesson-cell.active.lesson-count-3 .lesson-block:not(:only-child):nth-child(2){z-index:10;transform:translateY(24px)translate(32px);box-shadow:0 4px 12px #0003}.lesson-cell.active.lesson-count-3 .lesson-block:not(:only-child):nth-child(3){z-index:10;transform:translateY(65px)translate(0);box-shadow:0 4px 12px #00000026}.lesson-cell.active.lesson-count-4 .lesson-block:not(:only-child):first-child{z-index:10;transform:translateY(-15px)translate(0);box-shadow:0 4px 12px #00000040}.lesson-cell.active.lesson-count-4 .lesson-block:not(:only-child):nth-child(2){z-index:10;transform:translateY(20px)translate(34px);box-shadow:0 4px 12px #00000038}.lesson-cell.active.lesson-count-4 .lesson-block:not(:only-child):nth-child(3){z-index:10;transform:translateY(60px)translate(0);box-shadow:0 4px 12px #0000002e}.lesson-cell.active.lesson-count-4 .lesson-block:not(:only-child):nth-child(4){z-index:10;transform:translateY(93px)translate(34px);box-shadow:0 4px 12px #00000024}.lesson-cell.active.lesson-count-5 .lesson-block:not(:only-child):first-child{z-index:10;transform:translateY(-10px)translate(0);box-shadow:0 4px 12px #00000040}.lesson-cell.active.lesson-count-5 .lesson-block:not(:only-child):nth-child(2){z-index:10;transform:translateY(18px)translate(34px);box-shadow:0 4px 12px #00000038}.lesson-cell.active.lesson-count-5 .lesson-block:not(:only-child):nth-child(3){z-index:10;transform:translateY(48px)translate(0);box-shadow:0 4px 12px #0003}.lesson-cell.active.lesson-count-5 .lesson-block:not(:only-child):nth-child(4){z-index:10;transform:translateY(78px)translate(34px);box-shadow:0 4px 12px #00000029}.lesson-cell.active.lesson-count-5 .lesson-block:not(:only-child):nth-child(5){z-index:10;transform:translateY(108px)translate(0);box-shadow:0 4px 12px #00000024}.lesson-cell.active.lesson-count-6 .lesson-block:not(:only-child):first-child{z-index:10;transform:translateY(-10px)translate(0);box-shadow:0 4px 12px #00000040}.lesson-cell.active.lesson-count-6 .lesson-block:not(:only-child):nth-child(2){z-index:10;transform:translateY(16px)translate(34px);box-shadow:0 4px 12px #0000003b}.lesson-cell.active.lesson-count-6 .lesson-block:not(:only-child):nth-child(3){z-index:10;transform:translateY(42px)translate(0);box-shadow:0 4px 12px #00000036}.lesson-cell.active.lesson-count-6 .lesson-block:not(:only-child):nth-child(4){z-index:10;transform:translateY(68px)translate(34px);box-shadow:0 4px 12px #0000002e}.lesson-cell.active.lesson-count-6 .lesson-block:not(:only-child):nth-child(5){z-index:10;transform:translateY(94px)translate(0);box-shadow:0 4px 12px #00000029}.lesson-cell.active.lesson-count-6 .lesson-block:not(:only-child):nth-child(6){z-index:10;transform:translateY(120px)translate(34px);box-shadow:0 4px 12px #00000024}.lesson-cell.active.lesson-count-7 .lesson-block:not(:only-child):first-child{z-index:10;transform:translateY(-10px)translate(0);box-shadow:0 4px 12px #00000040}.lesson-cell.active.lesson-count-7 .lesson-block:not(:only-child):nth-child(2){z-index:10;transform:translateY(14px)translate(34px);box-shadow:0 4px 12px #0000003b}.lesson-cell.active.lesson-count-7 .lesson-block:not(:only-child):nth-child(3){z-index:10;transform:translateY(38px)translate(0);box-shadow:0 4px 12px #00000036}.lesson-cell.active.lesson-count-7 .lesson-block:not(:only-child):nth-child(4){z-index:10;transform:translateY(62px)translate(34px);box-shadow:0 4px 12px #00000030}.lesson-cell.active.lesson-count-7 .lesson-block:not(:only-child):nth-child(5){z-index:10;transform:translateY(86px)translate(0);box-shadow:0 4px 12px #0000002b}.lesson-cell.active.lesson-count-7 .lesson-block:not(:only-child):nth-child(6){z-index:10;transform:translateY(110px)translate(34px);box-shadow:0 4px 12px #00000026}.lesson-cell.active.lesson-count-7 .lesson-block:not(:only-child):nth-child(7){z-index:10;transform:translateY(134px)translate(0);box-shadow:0 4px 12px #00000021}.lesson-cell.active.lesson-count-8 .lesson-block:not(:only-child):first-child{z-index:10;transform:translateY(-10px)translate(0);box-shadow:0 4px 12px #00000040}.lesson-cell.active.lesson-count-8 .lesson-block:not(:only-child):nth-child(2){z-index:10;transform:translateY(12px)translate(34px);box-shadow:0 4px 12px #0000003b}.lesson-cell.active.lesson-count-8 .lesson-block:not(:only-child):nth-child(3){z-index:10;transform:translateY(34px)translate(0);box-shadow:0 4px 12px #00000036}.lesson-cell.active.lesson-count-8 .lesson-block:not(:only-child):nth-child(4){z-index:10;transform:translateY(56px)translate(34px);box-shadow:0 4px 12px #00000030}.lesson-cell.active.lesson-count-8 .lesson-block:not(:only-child):nth-child(5){z-index:10;transform:translateY(78px)translate(0);box-shadow:0 4px 12px #0000002b}.lesson-cell.active.lesson-count-8 .lesson-block:not(:only-child):nth-child(6){z-index:10;transform:translateY(100px)translate(34px);box-shadow:0 4px 12px #00000026}.lesson-cell.active.lesson-count-8 .lesson-block:not(:only-child):nth-child(7){z-index:10;transform:translateY(122px)translate(0);box-shadow:0 4px 12px #00000021}.lesson-cell.active.lesson-count-8 .lesson-block:not(:only-child):nth-child(8){z-index:10;transform:translateY(144px)translate(34px);box-shadow:0 4px 12px #0000001c}.rotate-lessons-btn{color:#fff;cursor:pointer;z-index:10;background-color:#2196f3;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:20px;transition:all .3s;display:flex;position:absolute;bottom:80px;right:-40px;box-shadow:0 2px 8px #0003}.rotate-lessons-btn:hover{background-color:#1976d2;transform:scale(1.1);box-shadow:0 4px 12px #0000004d}.rotate-lessons-btn:active{transform:scale(.95)}.lesson-block.confirmed{color:#1b5e20;background-color:#c8e6c9;border-color:#4caf50}.lesson-block.confirmed:hover{background-color:#a5d6a7;box-shadow:0 2px 8px #4caf504d}.lesson-block.unconfirmed{color:#b71c1c;background-color:#fcc;border-color:#f44336}.lesson-block.unconfirmed:hover{background-color:#f99;box-shadow:0 2px 8px #f443364d}.lesson-block.future{color:inherit;background-color:#f0f0f0;border-color:#ccc}.lesson-block.future:hover{box-shadow:none;background-color:#f0f0f0}.lesson-block-title{text-overflow:ellipsis;white-space:nowrap;font-weight:700;line-height:1.2;overflow:hidden}.lesson-block-info{opacity:.8;text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.two-weeks-view{flex-direction:column;width:100%;height:calc(100vh - 220px);display:flex;position:relative}.two-weeks-parity{color:#2b3a67;box-sizing:border-box;background:#f5f7ff;border:1px solid #e1e7ff;border-radius:6px;width:94%;margin:-5px -4px 6px 83px;padding:8px 12px;font-size:13px;box-shadow:0 1px 4px #2b3a670a}.two-weeks-parity small{color:#556084;margin-left:8px;font-size:12px}.two-weeks-parity-inner{gap:12px;width:calc(100% - 80px);display:flex}.two-weeks-parity .week-part{text-align:center;flex:1 1 0;padding:2px 6px}.two-weeks-parity .week-left{text-align:left}.two-weeks-parity .week-right{transform:translate(-170px)}.lesson-detail-popup{z-index:1000;background-color:#fff;border:1px solid #ddd;border-radius:8px;min-width:320px;max-width:400px;position:fixed;box-shadow:0 4px 12px #00000026}.close-popup{cursor:pointer;color:#999;background:0 0;border:none;justify-content:center;align-items:center;width:30px;height:30px;padding:0;font-size:24px;transition:color .2s;display:flex;position:absolute;top:8px;right:8px}.close-popup:hover{color:#333}.popup-header{border-bottom:1px solid #eee;padding:16px 16px 12px}.popup-header h3{color:#333;margin:0;font-size:15px}.popup-content{padding:12px 16px}.popup-content p{color:#555;margin:8px 0;font-size:13px}.popup-content strong{color:#333;min-width:80px;display:inline-block}.popup-actions{border-top:1px solid #eee;padding:12px 16px}.popup-btn{text-align:center;cursor:pointer;border:none;border-radius:4px;width:100%;padding:10px;font-size:13px;font-weight:500;text-decoration:none;transition:all .2s;display:block}.popup-btn.confirmed{color:#fff;background-color:#4caf50}.popup-btn.confirmed:hover{background-color:#388e3c}.popup-btn.unconfirmed{color:#fff;background-color:#f44336}.popup-btn.unconfirmed:hover{background-color:#d32f2f}.add-event-modal-overlay{z-index:1000;background-color:#6496ff4d;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.add-event-modal{background-color:#fff;border-radius:8px;width:90%;max-width:600px;max-height:90vh;padding:30px;overflow-y:auto;box-shadow:0 4px 20px #00000026}.add-event-modal h2{text-align:center;margin:0 0 20px;font-size:24px;font-weight:600}.modal-controls{align-items:center;gap:15px;margin-bottom:20px;display:flex}.modal-date-input{border:1px solid #ddd;border-radius:4px;flex:1;padding:10px 12px;font-family:sans-serif;font-size:14px}.time-inputs{align-items:center;gap:8px;display:flex}.modal-time-input{border:1px solid #ddd;border-radius:4px;width:100px;padding:10px 12px;font-family:sans-serif;font-size:14px}.time-inputs span{color:#666;font-weight:500}.modal-form-group{margin-bottom:20px}.modal-input{box-sizing:border-box;border:none;border-bottom:2px solid #666;width:100%;padding:12px;font-family:sans-serif;font-size:14px;transition:border-color .3s}.modal-input:focus{border-bottom-color:#2196f3;outline:none}.modal-input::placeholder{color:#999}.groups-selector{position:relative}.groups-input{cursor:pointer;border:none;border-bottom:2px solid #666;flex-wrap:wrap;align-items:center;gap:6px;min-height:40px;padding:12px;transition:border-color .3s;display:flex}.groups-input:hover{border-bottom-color:#2196f3}.selected-groups{flex-wrap:wrap;gap:6px;width:100%;display:flex}.group-tag{color:#1976d2;background-color:#e3f2fd;border-radius:16px;align-items:center;gap:6px;padding:4px 10px;font-size:13px;display:flex}.remove-group-btn{color:#1976d2;cursor:pointer;background:0 0;border:none;align-items:center;padding:0;font-size:18px;line-height:1;display:flex}.remove-group-btn:hover{color:#0d47a1}.placeholder{color:#999;font-size:14px}.groups-dropdown{z-index:10;background-color:#fff;border:1px solid #ddd;border-top:none;border-radius:0 0 4px 4px;max-height:300px;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 4px 12px #0000001a}.groups-search{box-sizing:border-box;border:none;border-bottom:1px solid #eee;width:100%;padding:10px 12px;font-family:sans-serif;font-size:14px}.groups-search:focus{background-color:#f5f5f5;outline:none}.groups-list{padding:8px 0}.group-item{cursor:pointer;align-items:center;gap:10px;padding:10px 12px;transition:background-color .2s;display:flex}.group-item:hover{background-color:#f5f5f5}.group-checkbox{cursor:pointer;width:18px;height:18px}.no-groups{text-align:center;color:#999;padding:15px;font-size:14px}.modal-author{color:#333;border-bottom:2px solid #666;margin-bottom:20px;padding:12px 0;font-size:14px}.modal-textarea{resize:vertical;box-sizing:border-box;border:none;border-bottom:2px solid #666;width:100%;min-height:100px;padding:12px;font-family:sans-serif;font-size:14px;transition:border-color .3s}.modal-textarea:focus{border-bottom-color:#2196f3;outline:none}.modal-textarea::placeholder{color:#999}.modal-buttons{justify-content:flex-end;gap:12px;margin-top:30px;display:flex}.modal-btn-cancel,.modal-btn-save{cursor:pointer;border:none;border-radius:4px;padding:12px 28px;font-size:14px;font-weight:500;transition:all .3s}.modal-btn-cancel{color:#333;background-color:#e0e0e0}.modal-btn-cancel:hover{background-color:#d0d0d0}.modal-btn-save{color:#fff;background-color:#2196f3}.modal-btn-save:hover{background-color:#1976d2}.modal-btn-save:active{transform:scale(.98)}.cp-root{-webkit-user-select:none;user-select:none}.cp-header{grid-template-columns:32px 1fr 32px;align-items:center;gap:8px;margin-bottom:10px;display:grid}.cp-title{text-align:center;font-weight:600}.cp-nav{cursor:pointer;background:#e0e7ff;border:none;border-radius:6px;width:32px;height:32px;font-size:18px;line-height:1}.cp-weekdays{grid-template-columns:repeat(7,1fr);margin-bottom:6px;display:grid}.cp-weekday{text-align:center;color:#666;font-size:12px}.cp-grid{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.cp-cell{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:8px;height:34px}.cp-cell:hover{background:#f5f5f5}.cp-cell:disabled{opacity:.35;cursor:default}.cp-cell--empty{background:0 0;border:none}.cp-cell--selected{color:#fff;background:#111;border-color:#111}.attendance-page{padding:20px;font-family:sans-serif}.schedule-header{align-items:center;gap:75px;display:flex}.schedule-header h2{align-items:center;display:flex}.period-selector{margin-left:10px;display:inline-block;position:relative}.period-selector button{cursor:pointer;background:#e0e7ff;border:none;border-radius:5px;padding:5px 10px}.period-options{z-index:4;background-color:#fff;border:1px solid #ccc;border-radius:5px;position:absolute}.calendar-dates{flex-direction:column;gap:5px;max-height:200px;display:flex;overflow-y:auto}.calendar-date-item{cursor:pointer;border-radius:3px;padding:8px 12px;transition:background-color .2s}.calendar-date-item:hover{background-color:#f0f0f0}.calendar-date-item.active{background-color:#e0e7ff;font-weight:700}.attendance-header{box-sizing:border-box;background-color:#e0e7ff;border-radius:5px;justify-content:space-between;align-items:center;width:65%;padding:10px;display:flex}.attendance-top-row{align-items:flex-start;gap:20px;display:flex;position:relative}.discipline-selector{cursor:pointer;flex:1;position:relative}.discipline-selector button{cursor:pointer;background:0 0;border:none;align-items:center;font-size:16px;display:flex}.lesson-selector-btn{cursor:pointer;color:#666;background:0 0;border:none;padding:0 5px;font-size:12px;transition:color .2s}.lesson-selector-btn:hover{color:#333}.lesson-dropdown{z-index:10;background-color:#fff;border:1px solid #ccc;border-radius:5px;min-width:300px;max-width:400px;margin-top:5px;position:absolute;top:100%;left:0;box-shadow:0 2px 8px #0000001a}.lesson-option{cursor:pointer;border-bottom:1px solid #f0f0f0;padding:10px 12px;transition:background-color .2s}.lesson-option:last-child{border-bottom:none}.lesson-option:hover{background-color:#f5f5f5}.lesson-option.confirmed{background-color:#e8f5e9;border-left:3px solid #4caf50}.lesson-option.confirmed:hover{background-color:#d4edda}.lesson-option.confirmed.active{background-color:#a5d6a7;border-left:3px solid #2e7d32;font-weight:500}.lesson-option.unconfirmed{background-color:#ffebee;border-left:3px solid #f44336}.lesson-option.unconfirmed:hover{background-color:#ffcdd2}.lesson-option.unconfirmed.active{background-color:#ef9a9a;border-left:3px solid #c62828;font-weight:500}.lesson-option.active{background-color:#e0e7ff;font-weight:500}.controls{align-items:center;display:flex}.control-btn{cursor:pointer;background:#a9c2ff;border:none;border-radius:5px;margin:0 5px}.control-text{margin:0 10px}.time-selector{align-items:center;margin:20px 0;display:flex}.time-selector button{cursor:pointer;background:#e0e7ff;border:none;border-radius:5px;margin:0 5px}.attendance-table-row{box-sizing:border-box;width:65%;margin-top:12px}.attendance-table{box-sizing:border-box;table-layout:fixed;border-collapse:collapse;width:100%}.confirmation-section{box-sizing:border-box;z-index:2;width:calc(35% - 60px);position:absolute;top:0;right:50px}.scan-section{margin-top:20%}.attendance-table th,.attendance-table td{text-align:center;text-overflow:ellipsis;border:1px solid #ccc;padding:8px;overflow:hidden}.attendance-table th:first-child,.attendance-table td:first-child{white-space:nowrap;width:100px;max-width:100px}.attendance-table th:nth-child(2),.attendance-table td:nth-child(2){white-space:nowrap;width:50px;max-width:50px}.attendance-table th:nth-child(n+3),.attendance-table td:nth-child(n+3){white-space:nowrap;width:20px;max-width:20px;padding:4px 2px}.attendance-table th:nth-child(n+3){font-size:12px;line-height:1}.attendance-table th:nth-child(n+3) i{font-size:12px}.attendance-table th{background-color:#f8f9fa}.present{background-color:#c8e6c9}.manual-cell{cursor:pointer}.present-manual{background-color:#c8e6c9}.absent-manual,.attendance-table td.absent{background-color:#ef9a9a}.excused-manual{background-color:#90caf9}.total-cell{cursor:default}.total-cell.present{background-color:#a5d6a7}.total-cell.absent{background-color:#ef9a9a}.total-cell.excused{background-color:#90caf9}.total-present{color:green}.total-absent{color:red}.unconfirmed-status{background-color:#fff3cd;border:1px solid #ffc107;border-radius:5px;flex-direction:row;justify-content:center;align-items:center;gap:40px;margin-bottom:20px;padding:12px;display:flex}.unconfirmed-status span{color:#856404;font-weight:700}.unconfirmed-status button{cursor:pointer;color:#333;background-color:#ffc107;border:none;border-radius:5px;width:200px;padding:8px 12px;font-size:15px;font-weight:700;transition:background-color .2s}.unconfirmed-status button:hover{background-color:#ffb300}.confirmed-status{background-color:#d4edda;border:1px solid #28a745;border-radius:5px;margin-bottom:20px;padding:12px}.confirmed-status span:first-child{color:#155724;margin-bottom:12px;font-weight:700;display:block}.confirmed-status .summary{text-align:center;background-color:#fff;border:1px solid #28a745;border-radius:5px;grid-template-columns:0fr 1fr 1fr;gap:10px;padding:12px;display:grid}.confirmed-status .summary p{color:#333;margin:0;font-size:13px}.confirmed-status .summary p span{color:#28a745;margin-top:5px;font-size:18px;font-weight:700;display:block}.unconfirmed-status button,.confirm-btn{cursor:pointer;background-color:#a9c2ff;border:none;border-radius:5px;padding:10px}.add-scan{text-align:center}.ai-scan-preview{text-align:center;cursor:pointer;flex-direction:column;align-items:center;gap:10px;display:flex}.ai-scan-open-hint{color:#5b6475;font-size:12px}.ai-scan-thumb{object-fit:cover;background:#fff;border:1px solid #d8dce6;border-radius:10px;width:180px;max-width:100%;height:180px;box-shadow:0 8px 20px #121c2d14}.ai-scan-delete{cursor:pointer;background-color:#f2f4f8;border:1px solid #c8ced8;border-radius:6px;padding:8px 14px}.excuse-modal{width:100%;max-width:100%;height:100%;box-shadow:none;background:0 0;justify-content:center;align-items:center;padding:0;display:flex;overflow:hidden}.excuse-modal-layout{align-items:stretch;gap:20px;display:flex}.excuse-modal-image{object-fit:contain;background:0 0;border:none;border-radius:6px;max-width:95vw;max-height:95vh;display:block}.excuse-fullscreen{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.excuse-fullscreen-image{object-fit:contain;background:0 0;border:none;max-width:95vw;max-height:95vh;display:block}.excuse-modal-side{flex-direction:column;flex:0 0 220px;justify-content:flex-start;gap:12px;width:220px;display:flex}.excuse-modal-meta{color:#555;word-break:break-word;font-size:13px}.excuse-delete-button{cursor:pointer;background:#f2f4f8;border:1px solid #c8ced8;border-radius:6px;margin-top:auto;padding:10px 14px}.doc-delete-rect{cursor:pointer;color:#7a1a1a;background:#ef9a9a;border-radius:3px;justify-content:center;align-items:center;width:20px;height:20px;margin-right:10px;font-weight:700;display:inline-flex}.add-scan button{cursor:pointer;background:0 0;border:1px dashed #ccc;border-radius:5px;width:50px;height:50px;font-size:24px}.add-scan-file{color:#333;word-break:break-word;margin:8px 0 0;font-size:12px}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:fixed;top:0;left:0}.modal{background:#fff;border-radius:5px;width:400px;padding:20px}.scan-preview-overlay{padding:16px}.scan-preview-modal{width:min(1400px,96vw);max-width:96vw;height:min(92vh,920px);padding:16px;display:flex;overflow:hidden}.scan-preview-layout{gap:16px;width:100%;height:100%;min-height:0;display:flex}.scan-preview-sidebar{background:#f8faff;border:1px solid #d8dce6;border-radius:12px;flex-direction:column;flex:0 0 320px;min-width:280px;max-width:360px;min-height:0;padding:14px;display:flex}.scan-preview-sidebar-head{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.scan-preview-sidebar h3{margin:0;font-size:18px}.scan-preview-close{cursor:pointer;color:#5b6475;background:0 0;border:none;padding:0;font-size:26px;line-height:1}.scan-preview-legend{color:#4a5568;grid-template-columns:1fr;gap:8px;margin-bottom:12px;font-size:12px;display:grid}.scan-preview-legend span{align-items:center;gap:8px;display:flex}.scan-legend-dot{border-radius:3px;width:12px;height:12px;display:inline-block}.scan-legend-dot--match{background:#2ecc71}.scan-legend-dot--unknown{background:#e74c3c}.scan-legend-dot--auto{background:#f1c40f}.scan-preview-students{flex-direction:column;flex:auto;gap:8px;min-height:0;padding-right:4px;display:flex;overflow-y:auto}.scan-preview-student{cursor:pointer;background:#fff;border:1px solid #0000;border-radius:10px;padding:10px 12px;transition:border-color .15s,background .15s,box-shadow .15s,transform .15s}.scan-preview-student:hover{transform:translateY(-1px);box-shadow:0 6px 16px #0f172a14}.scan-preview-student--present{background:#edf8ef;border-color:#7ac27c}.scan-preview-student--absent{background:#fff1f1;border-color:#f09a9a}.scan-preview-student--neutral{border-color:#d8dce6}.scan-preview-student--active{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.scan-preview-student-state{color:#374151;margin-top:4px;font-size:12px;font-weight:600}.scan-preview-student-name{color:#1f2937;font-size:14px;font-weight:600}.scan-preview-student-meta{color:#6b7280;margin-top:4px;font-size:12px}.scan-preview-canvas{background:#111827;border:1px solid #d8dce6;border-radius:12px;flex:auto;min-width:0;min-height:0;position:relative;overflow:hidden}.scan-preview-image{object-fit:contain;background:#111827;width:100%;height:100%;display:block}.scan-preview-box{box-sizing:border-box;pointer-events:auto;cursor:pointer;border:3px solid #0000;border-radius:6px;transition:opacity .15s,border-color .15s,box-shadow .15s,transform .15s;position:absolute}.scan-preview-box--match{border-color:#2ecc71;box-shadow:0 0 0 1px #2ecc714d}.scan-preview-box--auto{border-color:#f1c40f;box-shadow:0 0 0 1px #f1c40f4d}.scan-preview-box--unknown{border-color:#e74c3c;box-shadow:0 0 0 1px #e74c3c4d}.scan-preview-box--assigned{border-color:#2ecc71;box-shadow:0 0 0 2px #2ecc7159}.scan-preview-box--dimmed{opacity:.18}.scan-preview-box:hover{transform:scale(1.01)}.scan-preview-box:hover:after{content:attr(title);color:#fff;white-space:nowrap;background:#111827e6;border-radius:4px;padding:4px 8px;font-size:11px;position:absolute;top:-28px;left:0}.scan-modal{width:520px;max-width:92vw}.scan-modal-hint{color:#555;margin:8px 0 16px;font-size:13px}.scan-dropzone{cursor:pointer;text-align:center;background:#f8f9ff;border:2px dashed #a9c2ff;border-radius:8px;padding:16px}.scan-dropzone:hover{background:#eef2ff}.scan-dropzone-title{margin-bottom:6px;font-weight:700}.scan-dropzone-subtitle{color:#666;font-size:12px}.scan-selected{color:#333;word-break:break-word;margin-top:10px;font-size:12px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.modal ul{padding:0;list-style:none}.modal ul li{cursor:pointer;justify-content:space-between;padding:10px;display:flex}.modal ul li:hover{background-color:#f0f0f0}@media (width<=768px){.excuse-modal-layout{flex-direction:column}.excuse-modal-side{flex-basis:auto;width:100%}.scan-preview-modal{height:92vh;padding:12px}.scan-preview-layout{flex-direction:column}.scan-preview-sidebar{flex-basis:auto;width:100%;max-width:none}}.edit-menu{z-index:1001;background-color:#fff;border:1px solid #ccc;border-radius:5px;padding:10px;position:absolute}.edit-option{cursor:pointer;align-items:center;padding:5px;display:flex}.edit-option.active{background-color:#e0e7ff;border-radius:3px}.color-box{border-radius:3px;width:20px;height:20px;margin-right:10px}.add-doc-btn{border:1px dashed #ccc;justify-content:center;align-items:center;display:flex}.delete-mark{color:red;cursor:pointer;text-align:center;margin-top:10px}.close-edit-menu{cursor:pointer;background:0 0;border:none;font-size:18px;position:absolute;top:5px;right:5px}.documents-list{border-top:1px solid #ddd;margin-top:10px;padding-top:10px}.document-item{word-break:break-word;background-color:#f0f0f0;border-radius:3px;margin-bottom:5px;padding:8px;font-size:12px}.time-input-wrapper{align-items:center;display:flex;position:relative}.time-button{cursor:pointer;background:0 0;border:none;padding:10px;font-size:14px}.time-options{z-index:100;background:#fff;border:1px solid #ccc;border-radius:5px;min-width:150px;position:absolute;top:100%;left:0;box-shadow:0 2px 8px #00000026}.time-option{cursor:pointer;border-bottom:1px solid #f0f0f0;padding:10px 15px}.time-option:last-child{border-bottom:none}.time-option:hover{background-color:#f5f5f5}.time-option.active{background-color:#e0e7ff;font-weight:700}.no-lesson-message{text-align:center;color:#999;margin-top:20px;padding:40px;font-size:18px}.schedule-search-page{padding:20px;font-family:sans-serif}.ssp-title{margin:0 0 18px;font-size:30px}.ssp-controls{flex-wrap:wrap;align-items:center;gap:26px;display:flex}.ssp-mode{flex:0 0 100%;gap:14px;display:flex}.ssp-mode-btn{cursor:pointer;background:#e0e0e0;border:none;border-radius:14px;padding:14px 22px 14px 52px;font-size:20px;position:relative}.ssp-mode-btn:before{content:"";background:#fff;border-radius:50%;width:24px;height:24px;position:absolute;top:50%;left:16px;transform:translateY(-50%)}.ssp-mode-btn.active{background:#a9c2ff}.ssp-mode-btn.active:after{content:"✓";color:#0f2f6b;font-size:18px;position:absolute;top:50%;left:22px;transform:translateY(-55%)}.ssp-search{flex:0 auto;align-items:center;gap:10px;display:flex}.ssp-search-input{box-sizing:border-box;border:2px solid #ccc;border-radius:10px;width:clamp(280px,40vw,560px);padding:12px 16px;font-size:18px}.ssp-search{position:relative}.ssp-search-input{padding-right:56px}.ssp-clear-btn{cursor:pointer;color:#666;background:0 0;border:none;border-radius:14px;justify-content:center;align-items:center;width:28px;height:28px;font-size:16px;display:flex;position:absolute;top:50%;right:60px;transform:translateY(-50%)}.ssp-search-btn{cursor:pointer;background:0 0;border:none;border-radius:22px;width:44px;height:44px;font-size:20px}.ssp-date{flex:none;align-items:center;gap:10px;display:flex}.ssp-error{color:#b71c1c;margin-top:10px}.ssp-result-title{margin:22px 0 12px;font-size:30px;font-weight:400}.ssp-placeholder{height:360px;margin-top:20px}.period-selector{display:inline-block;position:relative}.period-selector button{cursor:pointer;background:#e0e7ff;border:none;border-radius:10px;padding:8px 14px;font-size:22px}.period-options{z-index:4;background-color:#fff;border:1px solid #ccc;border-radius:8px;min-width:160px;position:absolute}.period-options div{cursor:pointer;padding:10px}.period-options div:hover{background-color:#f0f0f0}.date-navigation{align-items:center;gap:10px;display:flex}.date-navigation button{cursor:pointer;background:#e0e7ff;border:none;border-radius:10px;padding:8px 12px;font-size:20px}.date-selector{position:relative}.date-button{cursor:pointer;background:#e0e7ff;border:none;border-radius:10px;padding:8px 14px}.calendar-picker{z-index:10;background-color:#fff;border:1px solid #ccc;border-radius:5px;margin-top:5px;padding:10px;position:absolute;top:100%;left:0}.date-input-wrapper{z-index:10;background-color:#fff;border:1px solid #ccc;border-radius:5px;gap:5px;margin-top:5px;padding:10px;display:flex;position:absolute;top:100%;left:0}.date-input{border:1px solid #ccc;border-radius:3px;width:120px;padding:5px 10px}.date-submit{cursor:pointer;background:#e0e7ff;border:none;border-radius:3px;padding:5px 10px}.no-schedule{text-align:center;color:#666;padding:40px;font-size:18px}.schedule-list{flex-direction:column;gap:10px;width:85%;min-width:85%;max-height:600px;padding-right:10px;display:flex;overflow-y:auto}.schedule-item{color:inherit;border:1px solid #ccc;border-radius:5px;grid-template-columns:40px 80px 2fr 1fr 100px 50px;align-items:center;padding:10px 10px 10px 30px;text-decoration:none;display:grid}.item-action{color:#fff;border:none;border-radius:5px;justify-content:center;align-items:center;width:30px;height:30px;text-decoration:none;display:flex}.item-action.blue{background-color:#a9c2ff}.ssp-week{flex-direction:column;gap:18px;display:flex}.ssp-week-day-title{margin:18px 0 8px;font-size:18px;font-weight:600}.ssp-week-empty{color:#666;padding:10px 0}.disciplines-page{padding:20px;font-family:sans-serif}.dp-title-row{margin-bottom:12px;margin-left:10px}.dp-subjects{flex-direction:column;gap:10px;max-width:900px;display:flex}.dp-subject-item{color:#111;background-color:#e0e7ff;border-radius:8px;padding:12px 14px;text-decoration:none;display:block}.dp-subject-item:hover{filter:brightness(.98)}.dp-header{background-color:#e0e7ff;border-radius:8px;justify-content:flex-start;align-items:center;gap:100px;width:fit-content;max-width:100%;margin-bottom:14px;padding:10px;display:inline-flex}.dp-subject{position:relative}.dp-subject-btn{cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:6px 10px;display:inline-flex}.dp-subject-btn:hover{background:#ffffff59}.dp-subject-name{font-size:18px;font-weight:600}.dp-caret{opacity:.8;font-size:12px}.dp-subject-options{z-index:6;background:#fff;border:1px solid #ccc;border-radius:8px;flex-direction:column;gap:6px;width:min(520px,70vw);max-height:260px;margin-top:6px;padding:6px;display:flex;position:absolute;top:100%;left:0;overflow-y:auto}.dp-subject-option{text-align:left;cursor:pointer;background:#fff;border:none;border-radius:6px;padding:8px 10px}.dp-subject-option:hover{background:#f0f0f0}.dp-subject-option.active{background:#e0e7ff}.dp-controls{align-items:center;gap:12px;display:flex}.dp-btn{cursor:pointer;background:#a9c2ff;border:none;border-radius:6px;padding:6px 10px}.dp-btn:disabled{cursor:default;opacity:.6}.dp-period,.dp-month{position:relative}.dp-month-options{z-index:5;background:#fff;border:1px solid #ccc;border-radius:6px;grid-template-columns:1fr;gap:6px;min-width:160px;margin-top:6px;padding:6px;display:grid;position:absolute;top:100%;left:0}.dp-month-option{text-align:left;cursor:pointer;background:#fff;border:none;border-radius:6px;padding:8px}.dp-month-option:hover{background:#f0f0f0}.dp-period-options{z-index:5;background:#fff;border:1px solid #ccc;border-radius:6px;flex-direction:column;gap:6px;min-width:140px;margin-top:6px;padding:6px;display:flex;position:absolute;top:100%;left:0}.dp-period-option{text-align:left;cursor:pointer;background:#fff;border:none;border-radius:6px;padding:8px}.dp-period-option:hover{background:#f0f0f0}.dp-date-nav{align-items:center;gap:10px;display:flex}.dp-date{position:relative}.disciplines-page .calendar-picker{z-index:10;background-color:#fff;border:1px solid #ccc;border-radius:5px;margin-top:5px;padding:10px;position:absolute;top:100%;left:-130px}.dp-empty{padding:12px 0}.dp-search{max-width:520px;margin:10px 0 14px}.dp-search-input{box-sizing:border-box;border:1px solid #ccc;border-radius:8px;width:100%;padding:10px 12px;font-size:14px}.dp-back{cursor:pointer;background:#a9c2ff;border:none;border-radius:6px;margin-top:10px;padding:8px 12px}.dp-tables{flex-direction:column;gap:25px;margin-top:25px;display:flex}.dp-group-title{margin-bottom:8px;font-weight:600}.dp-table-wrap{border:1px solid #ddd;border-radius:8px;width:fit-content;overflow-x:auto}.dp-table{border-collapse:collapse;table-layout:fixed;width:auto;min-width:680px}.dp-table th,.dp-table td{text-align:center;border:1px solid #ddd;padding:8px}.dp-table th{background-color:#f8f9fa}.dp-th-student,.dp-td-student{text-align:left;white-space:nowrap;text-overflow:ellipsis;width:310px;min-width:150px;max-width:310px;overflow:hidden}.dp-th-student{z-index:3;background-color:#f8f9fa;position:sticky;left:0}.dp-td-student{z-index:2;background-color:#fff;position:sticky;left:0}.dp-th-student,.dp-td-student{background-clip:padding-box}.dp-th-date{white-space:nowrap;width:72px;min-width:72px;max-width:72px;overflow:hidden}.dp-cell{width:72px;min-width:72px;max-width:72px}.dp-present{background-color:#c8e6c9}.dp-absent{background-color:#ef9a9a}.dp-excused{background-color:#90caf9}.dp-empty-cell{background-color:#e0e0e0}.login-page{background:#a9c6ff;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:#fff;border-radius:8px;width:560px;max-width:92vw;padding:40px 48px 36px;box-shadow:0 6px 24px #0000001f}.login-title{text-align:center;margin:0 0 10px;font-size:28px;font-weight:700}.login-subtitle{text-align:center;color:#1d1d1f;margin-bottom:26px;font-size:18px;font-weight:500}.login-form{flex-direction:column;gap:16px;display:flex}.login-label{color:#1d1d1f;flex-direction:column;gap:8px;font-size:18px;font-weight:500;display:flex}.login-input{box-sizing:border-box;border:2px solid #8eb6ff;border-radius:8px;outline:none;width:100%;height:56px;padding:0 16px;font-size:18px}.login-input::placeholder{color:#a7a7a7}.login-input:focus{border-color:#6aa0ff}.login-password{position:relative}.login-input--password{padding-right:52px}.login-toggle{color:#1d1d1f;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:40px;height:40px;display:flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.login-toggle:disabled{cursor:default;opacity:.6}.login-input--error{color:#ff4d4f;border-color:#ff4d4f}.login-error{text-align:center;color:#ff4d4f;margin-top:4px;font-size:18px}.login-submit{color:#0b0b0c;cursor:pointer;background:#78a9ff;border:none;border-radius:10px;width:210px;height:56px;margin:10px auto 0;font-size:20px;font-weight:600}.login-submit:disabled{cursor:default;opacity:.7}@media (width<=520px){.login-card{padding:28px 22px 26px}.login-subtitle{font-size:16px}}
