:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#263d36;background:#f6f7f3;font-synthesis:none;font-size:14px;--green:#183f35;--ink:#223d33;--muted:#78837b;--line:#e4e8df;--lime:#d7eea2;--paper:#fff;--bg:#f6f7f3}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit;text-decoration:none}button{color:inherit}input,select,textarea{max-width:100%}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #a7c774;outline-offset:3px}input[type=checkbox]{accent-color:var(--green);width:17px;height:17px;cursor:pointer;flex-shrink:0}button svg,a svg{flex-shrink:0}svg{vertical-align:middle;flex-shrink:0}h1,h2,h3,p{margin:0}button{border:0;background:transparent}.app-shell{display:flex;min-height:100vh}.sidebar{width:236px;flex-shrink:0;background:var(--green);color:#f1f6ed;padding:34px 21px 20px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;z-index:20}.brand{font-size:22px;font-weight:650;letter-spacing:-1px;display:flex;gap:10px;align-items:center;margin:0 3px}.brand-icon{width:33px;height:36px;display:grid;place-items:center;background:var(--lime);color:var(--green);border-radius:10px}.brand-dot{color:var(--lime)}.school-label{font-size:9px;letter-spacing:1.7px;color:#a9c0b5;margin:35px 12px 28px;line-height:1.7}.school-label>span{display:block;font-size:11px;letter-spacing:.3px;color:#cedbd3;margin-top:3px}.sidebar nav{display:flex;flex-direction:column;gap:7px}.sidebar nav button{display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:7px;text-align:left;color:#b9cdc1;font-size:12px;font-weight:500}.sidebar nav button.active{background:#d9eca9;color:#173d31}.sidebar nav button:not(.active):hover{background:#244e42;color:#fff}.nav-count{margin-left:auto;font-size:10px;padding:2px 6px;border-radius:4px;background:#ffffff18}.sidebar nav button.active .nav-count{background:#173d3115}.sidebar-progress{border:1px solid #456253;border-radius:11px;margin:68px 1px 24px;padding:20px 17px 17px;background:linear-gradient(135deg,#ffffff06,transparent)}.progress-icon{width:32px;height:32px;display:grid;place-items:center;color:var(--lime);border:1px solid #698269;border-radius:50%;margin-bottom:14px}.sidebar-progress h3{font-size:15px;font-weight:550;letter-spacing:-.2px;margin-bottom:7px}.sidebar-progress p{font-size:11px;line-height:1.8;color:#b5c7bc}.progress-track,.stat-progress{height:5px;border-radius:10px;background:#ffffff20;overflow:hidden;margin-top:23px}.progress-track>span,.stat-progress>span{height:100%;display:block;background:var(--lime);border-radius:10px}.progress-caption{display:flex;justify-content:space-between;font-size:10px;margin-top:9px;color:#b7cbbf}.progress-caption strong{font-weight:500;color:#e7efdf}.sidebar-bottom{display:flex;align-items:center;gap:9px;margin:auto 5px 0;padding:18px 0 0;border-top:1px solid #43614f;font-size:10px;color:#d5e0d7;line-height:1.7}.sidebar-bottom div{flex:1}.sidebar-bottom div span{display:block;font-size:9px;color:#94b19f}.sidebar-bottom>svg{color:#99b59f}.connection-dot,.tiny-dot{display:inline-block;width:6px;height:6px;background:#9cbc7a;border-radius:50%;flex-shrink:0}.main-content{margin-left:236px;width:calc(100% - 236px);min-width:0}.topbar{height:72px;border-bottom:1px solid var(--line);background:#fbfcf9;padding:0 40px;display:flex;align-items:center;justify-content:space-between;font-size:11px}.topbar>div{display:flex;align-items:center;gap:12px}.breadcrumb{color:#939c94}.topbar strong{font-weight:500}.private-label{display:flex;align-items:center;gap:7px;font-size:10px;color:#78877b}.private-label .connection-dot{background:#4e8c65;width:5px;height:5px}.page-content{padding:35px 40px 20px;max-width:1620px;margin:auto}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:28px}.eyebrow{font-size:9px;font-weight:600;letter-spacing:1.9px;color:#839077;margin-bottom:10px}h1{font-size:36px;letter-spacing:-1.6px;font-weight:550;color:#203e33;line-height:1.2}.page-heading p{font-size:12px;line-height:1.8;color:var(--muted);margin-top:10px}.button{border-radius:6px;padding:11px 15px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-size:11px;font-weight:550;white-space:nowrap;border:1px solid transparent;line-height:1.4}.button.primary{background:var(--green);color:#fff}.button.primary:hover:not(:disabled){background:#285643}.button.secondary{background:#fff;border-color:#dce2d7;color:#435548}.button.secondary:hover{background:#f0f4ea}.button.compact{padding:9px 12px}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:24px}.stat-card{padding:19px 19px 17px;background:#fff;border:1px solid var(--line);border-radius:9px;min-height:134px}.stat-label{font-size:10px;display:flex;justify-content:space-between;align-items:center;color:#69796d}.stat-label svg{color:#83977c}.stat-value{display:flex;align-items:baseline;gap:11px;margin-top:15px;font-size:36px;letter-spacing:-1.5px;line-height:1;font-weight:550}.stat-value>span{font-size:9px;letter-spacing:0;color:#8b9589;font-weight:400;line-height:1.4}.stat-bottom{font-size:9px;color:#8a9586;margin-top:12px;display:flex;align-items:center;gap:6px}.visited-stat{background:#eef4e6;border-color:#dfe8d3}.stat-progress{background:#d8e3cd;height:4px;margin-top:16px}.stat-progress>span{background:#769554}.available-stat .stat-value{color:#4d7243}.time-panel{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 18px;border:1px solid var(--line);background:#fbfcf8;border-radius:8px;margin-bottom:30px}.time-intro{display:flex;align-items:center;gap:12px}.time-icon{width:37px;height:37px;border-radius:8px;background:#edf1e8;color:#758466;display:grid;place-items:center}.time-intro strong{display:block;font-size:11px;font-weight:550;text-transform:capitalize}.time-intro div>span{display:block;margin-top:5px;font-size:9px;color:#8a9384}.time-form{display:flex;align-items:center;gap:8px}.time-form input{padding:8px 9px;border:1px solid #dce2d5;background:#fff;border-radius:5px;font-size:10px;color:#4b5d4e;min-height:34px}.time-form input[type=date]{width:131px}.time-form input[type=time]{width:89px}.now-link{font-size:10px;color:#6a7d5d;padding:7px}.now-link:hover{text-decoration:underline}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:28px 0 18px}.section-heading h2{font-size:18px;font-weight:550;letter-spacing:-.5px;display:flex;align-items:center;gap:10px}.section-heading h2>span{display:inline-flex;align-items:center;justify-content:center;min-width:23px;height:22px;padding:0 6px;background:#e8ede2;border-radius:5px;font-size:10px;letter-spacing:0;color:#718063}.section-heading p{font-size:10px;color:#8a9587;line-height:1.7;margin-top:6px}.view-caption{display:flex;align-items:center;gap:6px;font-size:9px;color:#7f8d72}.view-caption .tiny-dot{background:#839962;width:5px;height:5px}.filter-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.segmented{display:flex;gap:3px;background:#ebeee6;padding:4px;border-radius:6px}.segmented button{padding:8px 10px;font-size:10px;white-space:nowrap;border-radius:4px;color:#7d8875}.segmented button.chosen{background:#fff;color:#3d533b;box-shadow:0 1px 3px #24452712;font-weight:550}.search-tools{display:flex;align-items:center;gap:8px}.search-input{display:flex;align-items:center;gap:8px;border:1px solid #dce2d7;background:#fff;border-radius:6px;padding:9px 10px;color:#98a18e;min-width:0}.search-input input{border:0;background:transparent;outline:none;font-size:10px;min-width:0;width:155px;color:#3d5140}.search-input input::placeholder{color:#98a18e}.search-input.wide input{width:280px}.search-input input:focus-visible{outline:none}.search-input:focus-within{border-color:#8aab68;box-shadow:0 0 0 2px #d9e8c7}select{border:1px solid #dce2d7;background:#fff;padding:10px 26px 10px 10px;font-size:10px;border-radius:6px;color:#6e7d64;max-width:190px}.class-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.class-card{border:1px solid var(--line);border-radius:9px;padding:18px 18px 0;background:#fff;min-height:244px;transition:border-color .15s,box-shadow .15s}.class-card:hover{border-color:#bfcdb5;box-shadow:0 3px 12px #28442107}.card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.grade-label{font-size:8px;letter-spacing:1px;color:#8e9987}.badge{display:inline-flex;align-items:center;gap:5px;font-size:8px;padding:5px 7px;background:#f1f3ec;color:#869078;border-radius:4px;line-height:1.2;white-space:normal}.badge.green{background:#ecf4dd;color:#67863f}.badge.green .tiny-dot{width:4px;height:4px;background:#82a75c}.badge.done{background:#e8f2e6;color:#5a875c}.class-title{display:flex;align-items:center;justify-content:space-between;margin-top:9px;margin-bottom:15px}.class-title h3{font-size:35px;line-height:1.1;font-weight:500;letter-spacing:-1px}.icon-button{width:30px;height:30px;display:inline-grid;place-items:center;border:1px solid #e4e9df;background:#fff;border-radius:50%;color:#8b9980}.icon-button:hover{background:#f1f5eb;color:var(--green)}.lesson-label{font-size:7px;letter-spacing:.9px;color:#9ba48e;margin-bottom:9px}.card-lesson{display:flex;align-items:center;gap:8px;color:#486044;font-size:11px;margin-bottom:10px}.card-lesson strong{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-lesson svg{color:#859d75}.card-detail{display:flex;align-items:center;gap:7px;color:#8a9681;font-size:10px;margin-bottom:8px;min-height:15px;flex-wrap:wrap}.card-detail svg{color:#a3ad98}.card-detail>span:not(.muted-reason){color:#c0c8b7}.muted-reason{font-size:8px;color:#9d927b;max-width:100%}.card-footer{border-top:1px solid #edf0e8;margin-top:17px;min-height:43px;display:flex;align-items:center;justify-content:space-between;gap:6px}.text-button{font-size:10px;padding:4px 0;display:inline-flex;align-items:center;gap:6px;font-weight:500;color:#526d47}.text-button:hover{color:#213f2b;text-decoration:underline}.card-view{color:#798b6b;font-size:9px}.visit-quick{display:flex;align-items:center;gap:4px;padding:5px 7px;border:1px solid #d9e5cd;border-radius:4px;background:#f1f6e9;color:#668649;font-size:9px}.visit-quick:hover{background:#e5efd7}.completed{border-color:#dce7d5;background:#fcfef9}.visited-info{margin-top:24px}.done-caption{display:inline-flex;align-items:center;gap:6px;color:#6b8b54;font-size:9px}.card-empty{display:flex;align-items:center;gap:10px;min-height:74px;font-size:10px;line-height:1.8;color:#98a18e;padding:2px 0 3px}.page-footer{display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--line);padding:20px 0 0;margin-top:35px;font-size:9px;color:#a0aa96}.page-footer>span:first-child{color:#839477}.notice{display:flex;align-items:center;gap:10px;border-radius:7px;padding:12px 15px;font-size:11px;line-height:1.7;margin:0 0 20px}.notice.success{background:#edf5e6;color:#557646;border:1px solid #dcead0}.notice.error{background:#fff0e8;color:#9b4e36;border:1px solid #f0d6c8}.notice.info{background:#f0f2e9;color:#7a8266;border:1px solid #e0e5d5;flex-wrap:wrap}.notice a{display:inline-flex;align-items:center;gap:6px;text-decoration:underline}.table-wrap{background:#fff;border:1px solid var(--line);border-radius:8px;overflow:auto}table{border-collapse:collapse;width:100%;font-size:10px;text-align:left}th{font-size:9px;font-weight:500;color:#8a9780;background:#fafbf7;padding:15px 17px;white-space:nowrap;border-bottom:1px solid var(--line)}td{padding:14px 17px;border-bottom:1px solid #edf0e8;color:#708266;line-height:1.5}tr:last-child td{border-bottom:0}td strong{font-weight:550;color:#435e3b}td small{display:block;color:#a0aa94;font-size:9px;margin-top:4px;max-width:220px}tbody tr:hover{background:#fbfdf7}.room-tag{display:inline-block;padding:4px 7px;background:#f1f4eb;border-radius:4px;color:#6b825a}.nowrap{white-space:nowrap}.cancelled td{color:#b0b7a5}.cancelled td:nth-child(3){text-decoration:line-through}.empty-state{text-align:center;padding:45px 22px;color:#9aa68c;border:1px dashed #dce4d1;background:#fbfcf8;border-radius:8px;margin-top:15px}.table-wrap .empty-state{border:0;margin:0}.empty-state>svg{margin-bottom:15px}.empty-state h3{font-size:17px;font-weight:500;color:#617553;letter-spacing:-.3px;margin-bottom:10px}.empty-state p{font-size:11px;line-height:1.9;color:#97a28a;margin-bottom:20px}.empty-state.large{padding:70px 24px}.empty-circle{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 23px;background:#edf3e2;border-radius:50%;color:#7c9c5c}.visits-list{display:flex;flex-direction:column;gap:13px}.visit-card{padding:22px;background:#fff;border:1px solid var(--line);border-radius:8px;display:flex;align-items:center;gap:20px}.visit-check{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#edf5e5;color:#779d57}.visit-class{min-width:85px}.visit-class strong{font-size:25px;font-weight:500;letter-spacing:-.7px;display:block}.visit-class>span{display:block;font-size:9px;color:#91a080;margin-top:5px}.visit-details{flex:1;font-size:11px}.visit-details strong{font-weight:550}.visit-details>span{display:block;color:#8c9a7e;font-size:10px;line-height:1.8;margin-top:6px}.visit-details p{margin-top:9px;white-space:pre-wrap;font-size:10px;line-height:1.8;color:#6c7d60}.subdued{color:#9aa48e;font-size:9px}.rules-intro{display:flex;align-items:flex-start;gap:20px;background:#edf3e4;border:1px solid #dee7d3;border-radius:10px;padding:25px;margin-bottom:28px}.rules-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:12px;background:#dfebce;color:#6a874f;flex-shrink:0}.rules-intro h2{font-size:20px;letter-spacing:-.6px;font-weight:550;margin-bottom:10px}.rules-intro p{font-size:11px;line-height:1.9;color:#7d8d70;max-width:690px}.whole-class{display:flex;align-items:center;gap:9px;font-size:11px;line-height:1.7;margin-top:17px;color:#577144}.rules-intro small{display:block;font-size:9px;color:#93a180;line-height:1.8;margin-top:8px}.subject-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.subject-option{display:flex;align-items:center;gap:13px;padding:15px;background:#fff;border:1px solid var(--line);border-radius:7px;cursor:pointer;min-width:0}.subject-option:has(input:checked){background:#fcfef8;border-color:#d5e2c7}.subject-copy{flex:1;min-width:0}.subject-copy strong{display:block;font-weight:550;font-size:12px;word-break:break-word}.subject-copy>span{display:block;font-size:9px;line-height:1.6;color:#95a086;margin-top:4px}.subject-category{font-size:8px;color:#8b987a;background:#f1f3ed;padding:5px 6px;border-radius:4px;white-space:nowrap}.subject-category.review{background:#faf0dd;color:#aa8a55}.subject-hidden{display:none}.rules-save{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:25px;padding-top:20px;border-top:1px solid var(--line)}.rules-save>span{font-size:10px;color:#94a084}.modal-backdrop{position:fixed;inset:0;background:#172c2369;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:50;display:flex;align-items:center;justify-content:center;padding:24px}.modal-backdrop.front{z-index:60}.modal{background:#fbfcf9;border:1px solid #fff;border-radius:15px;padding:28px;width:640px;max-width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 24px 90px #10271b33}.modal-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:22px}.modal-heading h2{font-size:29px;letter-spacing:-1px;font-weight:500}.modal-heading .eyebrow{font-size:8px}.lesson-list{display:flex;flex-direction:column}.lesson-row{display:flex;gap:15px;align-items:center;padding:16px 0;border-top:1px solid var(--line)}.lesson-time{min-width:41px;color:#5c754e;font-size:10px}.lesson-time strong,.lesson-time span{display:block;margin-bottom:5px}.lesson-time span{font-size:9px;color:#a0ab93}.lesson-copy{flex:1;min-width:0}.lesson-copy>strong{display:block;font-size:11px;font-weight:550;margin-bottom:7px}.lesson-copy>span{display:block;font-size:10px;color:#86977a;margin-top:5px}.lesson-copy>.lesson-reason{font-size:8px;color:#94a184;margin-top:7px}.lesson-copy>small{font-size:9px;color:#929d86;display:block;line-height:1.8;margin-top:5px}.lesson-row.excluded{opacity:.65}.lesson-row.excluded .lesson-reason{color:#9c8764}.modal-footnote{font-size:9px;line-height:1.8;color:#96a285;border-top:1px solid var(--line);padding-top:17px;margin-top:15px}.visit-modal{width:500px}.visit-summary{display:flex;flex-direction:column;gap:8px;padding:17px;border:1px solid #dfe6d6;background:#f2f6eb;border-radius:7px;margin-bottom:24px}.visit-summary strong{font-size:13px;font-weight:550}.visit-summary span{font-size:10px;color:#869878}.field-label{font-size:11px;font-weight:500;display:block;margin-bottom:12px}.field-label>span{color:#98a28c;font-size:10px;font-weight:400}.field-label input,.field-label textarea{display:block;border:1px solid #d6dfcd;border-radius:6px;background:#fff;padding:11px;color:#5c7250;width:100%;font-size:12px;margin-top:9px}.field-label textarea{resize:vertical;font-size:11px}.field-help{font-size:9px;line-height:1.8;color:#9aa58d;margin:-3px 0 20px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.small-modal{max-width:440px}.small-modal h2{font-size:21px;font-weight:550;letter-spacing:-.6px;margin-bottom:13px}.small-modal p{font-size:12px;line-height:1.8;color:#869577}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.error-page{max-width:680px;margin:10vh auto;padding:30px}.error-page h1{font-size:28px;line-height:1.4;margin-bottom:20px}.error-page p{font-size:13px;line-height:1.9;margin-bottom:20px;color:#798d6e}.error-page code{font-size:11px}@media(min-width:1550px){.page-content{padding:45px 55px 25px}.topbar{padding:0 55px}.class-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.stat-card{padding:23px}.class-card{min-height:255px}.class-title{margin-bottom:21px}.sidebar{width:248px}.main-content{margin-left:248px;width:calc(100% - 248px)}}@media(max-width:1200px){.sidebar{width:208px;padding:30px 16px 18px}.brand{font-size:20px;gap:7px}.main-content{margin-left:208px;width:calc(100% - 208px)}.page-content{padding:30px 26px 20px}.topbar{padding:0 26px}.filter-bar{flex-wrap:wrap}.search-tools{margin-left:auto}.stat-card{padding:16px 14px}.stat-value{gap:8px}.stat-value>span{font-size:8px}.class-grid{gap:13px}.class-card{padding:15px 14px 0}.class-title h3{font-size:31px}.grade-label,.badge{font-size:7px}.card-detail{font-size:9px}.time-panel{padding:13px}.time-intro{gap:9px}.time-intro strong{font-size:10px}.time-icon{width:31px;height:31px}.time-form{gap:5px}.time-form input[type=date]{width:120px}.time-form input[type=time]{width:83px}.subject-category{font-size:7px}.visit-card{gap:14px}}@media(max-width:980px){.class-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-grid{gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card{min-height:120px}.stat-value>span{font-size:10px}.time-panel{align-items:flex-start;flex-direction:column}.time-form{width:100%;justify-content:flex-end}.time-intro strong{font-size:12px}.time-intro div>span{font-size:10px}.time-icon{width:36px;height:36px}.page-heading h1{font-size:31px}.page-heading>.button{font-size:10px}.subject-grid{grid-template-columns:1fr}.visit-card{flex-wrap:wrap}.visit-details{flex-basis:calc(100% - 160px)}.visit-card>.text-button{margin-left:auto}.section-heading .search-input input{width:125px}.view-caption{display:none}.filter-bar .search-tools{margin-left:0;width:100%;justify-content:space-between}.search-tools .search-input{flex:1}.search-tools .search-input input{width:100%}}@media(max-width:700px){.app-shell{display:block}.sidebar{position:sticky;top:0;width:100%;height:auto;padding:12px 16px 0;z-index:20;display:block}.brand{font-size:20px;display:inline-flex;margin:0}.brand-icon{width:28px;height:30px;border-radius:8px}.school-label,.sidebar-progress,.sidebar-bottom{display:none}.sidebar nav{margin-top:12px;flex-direction:row;justify-content:space-between;gap:3px}.sidebar nav button{padding:11px 7px;border-radius:5px 5px 0 0;justify-content:center;gap:7px;font-size:10px;flex:1}.sidebar nav button svg{width:16px;height:16px}.nav-count{display:none}.main-content{margin-left:0;width:100%}.topbar{height:45px;padding:0 18px;font-size:9px}.topbar .private-label{font-size:8px}.page-content{padding:25px 18px 20px}.page-heading{gap:12px;align-items:flex-start;margin-bottom:22px}.page-heading h1{font-size:29px}.page-heading p{font-size:10px;max-width:240px}.eyebrow{font-size:7px;letter-spacing:1.3px}.page-heading>.button{padding:8px;font-size:0;gap:0}.page-heading>.button svg{width:19px;height:19px}.stats-grid{gap:10px;margin-bottom:18px}.stat-card{padding:15px;min-height:118px}.stat-value{font-size:31px;margin-top:13px;gap:8px}.stat-value>span{font-size:8px}.stat-label{font-size:9px}.stat-bottom{font-size:8px}.stat-label svg{width:16px;height:16px}.stat-progress{margin-top:15px}.time-panel{gap:15px;margin-bottom:24px}.time-form{justify-content:space-between;gap:5px;flex-wrap:wrap}.time-form input[type=date]{width:126px}.time-form input[type=time]{width:83px}.time-form .button{font-size:9px;padding:9px}.time-form .button svg{width:13px;height:13px}.time-form .now-link{font-size:9px;padding:5px}.section-heading{margin-top:24px}.section-heading h2{font-size:17px}.section-heading p{font-size:9px}.filter-bar{gap:12px}.segmented{width:100%;justify-content:space-between}.segmented button{flex:1;padding:8px 6px;font-size:9px}.search-input input{font-size:10px}.class-grid{gap:11px}.class-card{padding:14px 13px 0;min-height:236px}.card-top{gap:4px;flex-wrap:wrap}.grade-label{font-size:6px;letter-spacing:.7px}.class-title h3{font-size:31px}.card-top .badge{font-size:6px;padding:4px 5px}.card-lesson{font-size:10px;gap:6px}.card-detail{font-size:8px;gap:5px}.lesson-label{font-size:6px;letter-spacing:.6px}.card-title{margin-bottom:13px}.card-footer{margin-top:14px;min-height:42px}.card-view{font-size:8px;gap:3px}.visit-quick{font-size:8px;padding:4px;gap:2px}.visit-quick span{display:none}.visit-quick svg{width:14px;height:14px}.card-empty{font-size:9px;gap:6px}.card-empty svg{width:17px;height:17px}.done-caption{font-size:8px;gap:4px}.card-footer .text-button{font-size:8px}.page-footer{font-size:8px;line-height:1.8;align-items:flex-start}.page-footer>span:last-child{max-width:180px;text-align:right}.search-input.wide{flex:1}.search-input.wide input{width:100%;min-width:110px}.filter-bar select{font-size:9px;max-width:145px}th,td{padding:13px;font-size:10px}.table-wrap .badge{font-size:8px}.table-wrap .text-button{white-space:nowrap}.modal-backdrop{padding:14px}.modal{padding:22px;max-height:88dvh;border-radius:12px}.modal-heading h2{font-size:26px}.modal-heading .eyebrow{font-size:7px;letter-spacing:1.2px}.lesson-row{gap:10px;flex-wrap:wrap}.lesson-time{font-size:9px;min-width:35px}.lesson-copy>strong{font-size:10px}.lesson-row>.button{font-size:9px;padding:7px}.lesson-copy>.lesson-reason{font-size:7px}.rules-intro{padding:20px;gap:13px}.rules-icon{width:35px;height:35px;border-radius:8px}.rules-icon svg{width:20px;height:20px}.rules-intro h2{font-size:18px}.rules-intro p{font-size:10px}.whole-class{font-size:10px;align-items:flex-start;gap:7px}.rules-intro small{font-size:8px}.rules-save{align-items:flex-start;gap:13px}.rules-save>span{font-size:9px;line-height:1.8}.rules-save>.button{font-size:10px;padding:10px}.subject-option{padding:13px}.subject-category{font-size:7px}.subject-copy>span{font-size:9px}.subject-copy strong{font-size:11px}.section-heading>.button{font-size:10px;padding:9px}.visit-card{padding:18px;gap:12px}.visit-details{flex-basis:100%;padding-left:0}.visit-card>.text-button{margin:0}.visit-class{flex:1}.visit-class strong{font-size:23px}.visits-list{gap:12px}.section-heading:has(.search-input){flex-wrap:wrap}.section-heading>.search-input{width:100%}.section-heading>.search-input input{width:100%}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}@media(max-width:700px){.sidebar nav button{padding:11px 5px;gap:5px;font-size:9px;min-width:0}.sidebar nav button svg{width:15px;height:15px}.sidebar nav button span{min-width:0}.time-form input[type=date]{width:118px}.time-form input[type=time]{width:77px}}.sidebar nav .planner-nav{display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:7px;text-align:left;color:#b9cdc1;font-size:12px;font-weight:500}.sidebar nav .planner-nav.active{background:#d9eca9;color:#173d31}.sidebar nav .planner-nav:not(.active):hover{background:#244e42;color:#fff}.planner-heading-icon{width:58px;height:58px;display:grid;place-items:center;color:#779556;background:#eaf1df;border:1px solid #dfe7d2;border-radius:16px}.planner-columns{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(270px,1fr);gap:23px;align-items:start}.planner-panel{border:1px solid var(--line);background:#fff;border-radius:10px;padding:23px;margin-bottom:20px}.panel-title{display:flex;gap:12px;align-items:flex-start;margin-bottom:24px}.step-number{display:grid;place-items:center;width:30px;height:30px;border-radius:7px;background:#edf3e4;color:#769653;font-size:10px;font-weight:600;flex-shrink:0}.panel-title h2{font-size:16px;letter-spacing:-.4px;font-weight:550;margin:2px 0 7px}.panel-title p{font-size:10px;color:#93a084;line-height:1.8}.window-row{display:flex;align-items:center;gap:10px;padding:15px 0;border-top:1px solid var(--line)}.window-row:first-child{padding-top:0;border-top:0}.window-number{color:#9baa8b;font-size:9px}.window-row>.field-label{flex:1;min-width:0;font-size:10px}.window-row .field-label input{font-size:11px;padding:10px 7px;min-width:0}.window-arrow{padding-top:10px;color:#9cac8d}.window-row>.icon-button{margin-top:10px;flex-shrink:0;width:25px;height:25px}.window-list{margin-bottom:8px}.planner-help{font-size:10px;line-height:1.9;color:#91a080;margin-top:13px}.duration-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:15px}.number-with-unit{position:relative}.number-with-unit input{padding-right:75px}.number-with-unit>span{position:absolute;right:12px;top:12px;font-size:10px;color:#a0ad91}.planner-panel .field-label select{display:block;margin-top:9px;font-size:12px;padding:11px;max-width:none;width:100%;color:#5c7250}.planner-checkbox{display:flex;align-items:flex-start;gap:9px;font-size:10px;line-height:1.8;margin:22px 0;color:#889a78}.planner-checkbox input{margin-top:2px}.planner-open{display:flex;align-items:center;gap:12px;background:#f1f6e9;border-radius:7px;padding:15px;margin:20px 0}.planner-open strong{font-size:32px;font-weight:500;letter-spacing:-1px}.planner-open span{font-size:10px;color:#8a9a7b}.planner-benefits{list-style:none;padding:0;margin:20px 0;color:#82956f;font-size:10px;line-height:1.9}.planner-benefits li{display:flex;align-items:center;gap:8px;margin-bottom:9px}.generate-plan{width:100%;margin-top:5px}.planner-note{display:flex;align-items:flex-start;gap:11px;font-size:10px;line-height:1.9;color:#8e9d7d;padding:0 8px}.planner-note svg{margin-top:2px;color:#7c9565}.recent-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.recent-plan{display:flex;align-items:center;gap:13px;padding:17px;border:1px solid var(--line);background:#fff;border-radius:8px}.recent-plan:hover{border-color:#bacba9}.recent-plan-icon{width:35px;height:35px;border-radius:8px;display:grid;place-items:center;background:#f0f5e7;color:#839d65}.recent-plan>div{flex:1;min-width:0}.recent-plan strong{display:block;font-size:12px;font-weight:550;overflow-wrap:anywhere}.recent-plan div span{display:block;font-size:9px;color:#98a58b;margin-top:5px}.recent-plan>svg{color:#a0af91}.route-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid #dce6d0;border-radius:10px;background:#eff5e6;margin-bottom:23px;padding:22px 0}.route-summary>div{padding:0 22px;border-right:1px solid #dce6d0}.route-summary>div:last-child{border-right:0}.route-summary strong{font-weight:500;display:block;font-size:29px;letter-spacing:-.7px;margin-bottom:8px}.route-summary strong span{font-size:14px;color:#849b70}.route-summary>div>span{color:#8c9d7b;font-size:10px}.route-details{border:1px solid var(--line);background:#fff;border-radius:9px;padding:20px}.route-details>div:first-child{display:flex;align-items:center;gap:9px;font-size:11px}.route-details strong{font-weight:550}.route-details ul{list-style:none;margin:14px 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.route-details li{font-size:10px;line-height:1.9;background:#f6f8f1;border-radius:5px;padding:7px 11px;color:#7e906c}.route-details li>span{padding:0 6px;color:#a9b59b}.route-actions{border-top:1px solid var(--line);padding-top:14px;display:flex;justify-content:space-between;align-items:center;gap:12px}.route-actions>span{font-size:9px;color:#98a68c}.team-route{margin-bottom:25px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:20px}.team-heading{display:flex;align-items:center;gap:12px}.team-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:9px;background:#eaf1df;color:#7d9a5f}.team-heading h2{font-size:18px;letter-spacing:-.5px;font-weight:550;overflow-wrap:anywhere}.team-heading div>span{font-size:9px;color:#97a38a;display:block;margin-top:5px}.route-day{font-size:11px;font-weight:500;margin:23px 0 12px;color:#8b9b7c}.route-step{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;border:1px solid #dce5d0;color:#8ba473;font-size:9px}.route-table td,.route-table th{padding:13px 11px}.route-table td:nth-child(3)>strong{font-size:14px}.route-table a{white-space:nowrap;font-size:9px}.route-table td small{max-width:140px}.missing-list{border:1px solid var(--line);border-radius:8px;background:#fff}.missing-list>div{display:flex;align-items:flex-start;gap:20px;border-bottom:1px solid var(--line);padding:15px 18px}.missing-list>div:last-child{border:0}.missing-list strong{font-size:12px;font-weight:550;min-width:42px}.missing-list span{font-size:10px;line-height:1.8;color:#9b967e}.route-note{padding:18px;border:1px solid var(--line);border-radius:7px;background:#fbfcf8;margin-top:25px}.planner-page .page-heading h1{overflow-wrap:anywhere}@media(max-width:1150px){.planner-columns{grid-template-columns:1fr}.planner-options{display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,.6fr);gap:20px}.planner-options .planner-note{padding-top:12px}.window-row .field-label input{font-size:12px}.route-summary>div{padding:0 15px}.route-summary>div>span{font-size:9px}}@media(max-width:700px){.sidebar nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px}.sidebar nav button,.sidebar nav .planner-nav{flex-direction:column;justify-content:center;padding:9px 2px;gap:5px;font-size:8px;min-width:0;text-align:center;line-height:1.2;min-height:51px;border-radius:5px 5px 0 0}.sidebar nav button svg,.sidebar nav .planner-nav svg{width:16px;height:16px}.sidebar nav button span,.sidebar nav .planner-nav span{min-width:0}.planner-heading-icon{width:43px;height:43px;border-radius:11px;flex-shrink:0}.planner-heading-icon svg{width:25px;height:25px}.planner-panel{padding:19px 16px}.panel-title h2{font-size:15px}.panel-title p{font-size:9px}.planner-options{display:block}.planner-options .planner-note{padding:0 7px;margin-bottom:25px}.window-row{flex-wrap:wrap;gap:8px;padding:16px 0}.window-number{width:18px}.window-row>.field-label{flex-basis:calc(100% - 55px)}.window-row>.field-label:nth-of-type(2){margin-left:26px;flex-basis:calc(100% - 61px)}.window-arrow{display:none}.window-row>.icon-button{margin-top:-8px}.window-row .field-label input{font-size:13px}.duration-fields{gap:10px}.duration-fields .field-label{font-size:10px;line-height:1.8}.number-with-unit input{font-size:13px;padding-right:64px}.number-with-unit>span{right:9px;top:10px;font-size:9px}.recent-grid{grid-template-columns:1fr}.route-summary{grid-template-columns:repeat(2,minmax(0,1fr));padding:5px 0}.route-summary>div{padding:15px 17px}.route-summary>div:nth-child(2){border-right:0}.route-summary strong{font-size:27px}.route-summary>div>span{font-size:9px}.route-details{padding:16px}.route-details li{font-size:9px}.route-actions{align-items:flex-start;flex-direction:column}.team-route{padding:16px 12px}.route-table th,.route-table td{padding:12px 10px}.route-summary strong span{font-size:12px}.planner-page .page-heading .button{font-size:10px;padding:10px;gap:5px;white-space:normal;max-width:110px}.planner-page .page-heading .button svg{width:17px;height:17px}.planner-page .page-heading h1{font-size:28px}.missing-list>div{gap:15px;padding:14px}.missing-list span{font-size:9px}}@media print{.sidebar,.topbar,.route-actions,.page-heading>.button,.route-table td:last-child,.route-table th:last-child{display:none!important}.main-content{margin:0;width:100%}.page-content{padding:0}.team-route{break-inside:auto}.route-table tr{break-inside:avoid}.team-heading,.route-day{break-after:avoid}.table-wrap{overflow:visible}body{background:#fff}}.named-window{padding:17px 0 8px;border-top:1px solid var(--line)}.named-window:first-child{padding-top:0;border-top:0}.named-window .window-row{border-top:0;padding-top:0}.window-name-label{font-size:10px}.window-name-label input{font-size:12px}.route-details li>strong{display:block;color:#4d6940;font-size:11px;overflow-wrap:anywhere;margin-bottom:4px}.route-table .visit-slot-name{max-width:180px;white-space:normal;color:#6e875a;overflow-wrap:anywhere}.german-datetime{display:flex;gap:7px;margin-top:8px;min-width:0}.german-datetime>input:not([type=hidden]){border:1px solid #d6dfcd;border-radius:6px;background:#fff;padding:10px 8px;font-size:12px;color:#4f6946;min-width:0;margin:0;width:110px;flex:1.5}.german-datetime>input:nth-child(2):not([type=hidden]){width:68px;flex:1}.time-form .german-datetime{margin:0}.time-form .german-datetime>input{max-width:110px;font-size:11px}.time-form input[name=time]{width:72px}.topbar>form{margin-left:18px}.topbar>.private-label{margin-left:auto}.grid-week{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:17px;font-size:12px}.availability-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px}.availability-grid{table-layout:fixed;min-width:320px}.availability-grid th{text-align:center;padding:10px 5px;font-size:9px;width:15%}.availability-grid th:first-child{width:25%;text-align:left;padding-left:10px}.availability-grid th small{display:block;font-size:8px;color:#9aaa8d;margin-top:5px;font-weight:400}.availability-grid td{padding:4px;border:1px solid #edf0e7;text-align:center}.availability-grid button{display:grid;place-items:center;width:100%;min-height:39px;background:#f4f7ee;border-radius:5px;color:#a6b29a;font-size:18px}.availability-grid button.selected{background:#d7eea2;color:#254b32}.availability-grid button:hover:not(:disabled){box-shadow:inset 0 0 0 1px #85a56b}.manual-windows{border-top:1px solid var(--line);padding-top:16px;margin-top:15px}.manual-windows summary,.planner-panel>summary{font-size:11px;color:#6a8057;cursor:pointer;line-height:1.8}.manual-windows[open]>summary{margin-bottom:18px}.raster-row{display:flex;gap:8px;align-items:center;margin-top:10px}.raster-row>input{min-width:0;width:70px;border:1px solid #d8e2cd;padding:10px;border-radius:5px;font-size:11px}.raster-row>input:first-child{flex:1}.raster-row>button{flex-shrink:0}.share-panel{background:#fff;border:1px solid var(--line);border-radius:9px;padding:20px;margin-bottom:23px}.share-panel .section-heading{margin:0 0 16px}.share-copy{display:flex;gap:8px;margin:12px 0}.share-copy input{flex:1;min-width:0;padding:10px;border:1px solid #dce4d2;border-radius:5px;font-size:11px;background:#fafcf7;color:#688056}.share-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:15px}.access-page{max-width:490px;margin:8vh auto;padding:25px}.access-brand{display:flex;align-items:center;gap:10px;font-size:24px;font-weight:600;letter-spacing:-1px;color:var(--green);margin-bottom:30px}.access-brand>svg{padding:7px;width:36px;height:36px;background:#d7eea2;border-radius:9px}.access-card{border:1px solid var(--line);padding:28px;background:#fff;border-radius:12px}.access-card h1{font-size:28px;margin-bottom:15px}.access-card>p{font-size:12px;line-height:1.9;color:#869779;margin-bottom:20px}.access-card form{margin-top:25px}.access-card .field-help{margin:25px 0 0;font-size:10px}.access-card code{font-size:10px}.participant-page{max-width:1000px;margin:auto;padding:30px}.participant-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:35px}.participant-header .access-brand{margin:0}.participant-page h1{font-size:30px;overflow-wrap:anywhere}.participant-intro{margin:14px 0 30px;font-size:12px;color:#819570}.participant-team{margin:25px 0}.participant-team>h2{font-size:19px;font-weight:550;margin-bottom:15px}.participant-visit{display:flex;gap:20px;align-items:center;padding:23px;border:1px solid var(--line);border-radius:8px;background:#fff;margin-bottom:12px}.participant-time{min-width:135px}.participant-time strong{display:block;font-size:11px}.participant-time>span{display:block;margin-top:7px;font-size:12px}.participant-time>small{display:block;font-size:9px;color:#8c9e7c;margin-top:9px;max-width:160px;overflow-wrap:anywhere}.participant-class{flex:1;min-width:0}.participant-class h3{font-size:26px;font-weight:500;letter-spacing:-1px;margin-bottom:8px}.participant-class>strong{font-size:11px;font-weight:500}.participant-class>p{display:flex;align-items:center;gap:5px;font-size:11px;color:#8b9d7b;margin-top:9px}.participant-check>small{display:block;color:#8c9e7c;font-size:9px;line-height:1.8;margin-top:8px}.participant-check .done-caption{font-size:12px}.participant-check .button{font-size:11px}@media(max-width:700px){.topbar{gap:9px}.topbar>.private-label{font-size:7px}.topbar>form{margin-left:0}.topbar>form .text-button{font-size:8px}.german-datetime{flex-wrap:wrap;gap:5px}.german-datetime>input:not([type=hidden]){font-size:12px}.window-row .german-datetime{flex-wrap:nowrap}.share-copy{flex-wrap:wrap}.share-copy>input{flex-basis:100%}.share-panel{padding:16px}.grid-week{font-size:10px}.participant-page{padding:20px 16px}.participant-header{margin-bottom:28px}.participant-header .access-brand{font-size:20px}.participant-page h1{font-size:26px}.participant-visit{padding:18px;flex-wrap:wrap;gap:15px}.participant-time{min-width:100px;flex:1}.participant-class{flex:1;min-width:130px}.participant-check{width:100%;padding-top:12px;border-top:1px solid var(--line)}.participant-check>.button{width:100%}.participant-check>small{font-size:10px}.participant-intro{font-size:11px;line-height:1.8}.access-page{padding:18px;margin:4vh auto}.access-card{padding:22px}}
