body{font-family:Kalam,cursive;background-color:#fff;color:#2f3028;margin:0;padding:0}h1{text-align:center;color:#232520;margin-top:20px;margin-bottom:10px;font-family:Nunito,sans-serif;letter-spacing:1px;text-transform:uppercase}button{font-family:inherit;font-size:.95em;cursor:pointer;transition:background-color .3s ease,transform .1s ease}button:hover{transform:scale(1.02)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-thumb{background-color:#bfb9a3;border-radius:4px}::-webkit-scrollbar-thumb:hover{background-color:#a79e86}button:focus,input:focus,select:focus{outline:none;box-shadow:none}.app-title{font-family:Nunito,sans-serif;font-weight:700;color:#445a3e;background:#f6f4ee;padding:12px 20px;border-radius:10px;text-align:center;box-shadow:0 2px 6px #00000014;width:fit-content;margin:0 auto 16px}h1:after,.app-title:after{content:"";display:block;width:70px;height:3px;margin:10px auto 0;background:#ac807c;border-radius:2px;opacity:.85}.top-tabs button{background:#4b614b;color:#fdfcf3;border:1px solid #c2b9a6;border-radius:8px;padding:6px 14px;font-family:Kalam,cursive;transition:all .2s ease;box-shadow:0 2px 4px #00000014}.top-tabs button.active-tab{background:#ac807c;color:#fff;border-color:#9b6d69;box-shadow:0 3px 6px #00000026}.top-tabs button:hover{background:#b9b1a5;transform:translateY(-1px)}.top-tabs button{transition:all .25s ease}.top-tabs button:hover{transform:translateY(-2px) scale(1.03);filter:brightness(1.08)}.grd-table tr:hover,.cur-main table tr:hover{background-color:#f7f5ef}button{transition:background-color .25s ease,transform .1s ease}button:hover{transform:translateY(-1px)}.lesson-actions .edit-btn,.grd-actions .mini,.hs-event-actions button:not(.danger){background-color:#5e7250}.lesson-actions .edit-btn:hover,.grd-actions .mini:hover,.hs-event-actions button:not(.danger):hover{background-color:#4e6342}.lesson-actions .delete-btn,.grd-actions .danger,.cur-sidebar button.danger,.att-sidebar button.danger{background-color:#c86a66}.lesson-actions .delete-btn:hover,.grd-actions .danger:hover,.cur-sidebar button.danger:hover,.att-sidebar button.danger:hover{background-color:#b45a56}.hs-cell.today{background-color:#fff9f7;border:2px solid #ac807c;box-shadow:0 0 10px #ac807c66}.hs-cell.today .hs-date{font-weight:700;color:#ac807c}.planner-grid,.hs-main,.att-main,.grd-main,.cur-main,.sidebar,.hs-sidebar,.att-sidebar,.grd-sidebar,.cur-sidebar{transition:box-shadow .25s ease,background-color .3s ease}.planner-grid:hover,.hs-main:hover,.att-main:hover,.grd-main:hover,.cur-main:hover{box-shadow:0 6px 16px #0000001f}.sidebar input,.sidebar select,.sidebar button,.hs-sidebar input,.hs-sidebar select,.hs-sidebar button{font-family:Kalam,cursive!important;font-weight:400;font-size:1rem;letter-spacing:.3px}.sidebar select option,.hs-sidebar select option{font-family:Kalam,cursive!important}.install-tip-backdrop{position:fixed;inset:0;background:#0000002e;display:flex;justify-content:center;align-items:flex-start;padding-top:60px;z-index:9999}.install-tip-modal{background:#fff;border-radius:14px;max-width:500px;width:80%;padding:16px 20px;box-shadow:0 6px 18px #00000026,0 0 0 1px #00000005;font-family:Kalam,system-ui,sans-serif;color:#3b3a38;display:grid;grid-template-columns:1.1fr 1.1fr 1.1fr;column-gap:16px;row-gap:8px;box-sizing:border-box}.install-tip-modal h2{grid-column:1 / -1;margin:0 0 4px;font-family:Nunito,system-ui,sans-serif;font-size:1.1rem;color:#445a3e;text-align:left}.install-tip-modal>p{grid-column:1 / -1;margin:0 0 8px;font-size:.9rem;color:#5a574f}.install-tip-modal h3{margin:4px 0;font-size:.9rem;color:#4f5d45}.install-tip-modal ol{margin:0;padding-left:18px;font-size:.85rem}.install-tip-modal li{margin-bottom:3px}.install-tip-modal .btn.btn-primary{grid-column:1 / -1;justify-self:flex-start;margin-top:10px;padding:6px 14px;font-size:.9rem}.install-tip-skip{grid-column:1 / -1;margin-top:4px;border:none;background:transparent;color:#8a7a71;font-size:.8rem;text-decoration:underline;cursor:pointer;padding:0}@media(max-width:768px){.install-tip-modal{grid-template-columns:1fr;max-width:95%;padding:14px 16px}.install-tip-modal h2{font-size:1rem}.install-tip-modal>p{font-size:.85rem}.install-tip-modal h3{font-size:.85rem}.install-tip-modal ol{font-size:.8rem}.install-tip-modal .btn.btn-primary{justify-self:center}.install-tip-skip{text-align:center;justify-self:center}}.planner-layout{display:flex;justify-content:space-between;align-items:flex-start;gap:30px;padding:20px 40px 40px;margin-top:0}.hs-layout{display:grid;grid-template-columns:300px auto;gap:20px;width:95vw;margin:0;align-items:flex-start;box-sizing:border-box}.att-layout,.grd-layout{display:grid;grid-template-columns:300px auto;gap:20px;width:95vw;margin:0;align-items:flex-start}.cur-layout{display:grid;grid-template-columns:300px auto;gap:20px;width:95vw;margin:0 auto;align-items:flex-start}.sidebar,.hs-sidebar,.att-sidebar,.grd-sidebar,.cur-sidebar{background-color:#cfdcc5;border-radius:12px;padding:18px;box-shadow:0 4px 10px #0000001f,0 3px 6px #00000014}.sidebar,.hs-sidebar,.att-sidebar,.grd-sidebar,.cur-sidebar{border-top:3px solid rgba(172,128,124,.25)}.planner-grid,.hs-main,.hs-grid,.grd-main,.cur-main,.att-main{background:#f9f8f3;border-radius:12px;padding:12px;box-shadow:0 3px 8px #0000001a;border:1px solid #e2ded6}.day-column,.grd-table,.cur-main table{background:#fff;border-radius:8px;box-shadow:0 2px 4px #00000014;border:1px solid #e7e4dd}.cur-title:after,.grd-title:after,.att-title:after,.hs-title:after{content:"";display:block;width:60px;height:3px;background:#ac807c;margin:6px auto 0;border-radius:2px}.top-tabs{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;width:100%;margin-bottom:10px}.week-nav{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:-10px;margin-bottom:20px;width:100%;text-align:center;color:#445a3e;font-weight:600}.week-nav button{background:#ac807c;color:#fff;border:none;padding:6px 12px;border-radius:8px;cursor:pointer;font-family:Kalam,cursive;transition:background-color .2s ease}.week-nav button:hover{background:#5a694c}.week-nav .week-label{font-size:1em;color:#504e43}.sidebar{width:300px;align-self:flex-start;margin-top:-120px}.sidebar h3{color:#504e43;margin-bottom:10px;border-bottom:1px solid #ccc;padding-bottom:4px}.sidebar input,.sidebar select{width:80%;margin-bottom:10px;padding:8px;border-radius:6px;border:1px solid #c2c2c2;font-size:.95em;background:#fff}.sidebar button{width:100%;background-color:#ac807c;color:#fff;border:none;padding:8px;border-radius:6px;cursor:pointer;margin-top:5px;font-size:.95em}.sidebar button:hover{background-color:#5a694c}.planner-grid{display:flex;justify-content:space-between;flex-grow:1;gap:20px;flex-wrap:wrap}.planner-grid-title{flex:0 0 98%;width:95%;text-align:center;font-family:Kalam,cursive;font-size:1.05em;color:#445a3e;font-weight:600;background:#f5f4f0;border-radius:6px;padding:6px 10px;margin-bottom:10px;box-shadow:0 2px 6px #00000014}.day-column{background:#fff;border-radius:10px;padding:12px;flex:1;min-width:250px;max-width:300px;box-shadow:0 3px 8px #0000001a;transition:box-shadow .3s ease,transform .2s ease}.day-column:hover{box-shadow:0 6px 14px #00000026;transform:translateY(-3px)}.day-header{text-align:center;margin-bottom:10px}.day-name{font-weight:700;color:#445a3e;font-size:1.1em;margin-bottom:4px}.day-date{font-size:.9em;color:#6b7b59;margin-bottom:8px;display:block;border-bottom:1px solid #ccc;padding-bottom:5px}.lesson-card{background:#f7f3e3;border-radius:8px;padding:8px 10px;margin-bottom:10px;box-shadow:0 2px 4px #00000014;display:flex;flex-direction:column;justify-content:space-between;transition:transform .18s ease-out,box-shadow .18s ease-out,opacity .2s ease-out}.lesson-card.dragging{transform:translateY(-2px) scale(1.45);box-shadow:0 6px 14px #00000040;opacity:.92;background-color:#fdfcf7;cursor:grabbing}.day-column.drag-over{background:#f8f7f2;transition:background-color .2s ease}.lesson-card:hover:not(.dragging){transform:translateY(-2px);box-shadow:0 4px 10px #0000001f}.lesson-info{font-size:.95em;color:#333}.lesson-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:6px}.lesson-actions button{background-color:#6b7b59;color:#fff;border:none;padding:4px 8px;border-radius:5px;font-size:.8em;cursor:pointer;transition:background-color .2s}.lesson-actions .edit-btn:hover{background-color:#5a694c}.lesson-actions .delete-btn{background-color:#b95050}.lesson-actions .delete-btn:hover{background-color:#993f3f}.report-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#3c3b2f80;display:flex;justify-content:center;align-items:center}.report-container{background:#fffef9;padding:30px;border-radius:12px;width:70%;max-height:80%;overflow-y:auto;box-shadow:0 3px 8px #0003}.report-container h2{color:#445a3e;text-align:center;margin-bottom:20px}.actions{text-align:center;margin-top:20px}.actions button{background-color:#6b7b59;color:#fff;border:none;padding:8px 14px;border-radius:6px;cursor:pointer;margin:4px}.actions button:hover{background-color:#566849}.planner-layout .sidebar .sidebar-row{display:grid;grid-template-columns:1fr auto;gap:6px}.planner-layout .sidebar .sidebar-row>button{width:auto!important;min-width:46px;padding:6px 10px;border-radius:6px}.planner-layout .sidebar .select-with-delete{display:flex;align-items:center;gap:6px}.planner-layout .sidebar .select-with-delete .delete-select-btn{all:revert;width:16px!important;height:16px!important;min-width:16px!important;min-height:16px!important;line-height:1;font-size:12px!important;border-radius:4px;border:none!important;background:#cfcfcf!important;color:#8a2d2d!important;cursor:pointer;display:inline-flex!important;justify-content:center;align-items:center;padding:0!important}.planner-layout .sidebar .select-with-delete .delete-select-btn:hover{background:#bdbdbd!important;transform:scale(1.08)}.planner-layout .sidebar input[placeholder="Add New Student"],.planner-layout .sidebar input[placeholder="Add New Subject"]{margin-bottom:0}.day-column:hover{background-color:#f6f4ee;transition:background-color .3s ease}@media(max-width:768px){.planner-layout{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:24px;padding:10px 16px;margin-top:30px}.sidebar{width:90%!important;max-width:500px!important;padding:18px 22px;margin:0 auto;box-sizing:border-box;border-radius:10px}.planner-grid{display:flex;flex-direction:row;flex-wrap:nowrap;overflow-x:auto;overflow-y:visible;scroll-snap-type:x mandatory;gap:12px;padding-bottom:8px;width:95%;margin:0 auto;-webkit-overflow-scrolling:touch}.day-column{flex:0 0 100%;min-width:100%;max-width:100%;scroll-snap-align:start;box-sizing:border-box}.planner-grid-title{flex:0 0 100%;max-width:100%;text-align:center}.lesson-card{max-width:100%;overflow-wrap:break-word;word-break:break-word}}@media(max-width:480px){.sidebar{padding:16px;width:95%!important}.planner-grid{width:100%;gap:10px}}@media(min-width:769px)and (max-width:1024px){.planner-layout{display:flex;flex-direction:row;flex-wrap:wrap;align-items:flex-start;justify-content:center;gap:24px;padding:20px;width:100%;box-sizing:border-box}.sidebar{width:100%;max-width:360px;margin:0 auto;border-radius:10px;padding:16px 20px}.planner-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:100px;width:100%;max-width:750px;margin:0 auto}.planner-grid-title{grid-column:1 / -1;justify-self:center;width:100%;text-align:center;background:#f5f4f0;border-radius:8px;padding:8px 12px;font-size:1.1rem;font-weight:600;color:#445a3e;box-shadow:0 2px 6px #00000014;margin-bottom:12px}}.hs{padding:20px;box-sizing:border-box}.hs-bar{display:flex;justify-content:center;align-items:center;gap:10px;margin-bottom:20px}.hs-title{font-weight:600;color:#445a3e;text-align:center;min-width:200px}.hs-bar button{background:#ac807c;color:#fff;border:none;border-radius:8px;padding:6px 12px;cursor:pointer;transition:background-color .2s ease}.hs-bar button:hover{background:#6b7b59}.hs-bar .ghost{background:#e8e5df;color:#333}.hs-bar .ghost:hover{background:#dcd7d2}.hs-bar .primary{background:#6b7b59}.hs-weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-weight:600;color:#445a3e;font-family:Poppins,sans-serif;margin-bottom:8px}.hs-weekday{background:#ece9e3;border-radius:8px;padding:6px 0;box-shadow:0 1px 3px #0000000d}.hs-sidebar{background:#cfdcc5;border-radius:10px;padding:18px;box-shadow:0 2px 6px #0000001f}.hs-sidebar h3{margin-top:0;color:#3c3b2f}.hs-row{display:grid;grid-template-columns:1fr auto;gap:6px;margin-bottom:10px}.hs-sidebar input,.hs-sidebar select{width:100%;padding:8px;border-radius:6px;border:1px solid #bbb;margin-bottom:8px}.hs-sidebar button{background:#6b7b59;color:#fff;border:none;border-radius:6px;padding:8px 12px;cursor:pointer}.hs-sidebar button:hover{background:#59684b}.hs-tag{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid #ddd;border-radius:6px;padding:4px 8px;margin-bottom:6px}.hs-tag button{background:transparent;border:none;color:#b33;cursor:pointer;font-weight:700}.hs-time{display:grid;grid-template-columns:1fr 1fr;gap:6px}.hs-edit{display:flex;gap:8px;margin-top:8px}.hs-main{background:#faf8f4;border-radius:50px;padding:20px;box-shadow:0 3px 8px #0000001a;min-height:700px;width:100%;box-sizing:border-box;overflow:hidden}.hs-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;width:100%;max-width:100%;box-sizing:border-box}.hs-cell{background:#fff;border-radius:8px;min-height:120px;padding:8px;box-shadow:0 1px 3px #00000014}.hs-cell.empty{background:transparent;box-shadow:none}.hs-date{text-align:left;font-weight:600;color:#6b7b59;margin-bottom:4px}.hs-event{background:#fcf6ec;border:1px solid #ffffff;border-radius:6px;padding:6px;margin-bottom:6px;box-shadow:0 1px 3px #00000014;font-size:.9em;transition:transform .18s ease-out}.hs-event-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:6px}.hs-event-actions button{background:#406834;color:#f8f8f8;border:none;border-radius:6px;padding:4px 8px;font-size:.8em;cursor:pointer;transition:background-color .2s ease}.hs-event-actions button:hover{background:#447a3c}.hs-event-actions .danger{background:#b95050;color:#fff}.hs-event-actions .danger:hover{background:#9d4242}.hs-event.dragging{transform:scale(1.05);box-shadow:0 6px 12px #00000026;opacity:.96}.hs-event .event-line{display:flex;align-items:baseline;gap:4px}.hs-event .event-line .time{color:#6b7b59;font-weight:600}.hs-cell.today{border:2px solid #ac807c;box-shadow:0 0 8px #ac807c66;background-color:#fff8f6;position:relative}.hs-cell.today:after{content:"Today";position:absolute;top:8%;left:50%;transform:translate(-50%,-50%);font-size:.85em;color:#ac807c;font-weight:600;background:#fff;padding:2px 10px;border-radius:8px;border:1px solid #d7c1be;z-index:2;pointer-events:none}@media(max-width:768px){.hs{background:#f5f2ea;min-height:100vh;padding-top:12px}.hs-layout{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:16px;padding:0 16px 24px;margin-top:8px}.hs-bar{display:flex;align-items:center;justify-content:center;gap:0px;padding:8px 10px;margin:0 auto 8px;max-width:360px;background:#4b6b50;color:#fff;border-radius:16px;box-shadow:0 4px 10px #00000014}.hs-title{flex:1 1 auto;text-align:center;font-size:.9rem;font-weight:600;margin:0 2px;color:#fff}.hs-bar button{padding:3px 6px;font-size:.75rem;border-radius:999px;border:none;background:#ffffff1f;color:#fff;cursor:pointer}.hs-bar button.ghost,.hs-bar button.primary{display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;padding:3px 7px}.hs-bar button:hover{background:#fff3}.hs-sidebar{width:100%!important;max-width:500px!important;margin:0 auto;padding:16px 18px;box-sizing:border-box;border-radius:14px;background:#cfdcc5;box-shadow:0 3px 10px #0000000f}.hs-sidebar h3{font-size:.95rem;margin-bottom:6px;color:#3d4a35}.hs-sidebar input,.hs-sidebar select{width:100%;margin-bottom:8px;padding:8px 10px;border-radius:8px;border:1px solid #d5d0c2;font-size:.9rem;box-sizing:border-box}.hs-time{display:flex;gap:8px;margin-bottom:8px}.hs-time>div{flex:1}.hs-sidebar button.primary{width:100%;padding:8px 0;border-radius:999px;background:#4b6b50;color:#fff;border:none;font-size:.9rem;cursor:pointer}.hs-edit{display:flex;gap:8px;margin-top:8px}.hs-edit .primary,.hs-edit .ghost{flex:1;padding:8px 0;border-radius:999px;font-size:.85rem}.hs-main{width:100%;margin:0 auto;padding:14px 14px 18px!important;border-radius:18px!important;background:#fff;box-shadow:0 3px 10px #0000000d}.hs-weekdays{display:none!important}.hs-cell[data-dow="0"]:before{content:"Sunday "}.hs-cell[data-dow="1"]:before{content:"Monday "}.hs-cell[data-dow="2"]:before{content:"Tuesday "}.hs-cell[data-dow="3"]:before{content:"Wednesday "}.hs-cell[data-dow="4"]:before{content:"Thursday "}.hs-cell[data-dow="5"]:before{content:"Friday "}.hs-cell[data-dow="6"]:before{content:"Saturday "}.hs-cell:before{display:block;font-weight:600;color:#445a3e;font-size:.9rem;margin-bottom:2px}.hs-date{display:inline-block;font-weight:600;color:#3b3a33;margin-bottom:8px;padding:2px 8px;border-radius:999px;background:#f0ebe0;font-size:.85rem}.hs-cell.today .hs-date{background:#c56b4c;color:#fff}.hs-cell{position:relative;padding-top:4px;padding-bottom:10px;text-align:left;width:96%!important;min-height:80px!important;border-bottom:1px solid #eee2d2}.hs-cell.empty{display:none!important}.hs-grid{display:grid;grid-template-columns:1fr!important;gap:14px!important;justify-items:stretch!important;align-items:start}.hs-event{margin-top:4px;padding:8px 10px;border-radius:12px;background:#faf6ee;border:1px solid #e2d6c4;box-shadow:0 1px 4px #0000000a;font-size:.85rem}.hs-event .event-line{display:flex;gap:6px;align-items:baseline;margin-bottom:2px}.hs-event .time{font-weight:600;color:#7a6a4f;font-size:.8rem}.hs-event .title{font-weight:600;color:#3b3a33;font-size:.9rem}.hs-event .student{font-size:.8rem;color:#6d6a5a;margin-top:2px}.hs-event-actions{display:flex;gap:6px;margin-top:6px}.hs-event-actions button{flex:1;padding:4px 0;border-radius:999px;border:none;font-size:.75rem;cursor:pointer}.hs-event-actions button.danger{background:#c95b4a;color:#fff}.hs-event-actions button:not(.danger){background:#e9e2d3;color:#3b3a33}}@media(max-width:480px){.hs-title{font-size:.85rem}.hs-bar{padding:8px 10px}.hs-bar button{padding:3px 6px;font-size:.75rem}.hs-sidebar{padding:14px}.hs-event{padding:7px 9px}}@media(min-width:769px)and (max-width:1024px){.hs-layout{display:flex;flex-direction:row;flex-wrap:wrap;align-items:flex-start;justify-content:center;gap:24px;padding:20px;width:100%;box-sizing:border-box}.hs-sidebar{width:100%;max-width:360px;margin:0 auto;border-radius:10px;padding:16px 20px}.hs-main{width:100%;max-width:750px;margin:0 auto}.hs-weekdays{display:none!important}.hs-cell[data-dow="0"]:before{content:"Sun "}.hs-cell[data-dow="1"]:before{content:"Mon "}.hs-cell[data-dow="2"]:before{content:"Tue "}.hs-cell[data-dow="3"]:before{content:"Wed "}.hs-cell[data-dow="4"]:before{content:"Thu "}.hs-cell[data-dow="5"]:before{content:"Fri "}.hs-cell[data-dow="6"]:before{content:"Sat "}.hs-cell:before{display:inline-block;font-weight:600;color:#445a3e;font-size:.95em;margin-right:4px}.hs-date{display:inline-block;font-weight:600;color:#3b3a33;margin-bottom:6px;padding-left:4px}.hs-grid{grid-template-columns:repeat(3,1fr)!important;gap:16px!important;justify-items:stretch}.hs-cell{position:relative;text-align:left;padding-top:8px;width:95%;min-height:160px}.hs-cell.empty{display:none!important}.hs-event{margin-top:-4px}}.att{padding:20px;box-sizing:border-box}.att-bar{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:16px}.att-title{min-width:140px;text-align:center;font-weight:600;color:#445a3e}.att-bar button{background:#ac807c;color:#fff;border:none;border-radius:8px;padding:6px 12px;cursor:pointer}.att-bar button:hover{background:#5a694c}.att-bar .primary{background:#6b7b59}.att-legend{margin-left:12px;display:flex;gap:10px;font-size:.9em;color:#3c3b2f}.att-legend .lg.present{color:#99df59}.att-legend .lg.absent{color:#fd1313}.att-legend .lg.field{color:#1013dd}.att-sidebar{background:#cfdcc5;border-radius:12px;padding:18px;box-shadow:0 4px 10px #0000001f,0 3px 6px #00000014}.att-sidebar h3{color:#504e43;margin:0 0 10px;border-bottom:1px solid #ccc;padding-bottom:4px}.att-sidebar input{width:100%;padding:8px;border-radius:6px;border:1px solid #c2c2c2;margin-bottom:10px;background:#fff}.att-sidebar button{width:100%;background:#ac807c;color:#fff;border:none;padding:8px;border-radius:6px;margin-top:5px}.att-sidebar button:hover{background:#5a694c}.att-empty{color:#7a786f;font-style:italic}.att-empty.big{text-align:center;padding:40px 0}.att-main{background:#faf8f4;border-radius:12px;padding:16px;box-shadow:0 3px 8px #0000001a;min-height:600px;overflow:auto}.att-sheet{width:100%;overflow:auto}.att-student-title{text-align:center;font-family:Kalam,cursive;font-weight:600;font-size:1.2em;color:#445a3e;background:#f5f4f0;padding:6px 0;margin-bottom:10px;border-radius:6px;box-shadow:0 2px 6px #00000014}.att-row{display:grid;grid-template-columns:120px repeat(31,1fr);gap:4px;align-items:stretch;margin-bottom:6px}.att-header{position:sticky;top:0;background:#faf8f4;z-index:1;padding-top:4px}.att-month-cell{background:#fff;border:1px solid #e0ddd6;border-radius:8px;padding:6px 8px;font-weight:600;color:#445a3e;display:flex;align-items:center}.att-month-cell.head{background:#ece9e3}.att-day-head{text-align:center;background:#ece9e3;border:1px solid #e0ddd6;border-radius:8px;padding:6px 0;font-weight:600;color:#3c3b2f}.att-cell{background:#fff;border:1px solid #eadfdc;border-radius:8px;padding:6px 0;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#2f3028;transition:transform .08s ease,box-shadow .12s ease,background-color .12s ease}.att-cell:hover{transform:translateY(-1px);box-shadow:0 2px 6px #00000014}.att-cell.present{color:#9dc975;font-weight:1000}.att-cell.absent{color:#ff0a0a;font-weight:1000}.att-cell.field{color:#3a4be2;font-weight:1000}.att-clicks{display:flex;justify-content:center;gap:25px;margin-top:-6px;margin-bottom:10px;font-size:.9em;font-weight:600;margin-left:79px}.att-clicks .cl{min-width:50px;text-align:center}.att-clicks .present{color:#a8f361}.att-clicks .absent{color:#ff1a1a}.att-clicks .field{color:#3f61fa}@media(max-width:768px){.att-layout{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:24px;padding:10px 16px;margin-top:30px}.att-sidebar{width:90%!important;max-width:500px!important;padding:18px 22px;margin:0 auto}.att-main{overflow-x:auto;width:98%!important;max-width:720px;margin:0 auto}.att-bar{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:center;gap:8px;margin-bottom:10px;padding:0 16px;max-width:360px;margin-inline:auto;box-sizing:border-box}.att-title{flex:0 0 auto;text-align:center;font-size:.95rem;min-width:auto;margin:0 4px}.att-bar button{padding:4px 8px;font-size:.85rem;white-space:nowrap}.att-legend{justify-content:center;flex-wrap:wrap;margin-left:0;font-size:.85em}.att-sheet{width:100%;overflow-x:auto}}@media(max-width:480px){.att-sidebar{padding:16px;width:95%!important}.att-bar{max-width:320px;padding:0 12px;gap:6px}.att-title{font-size:.9rem}.att-bar button{padding:3px 6px;font-size:.8rem}.att-legend{font-size:.8em}}@media(max-width:768px){.att-sheet{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.att-row{display:flex;flex-wrap:nowrap;min-width:900px}.att-month-cell{flex:0 0 80px;box-sizing:border-box}.att-day-head,.att-cell{flex:0 0 28px;box-sizing:border-box;text-align:center;white-space:nowrap}}.grd{padding:20px;box-sizing:border-box}.grd-bar{display:flex;justify-content:center;align-items:center;gap:10px;margin-bottom:16px}.grd-title{min-width:200px;text-align:center;font-weight:600;color:#445a3e;font-size:1.2em}.grd-bar button{background:#ac807c;color:#fff;border:none;border-radius:8px;padding:6px 12px;cursor:pointer;transition:background-color .2s ease}.grd-bar button:hover{background:#5a694c}.grd-bar .primary{background:#5a694c;color:#fff}.grd-bar .primary:hover{background:#5a694c}.grd-sidebar{background:#cfdcc5;border-radius:12px;padding:18px;box-shadow:0 4px 10px #0000001f,0 3px 6px #00000014;margin-top:-120px}.grd-sidebar h3{color:#504e43;margin-bottom:10px;border-bottom:1px solid #ccc;padding-bottom:4px}.grd-sidebar input,.grd-sidebar textarea{width:100%;margin-bottom:8px;padding:8px;border-radius:6px;border:1px solid #c2c2c2;font-size:.95em;background:#fff;font-family:Kalam,cursive}.grd-sidebar textarea{resize:vertical}.grd-sidebar button{width:100%;background-color:#ac807c;color:#fff;border:none;padding:8px;border-radius:6px;cursor:pointer;margin-top:5px;font-size:.95em;transition:background-color .2s ease}.grd-sidebar button:hover{background-color:#5a694c}.att-student-list{margin-top:12px;display:flex;flex-direction:column;gap:8px}.att-student{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;background:#fff;border:1px solid #dad6cf;border-radius:8px;padding:6px 8px}.att-student .name{background:transparent;color:#2f3028;border:none;text-align:left;padding:0;cursor:pointer}.att-student .remove{background:transparent;border:none;color:#b95050;font-weight:700;cursor:pointer}.att-student.active{outline:2px solid #ac807c33}.grd-clear-wrap{margin-top:10px}.grd-clear-wrap .danger{background:#b95050;color:#fff}.grd-clear-wrap .danger:hover{background:#993f3f}.grd-main{background:#faf8f4;border-radius:12px;padding:16px;box-shadow:0 3px 8px #0000001a;min-height:600px;overflow:auto}.grd-header{text-align:center;font-family:Poppins,sans-serif;font-weight:600;color:#445a3e;margin-bottom:14px}.grd-table-wrap{overflow-x:auto}.grd-table{width:100%;border-collapse:collapse;font-family:Kalam,cursive}.grd-table th,.grd-table td{border:1px solid #e0ddd6;padding:6px 8px;vertical-align:top}.grd-table th{background:#ece9e3;color:#3c3b2f;font-weight:700}.grd-table td{background:#fff}.grd-table td:nth-child(odd){background:#fffdfb}.grd-actions{text-align:center;white-space:nowrap}.grd-actions .mini{background:#6b7b59;color:#fff;border:none;border-radius:6px;padding:4px 6px;font-size:.8em;margin:0 2px;cursor:pointer;transition:background-color .2s ease}.grd-actions .mini:hover{background:#5a694c}.grd-actions .danger{background:#b95050}.grd-actions .danger:hover{background:#993f3f}.grd-score-row{display:flex;align-items:center;gap:6px}.grd-slash{font-weight:600;color:#5a694c;font-size:1.2em}.att-empty.big{text-align:center;padding:40px 0;color:#7a786f;font-style:italic}@media(max-width:768px){.grd-layout{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:24px;padding:10px 16px;margin-top:30px}.grd-sidebar{width:90%!important;max-width:500px!important;padding:18px 22px;margin:0 auto}.grd-main{overflow-x:auto;width:98%!important;max-width:720px;margin:0 auto}.grd-table{font-size:1rem}}@media(max-width:480px){.grd-sidebar{padding:16px;width:95%!important}}.cur{padding:20px;box-sizing:border-box}.cur-bar{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:16px}.cur-title{min-width:220px;text-align:center;font-weight:600;color:#445a3e}.cur-bar .primary{background:#5a694c;color:#fff;border:none;border-radius:8px;padding:6px 12px;cursor:pointer;transition:background-color .25s ease}.cur-bar .primary:hover{background:#445a3e}.cur-sidebar{background:#cfdcc5;border-radius:12px;padding:18px;box-shadow:0 4px 10px #0000001f,0 3px 6px #00000014}.cur-sidebar h3{color:#504e43;margin:0 0 10px;border-bottom:1px solid #ccc;padding-bottom:4px}.cur-sidebar input,.cur-sidebar textarea{width:100%;padding:8px;border-radius:6px;border:1px solid #c2c2c2;margin-bottom:10px;background:#fff;font-family:Kalam,cursive}.cur-sidebar button{width:100%;background:#ac807c;color:#fff;border:none;padding:8px;border-radius:6px;margin-top:5px}.cur-sidebar button:hover{background:#5a694c}.cur-main{background:#faf8f4;border-radius:12px;padding:16px;box-shadow:0 3px 8px #0000001a;min-height:400px;overflow:auto}.grd-table-wrap{width:100%;overflow:auto}.grd-table{width:100%;border-collapse:collapse;background:#fff}.grd-table th,.grd-table td{border:1px solid #eadfdc;padding:8px;vertical-align:top}.grd-table thead th{background:#ece9e3;color:#3c3b2f}.grd-actions{display:flex;gap:6px}.grd-actions .mini{background:#6b7b59;color:#fff;border:none;border-radius:6px;padding:4px 8px;font-size:.85em}.grd-actions .mini.danger{background:#b95050}.subj-col{width:18%}.curr-col{width:34%}.type-col{width:16%}.notes-col{width:32%}.cur-layout{position:relative}.cur-sidebar{position:relative;top:-75px}@media(max-width:768px){.cur-layout{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:24px;padding:10px 16px;margin-top:30px}.cur-sidebar{width:90%!important;max-width:500px!important;padding:18px 22px;margin:60px auto 0!important}.cur-main{overflow-x:auto;width:98%!important;max-width:720px;margin:0 auto}}@media(max-width:480px){.cur-sidebar{padding:16px;width:95%!important}}.login-wrapper{display:flex;justify-content:center;align-items:center;min-height:100vh;background:#f4f7f3;padding:1rem}.login-card{background:#fff;padding:2.5rem;border-radius:20px;max-width:420px;width:100%;box-shadow:0 10px 28px #00000026;text-align:center}.login-logo{width:80px;margin-bottom:1rem}.login-title{font-family:Nunito,sans-serif;color:#4f5d45;margin-bottom:.75rem;font-size:1.6rem}.login-text{font-size:1rem;color:#3b3a38;margin-bottom:1.5rem;line-height:1.4}.login-btn{background:#4f5d45;color:#fff;padding:.75rem 1.5rem;border:none;border-radius:12px;cursor:pointer;font-size:1rem;width:100%;font-weight:700;transition:background .2s ease}.login-btn:hover{background:#3c4a34}.login-footer{margin-top:1rem;font-size:.9rem;color:#767676}.sub-wrapper{display:flex;justify-content:center;align-items:center;min-height:100vh;background:#f4f7f3;padding:1rem}.sub-card{background:#fff;padding:2.5rem;border-radius:20px;max-width:420px;width:100%;box-shadow:0 10px 28px #00000026;text-align:center}.sub-title{font-family:Nunito,sans-serif;font-size:1.6rem;color:#4f5d45;margin-bottom:1rem}.sub-text{font-size:1rem;color:#3b3a38;margin-bottom:1.5rem;line-height:1.4}.sub-btn{display:inline-block;background:#4f5d45;color:#fff!important;padding:.75rem 1.5rem;border-radius:12px;text-decoration:none;font-weight:700;transition:background .2s ease}.sub-btn:hover{background:#3c4a34}.manage-subscription-wrapper{text-align:center;margin-top:2rem;margin-bottom:1rem}.manage-sub-btn{font-size:.85rem;padding:6px 14px;background:#fff;border:1px solid #bbb;border-radius:8px;color:#555;text-decoration:none;transition:.25s ease;box-shadow:0 2px 6px #00000014}.manage-sub-btn:hover{background:#f7f7f7;transform:translateY(-1px)}
