body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;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}:root{--font-family:"Inter","Roboto",sans-serif;--primary-color:#1a73e8;--primary-color-rgb:26,115,232;--primary-color-hover:#1669c1;--background-light:#fff;--background-alt:#f7f9fc;--border-color:#e0e0e0;--shadow-color:#0000001a;--secondary-text-color:#5f6368;--accent-color:#34a853;--border-radius:8px;--container-max-width:600px;--spacing-small:0.5rem;--spacing-medium:1rem;--spacing-large:2rem;--background-color:#f1f3f4;--card-background:#fff;--text-color:#202124;--secondary-text:#5f6368;--border:#e0e0e0}[data-theme=dark]{--background-color:#202124;--card-background:#2d2d2d;--text-color:#fff;--secondary-text:#9aa0a6;--border:#5f6368;--background-alt:#353535;--primary-color:#4285f4;--primary-color-rgb:66,133,244;--chart-text-color:#fff;--chart-grid-color:#5f6368;--analytics-card-bg:#353535;--table-border:#5f6368;--hover-background:#3c4043;--star-color:gold}[data-theme=light]{--chart-text-color:#202124;--chart-grid-color:#e0e0e0;--analytics-card-bg:#fff;--table-border:#e0e0e0;--hover-background:#f5f5f5;--star-color:#ffb800}body{background:#f1f3f4;background:var(--background-color);font-family:Inter,Roboto,sans-serif;font-family:var(--font-family);margin:0;padding:0}.container,body{color:#202124;color:var(--text-color)}.container{background-color:#fff;background-color:var(--card-background);border-radius:8px;border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;box-shadow:0 4px 12px var(--shadow-color);margin:2rem auto;margin:var(--spacing-large) auto;max-width:600px;max-width:var(--container-max-width);padding:1rem;padding:var(--spacing-medium)}@media (min-width:1024px){.container{max-width:1000px}}h1{color:#202124;color:var(--text-color);font-size:3rem;font-weight:800;letter-spacing:-.5px;line-height:1.2;margin:2rem 0;margin:var(--spacing-large) 0;padding:1rem 0;padding:var(--spacing-medium) 0;position:relative;text-align:center}h1:before{background:#1a73e8;background:var(--primary-color);top:0;width:60px}h1:after,h1:before{border-radius:3px;content:"";height:3px;left:50%;opacity:.7;position:absolute;transform:translateX(-50%)}h1:after{background:linear-gradient(90deg,#1a73e8,#34a853);background:linear-gradient(to right,var(--primary-color),var(--accent-color));bottom:0;width:120px}h1 span{background:linear-gradient(120deg,#1a73e8,#34a853);background:linear-gradient(120deg,var(--primary-color),var(--accent-color));-webkit-background-clip:text;background-clip:text;color:#0000;text-shadow:2px 2px 4px #0000001a}@media (max-width:768px){h1{font-size:2.5rem;margin:1rem 0;margin:var(--spacing-medium) 0;padding:.5rem 0;padding:var(--spacing-small) 0}h1:before{width:40px}h1:after{width:100px}}.login-form{margin:0 auto;max-width:400px}.form-group{display:flex;flex-direction:column;margin-bottom:1rem;margin-bottom:var(--spacing-medium)}.form-group label{font-weight:500;margin-bottom:.3rem}input,select{border:1px solid var(--border-color);border-radius:8px;border-radius:var(--border-radius);font-size:1rem;padding:.5rem;padding:var(--spacing-small)}.tab-bar{background:#fff;background:var(--card-background);border-radius:8px;border-radius:var(--border-radius);box-shadow:0 2px 8px #00000014;display:flex;gap:.75rem;justify-content:center;margin:2rem 0;margin:var(--spacing-large) 0;padding:.75rem;position:relative}.tab-bar button{background:#0000;border:none;border-radius:8px;border-radius:var(--border-radius);color:#5f6368;color:var(--secondary-text);font-size:.95rem;font-weight:600;letter-spacing:.5px;padding:.75rem 1.5rem;position:relative;text-transform:uppercase;transition:all .3s cubic-bezier(.4,0,.2,1)}.tab-bar button.active{background:#1a73e8;background:var(--primary-color);box-shadow:0 2px 8px #1a73e840;color:#fff;transform:translateY(-2px)}.tab-bar button.active:after{display:none}.tab-bar button.active:before{background:linear-gradient(120deg,#1a73e8,#34a853);background:linear-gradient(120deg,var(--primary-color),var(--accent-color));border-radius:8px;border-radius:var(--border-radius);bottom:0;content:"";left:0;opacity:.8;position:absolute;right:0;top:0;transition:all .3s ease;z-index:-1}.tab-bar button:hover:not(.active){background:#f7f9fc;background:var(--background-alt);color:#202124;color:var(--text-color);transform:translateY(-1px)}.tab-bar button.active:hover{background:#1a73e8;background:var(--primary-color);opacity:.95}[data-theme=dark] .tab-bar button.active{box-shadow:0 2px 12px #1a73e866}@media (max-width:768px){.tab-bar{gap:.5rem;margin:1rem 0;margin:var(--spacing-medium) 0;padding:.5rem}.tab-bar button{font-size:.85rem;padding:.5rem 1rem}}.totals-grid{grid-gap:1rem;grid-gap:var(--spacing-medium);display:grid;gap:1rem;gap:var(--spacing-medium);grid-template-columns:repeat(2,1fr);margin:2rem 0;margin:var(--spacing-large) 0;padding:0 1rem;padding:0 var(--spacing-medium)}.total-box{align-items:center;background:#fff;background:var(--card-background);box-shadow:0 2px 8px #00000014;display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding:2rem;padding:var(--spacing-large);position:relative;transition:transform .2s ease,box-shadow .2s ease}.total-box:hover{box-shadow:0 4px 12px #0000001f;transform:translateY(-2px)}.total-label{font-size:.9rem;letter-spacing:.5px;margin-bottom:.5rem;text-align:center;text-transform:uppercase;width:100%}.total-value{align-items:center;color:#202124;color:var(--text-color);display:flex;font-size:2.5rem;font-weight:600;gap:.5rem;justify-content:center;line-height:1.2;width:100%}@media (max-width:768px){.totals-grid{gap:.5rem;gap:var(--spacing-small);margin:1rem 0;margin:var(--spacing-medium) 0}.total-box{padding:1rem;padding:var(--spacing-medium)}.total-value{font-size:2rem}}.total-box:after{background:linear-gradient(90deg,#1a73e8,#34a853);background:linear-gradient(to right,var(--primary-color),var(--accent-color));content:"";height:3px;left:0;opacity:.7;position:absolute;top:0;width:100%}.selectors{display:flex;flex-wrap:wrap;justify-content:space-around;margin-bottom:1rem;margin-bottom:var(--spacing-medium)}.week-selector,.year-selector{align-items:center;display:flex;margin:.5rem;margin:var(--spacing-small)}.week-selector label,.year-selector label{font-weight:500;margin-right:.5rem;margin-right:var(--spacing-small)}.week-table-container{margin-bottom:1rem;margin-bottom:var(--spacing-medium);overflow-x:auto}.star-table{border-collapse:collapse;min-width:520px;table-layout:fixed;-webkit-user-select:none;user-select:none;width:100%}.star-table th{resize:none}.star-table td,.star-table th{border:1px solid #e0e0e0;border:1px solid var(--border-color)}.mobile-day-cards{display:flex;flex-direction:column;gap:1rem;gap:var(--spacing-medium);margin-bottom:1rem;margin-bottom:var(--spacing-medium)}.day-card{background:#fff;background:var(--card-background);border-radius:8px;border-radius:var(--border-radius);box-shadow:0 2px 8px #00000014;padding:2rem;padding:var(--spacing-large)}.day-card h2{color:#202124;color:var(--text-color);font-size:1.5rem;font-weight:600;margin:0 0 1rem;margin:0 0 var(--spacing-medium) 0}.day-part{align-items:center;display:grid;grid-template-columns:1fr auto;min-height:2.5rem;padding:.5rem 0;padding:var(--spacing-small) 0}.part-label{color:#202124;color:var(--text-color);font-size:1.1rem;font-weight:500}.star-container{align-items:center;display:flex;height:2rem;justify-content:center;width:2rem}.black-dot,.gold-star{font-size:1.5rem;line-height:1}.day-total{align-items:center;border-top:1px solid #e0e0e0;border-top:1px solid var(--border);color:#202124;color:var(--text-color);display:flex;font-weight:600;justify-content:space-between;margin-top:1rem;margin-top:var(--spacing-medium);padding-top:1rem;padding-top:var(--spacing-medium)}.total-label{font-size:1.1rem}.total-value{font-size:1.3rem}@media (max-width:768px){.day-card{padding:1rem;padding:var(--spacing-medium)}.day-card h2{font-size:1.3rem;margin-bottom:.5rem;margin-bottom:var(--spacing-small)}.part-label{font-size:1rem}.day-part{min-height:2.25rem}}.black-dot{color:#5f6368;color:var(--secondary-text);cursor:pointer}.day-part .gold-star,td.gold-star{color:var(--star-color)!important;cursor:pointer;font-size:1.2em;text-shadow:0 1px 1px #0003}.black-dot:hover,.gold-star:hover{transform:scale(1.1);transition:transform .2s ease}.school-stars-container{align-items:center;display:flex;justify-content:center;margin-bottom:1rem;margin-bottom:var(--spacing-medium)}.school-stars-container label{font-weight:500;margin-right:.5rem;margin-right:var(--spacing-small)}.analytics-section{background:#f7f9fc;background:var(--background-alt);border:1px solid #e0e0e0;border:1px solid var(--border);border-radius:8px;border-radius:var(--border-radius);box-shadow:0 2px 6px #0000001a;box-shadow:0 2px 6px var(--shadow-color);margin-top:1rem;margin-top:var(--spacing-medium);padding:1rem;padding:var(--spacing-medium)}.analytics-grid{grid-gap:1rem;grid-gap:var(--spacing-medium);display:grid;gap:1rem;gap:var(--spacing-medium);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:1rem;margin-bottom:var(--spacing-medium)}.analytics-card{background:var(--analytics-card-bg);border:1px solid #e0e0e0;border:1px solid var(--border);border-radius:8px;border-radius:var(--border-radius);box-shadow:0 2px 4px #0000001a;box-shadow:0 2px 4px var(--shadow-color);color:#202124;color:var(--text-color);padding:.5rem;padding:var(--spacing-small);text-align:center}.analytics-title{color:#5f6368;color:var(--secondary-text);font-weight:500}.analytics-value{display:block;font-size:1.25rem;font-weight:600;margin-top:.5rem}.report-container{margin-top:1rem;margin-top:var(--spacing-medium)}@media (max-width:600px){.container{margin:1rem;margin:var(--spacing-medium);padding:1rem;padding:var(--spacing-medium)}.week-selector,.year-selector{align-items:flex-start;flex-direction:column}.tab-bar button{font-size:.9rem}}.preference-section{border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--border);padding:1rem;padding:var(--spacing-medium)}.preference-section:last-child{border-bottom:none}.preference-title{font-weight:600;margin-bottom:.5rem;margin-bottom:var(--spacing-small)}.preference-control{margin-top:.5rem;margin-top:var(--spacing-small)}.preference-control input,.preference-control select{background:#fff;background:var(--card-background);border:1px solid #e0e0e0;border:1px solid var(--border);color:#202124;color:var(--text-color)}.star-table td,.star-table th{border:1px solid var(--table-border);color:#202124;color:var(--text-color);padding:.75rem;text-align:center}.day-name{background-color:#f7f9fc;background-color:var(--background-alt);font-weight:600;text-align:left;width:120px}.day-name,.tab-bar button{color:#202124;color:var(--text-color)}.tab-bar button{background:#f7f9fc;background:var(--background-alt);border:1px solid #e0e0e0;border:1px solid var(--border);cursor:pointer;flex:1 1;font-weight:500;padding:.5rem;padding:var(--spacing-small);transition:all .3s ease}.tab-bar button:hover{background-color:var(--hover-background);color:#202124;color:var(--text-color)}.tab-bar button.active:hover{background-color:#1669c1;background-color:var(--primary-color-hover);color:#fff}.total-box{background:#f7f9fc;background:var(--background-alt);border:1px solid #e0e0e0;border:1px solid var(--border);border-radius:8px;border-radius:var(--border-radius);color:#202124;color:var(--text-color);padding:1rem;padding:var(--spacing-medium);text-align:center}.total-label{color:#5f6368;color:var(--secondary-text);display:block;font-weight:500;margin-bottom:.3rem}input,select{border:1px solid #e0e0e0;border:1px solid var(--border)}input,select,select option{background-color:#fff;background-color:var(--card-background)}.day-card,input,select,select option{color:#202124;color:var(--text-color)}.day-card{background:#f7f9fc;background:var(--background-alt);border:1px solid #e0e0e0;border:1px solid var(--border)}.no-data{color:#5f6368;color:var(--secondary-text)}h2,h3{color:#202124;color:var(--text-color)}.week-selector{align-items:center;display:flex;margin:.5rem;margin:var(--spacing-small)}.week-nav-button{align-items:center;background:#f7f9fc;background:var(--background-alt);border:1px solid #e0e0e0;border:1px solid var(--border);border-radius:8px;border-radius:var(--border-radius);color:#202124;color:var(--text-color);cursor:pointer;display:flex;font-size:16px;justify-content:center;min-height:32px;min-width:32px;padding:4px 8px}.week-nav-button:hover:not(:disabled){background:var(--hover-background)}.week-nav-button:disabled{cursor:not-allowed;opacity:.5}.notes-icon{align-items:center;color:#1a73e8;color:var(--primary-color);cursor:pointer;display:inline-flex;font-size:1.2em;justify-content:center;margin-left:8px;transition:transform .2s ease,color .2s ease,opacity .2s ease}.notes-icon svg{filter:drop-shadow(0 1px 2px rgba(0,0,0,.1));transition:fill .3s ease}.notes-icon:hover{color:#1669c1;color:var(--primary-color-hover);transform:scale(1.1)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.notes-modal-backdrop{align-items:center;animation:fadeIn .2s ease-out;background-color:#00000080;height:100%;justify-content:center;left:0;overflow:hidden;position:fixed;top:0;z-index:1000}.notes-modal,.notes-modal-backdrop{box-sizing:border-box;display:flex;padding:20px;width:100%}.notes-modal{animation:slideIn .3s ease-out;background-color:#fff;background-color:var(--card-background);border:1px solid #e0e0e0;border:1px solid var(--border);border-radius:8px;border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;box-shadow:0 4px 12px var(--shadow-color);color:#202124;color:var(--text-color);flex-direction:column;max-height:80vh;max-width:500px;overflow-y:auto}.notes-modal-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:15px}.notes-modal-title{color:#202124;color:var(--text-color);font-size:1.2em;font-weight:700;margin:0}.notes-modal-close{background:none;border:none;color:#202124;color:var(--text-color);cursor:pointer;font-size:1.5em;padding:0;transition:transform .2s ease}.notes-modal-close:hover{transform:scale(1.1)}.notes-textarea{border-radius:4px;min-height:150px;padding:10px}.notes-tabs{border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--border);box-sizing:border-box;display:flex;flex-wrap:wrap;gap:4px;justify-content:center;margin-bottom:15px;width:100%}.notes-tab{background:#0000;border:none;border-bottom:2px solid #0000;color:#5f6368;color:var(--secondary-text);cursor:pointer;flex:0 1 auto;font-weight:500;margin-bottom:4px;min-width:100px;padding:10px 16px;position:relative;text-align:center;transition:all .2s ease;white-space:nowrap}.notes-tab.has-content{color:#202124;color:var(--text-color);font-weight:600}.notes-tab.has-content:after{background-color:#1a73e8;background-color:var(--primary-color);border-radius:50%;content:"";height:6px;opacity:.8;position:absolute;right:8px;top:8px;width:6px}[data-theme=light] .notes-tab.has-content:not(.active){background-color:#1a73e80d;background-color:rgba(var(--primary-color-rgb),.05);border-bottom:2px solid #1a73e84d;border-bottom:2px solid rgba(var(--primary-color-rgb),.3)}[data-theme=dark] .notes-tab.has-content:not(.active){background-color:#1a73e826;background-color:rgba(var(--primary-color-rgb),.15);border-bottom:2px solid #1a73e866;border-bottom:2px solid rgba(var(--primary-color-rgb),.4)}.notes-tab.active{background-color:#1a73e80d;background-color:rgba(var(--primary-color-rgb),.05);border-bottom:2px solid #1a73e8;border-bottom:2px solid var(--primary-color);color:#1a73e8;color:var(--primary-color)}.notes-tab.active.has-content:after{display:none}.notes-tab:hover:not(.active){background-color:#f7f9fc;background-color:var(--background-alt);color:#202124;color:var(--text-color)}.notes-tab.general-tab{border-bottom:none;flex:1 0 100%;font-size:1.05em;font-weight:600;margin-bottom:8px;max-width:100%}.notes-tab.general-tab.active{border-bottom:2px solid #1a73e8;border-bottom:2px solid var(--primary-color)}.notes-tab.general-tab.has-content:not(.active){color:#1a73e8;color:var(--primary-color)}.notes-tabs:after{border-bottom:1px dashed #e0e0e0;border-bottom:1px dashed var(--border);content:"";flex-basis:100%;height:0;margin-bottom:8px}.notes-tab-content{box-sizing:border-box;display:none;padding:0;width:100%}.notes-tab-content.active{display:block;width:100%}.notes-textarea{background-color:#fff;background-color:var(--card-background);border:1px solid #e0e0e0;border:1px solid var(--border);border-radius:6px;box-sizing:border-box;color:#202124;color:var(--text-color);font-family:inherit;font-size:1rem;line-height:1.5;margin-bottom:15px;min-height:180px;overflow:auto;padding:12px;resize:vertical;transition:border-color .2s ease;width:100%}.notes-textarea:focus{border-color:#1a73e8;border-color:var(--primary-color);box-shadow:0 0 0 2px #1a73e833;box-shadow:0 0 0 2px rgba(var(--primary-color-rgb),.2);outline:none}.notes-save-button{align-items:center;align-self:flex-start;background-color:#1a73e8;background-color:var(--primary-color);border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:700;gap:8px;margin-top:auto;padding:10px 20px;transition:all .2s ease}.notes-save-button:hover{background-color:#1669c1;background-color:var(--primary-color-hover);box-shadow:0 2px 5px #0000001a;transform:translateY(-1px)}.notes-save-button:active{transform:translateY(0)}.notes-save-button:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M21 7v12c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2h12l4 4zm-2 1h-3V5H9v3h6V5h1v3zm0 4H5v8h14v-8zm-2 6h-3v-4h-4v4H7v-4h10v4z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:contain;content:"";display:inline-block;height:18px;width:18px}@media (max-width:768px){.notes-tab{flex-basis:calc(50% - 8px);flex-grow:1;flex-shrink:0;font-size:.9rem;min-width:0;padding:8px 10px}.notes-tab.general-tab{flex:1 0 100%}.notes-modal{max-height:90vh;overflow-y:auto;padding:15px;width:95%}.notes-textarea{min-height:120px;padding:10px}.notes-save-button{justify-content:center;width:100%}.notes-tab.has-content:after{height:5px;right:6px;top:6px;width:5px}.notes-tab.has-content:not(.active){font-weight:600}}.has-notes{position:relative}
/*# sourceMappingURL=main.b7fc3aa7.css.map*/