:root{--ink:#16425f;--muted:#72828e;--line:#dce5ec;--green:#015287;--paper:#f5f8fa}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);margin:0;font:14px Segoe UI,Arial,sans-serif}button,input,select{font:inherit}button,a,input,select,summary{touch-action:manipulation}button{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:9px;padding:10px 15px;font-weight:600}button:hover{border-color:var(--green);background:#e6eef3}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline-offset:3px;outline:3px solid #cb3284}a{color:inherit}header{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;padding:22px max(50vw - 590px,28px);display:flex}.brand{align-items:center;gap:12px;font:800 22px Segoe UI,Arial;text-decoration:none;display:flex}.brand small{letter-spacing:2px;color:var(--muted);margin-top:5px;font:600 8px Segoe UI,Arial;display:block}.logo{background:var(--green);color:#fff;border-radius:12px;place-items:center;width:44px;height:44px;font-size:32px;display:grid;position:relative}.logo span{color:#e0c98f;font-size:18px;position:absolute;top:1px;right:6px}.admin-link{border:1px solid var(--line);border-radius:8px;padding:10px 13px;font-size:12px;text-decoration:none}main{max-width:1180px;margin:auto;padding:42px 28px 0}.intro{justify-content:space-between;align-items:center;gap:20px;margin-bottom:32px;display:flex}.eyebrow{letter-spacing:2px;color:#4d86ab;font-size:10px;font-weight:700}h1{letter-spacing:-1.5px;margin:12px 0;font:700 clamp(28px,4vw,42px)/1.2 Segoe UI,Arial}p{color:var(--muted);line-height:1.6}.intro p{margin:0}.state{background:#e6eef3;border:1px solid #d2e1eb;border-radius:10px;min-width:235px;padding:14px 18px;font-size:12px;font-weight:700}.state small{color:var(--muted);margin-top:7px;font-size:11px;font-weight:400;display:block}.state i{background:#4d86ab;border-radius:50%;width:6px;height:6px;margin-right:8px;display:inline-block}.state.draft{background:#f8efd9;border-color:#ebdfbd}.state.draft i{background:#b38a35}.toolbar{justify-content:space-between;align-items:center;gap:15px;margin-bottom:28px;display:flex}.weeknav{align-items:center;gap:17px;display:flex}.weeknav b{white-space:nowrap;font:800 18px Segoe UI,Arial}.weeknav b span{color:#879eae;font-size:13px;font-weight:500}.weeknav small{color:var(--muted);margin-top:5px;font-size:11px;display:block}.weeknav>button{padding:9px 13px}.weeknav .today{background:0 0;font-size:11px}.view{border:1px solid var(--line);background:#e8eff4;border-radius:9px;gap:2px;padding:3px;display:flex}.view button{background:0 0;border:0;padding:8px 13px;font-size:11px}.view button.active{background:#fff;box-shadow:0 1px 4px #16425f12}.tabs{border-bottom:1px solid var(--line);gap:30px;margin-top:15px;display:flex}.tabs button{color:var(--muted);background:0 0;border:0;border-radius:0;padding:15px 2px}.tabs button.selected{color:var(--green);border-bottom:3px solid var(--green)}.days{gap:9px;margin:22px 0;display:flex}.days button{text-align:left;background:0 0;min-width:85px;padding:11px 16px}.days button span{color:var(--muted);margin-bottom:5px;font-size:10px;display:block}.days button b{font-size:15px}.days button.chosen{background:var(--green);color:#fff;border-color:var(--green)}.days button.chosen span{color:#d6e6f2}.daycard{border:1px solid var(--line);background:#fff;border-radius:14px;margin:0 0 20px;overflow:hidden}.section-title{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}h2{margin:0;font:700 17px Segoe UI,Arial}.section-title>span{color:var(--muted);font-size:12px}.halves{grid-template-columns:1fr 1fr;display:grid}.halves>div{padding:20px 24px 24px}.halves>div+div{border-left:1px solid var(--line)}h3{color:var(--muted);align-items:center;gap:8px;margin:0 0 17px;font-size:12px;display:flex}.sun{color:#80a9c3;font-size:18px}.chairs{grid-template-columns:1fr 1fr;gap:10px;display:grid}.position{background:#f1f6f9;border:1px solid #e2ebf1;border-radius:9px;align-items:center;gap:11px;min-width:0;padding:13px 12px;display:flex}.position-icon{color:#80a9c3;font-size:12px;font-weight:600}.position>div{flex:1;min-width:0}.position small{color:var(--muted);margin-bottom:4px;font-size:10px;display:block}.position b{overflow-wrap:anywhere;font-size:12px;font-weight:600;display:block}.position.extra{background:#fff;border-color:#eaf0f4;padding:10px 12px}.position.extra .position-icon{color:#a8bcc9}.position .open{color:#8796a0;font-weight:400}input,select{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:6px;min-width:0;max-width:100%;padding:8px}select{width:100%;font-size:12px}.managerbar{border:1px solid var(--line);background:#fff;border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;padding:18px;display:flex}.managerbar>span{flex:1;min-width:200px;font-size:12px}.managerbar small{color:var(--muted);margin-top:5px;display:block}.primary{background:var(--green);color:#fff;border-color:var(--green)}.hint{max-width:780px;margin:12px 0 20px;font-size:11px}.alert,.notice{background:#fff0e8;border:1px solid #dfb7aa;border-radius:9px;margin-bottom:15px;padding:14px 18px;line-height:1.6}.notice{background:#e6eef3;border-color:#c7dbe9}.personrow{border-bottom:1px solid #eaf0f4;flex-wrap:wrap;align-items:center;gap:12px;padding:15px 24px;display:flex}.avatar{background:#e6eef3;border-radius:50%;place-items:center;width:36px;height:36px;font-size:11px;display:grid}.personname{flex:1;min-width:130px}.personname small{color:var(--muted);margin-top:5px;display:block}.personname input{width:100%;margin-bottom:4px;display:block}.available{color:#4d86ab;background:#e6eef3;border-radius:15px;padding:5px 9px;font-size:10px}label{color:var(--muted);flex-direction:column;gap:5px;font-size:10px;display:flex}label>input[type=number]{width:76px}label.private{flex:1;min-width:160px}.task{border-bottom:1px solid #eaf0f4;align-items:center;gap:15px;padding:17px 24px;display:flex}.task-title{flex:1;min-width:160px}.task-title b{font-weight:500;line-height:1.5}.task-title small{color:var(--muted);margin-top:6px;font-size:10px;display:block}.task-title input{width:100%;margin-bottom:5px}.task>label{flex-shrink:0;width:155px}.task strong{color:var(--ink);font-size:12px;font-weight:500}.copy{border:1px solid var(--line);border-radius:10px;margin-top:25px;padding:18px}.copy summary{cursor:pointer;font-weight:600}.copy label{margin-right:12px;display:inline-flex}.copy p{font-size:12px}.empty{text-align:center;background:#fafcfd;border:1px dashed #cedde8;border-radius:15px;margin-top:20px;padding:55px 20px}.empty-icon{color:#80a9c3;margin-bottom:15px;font-size:40px;display:block}.empty h2{font-size:23px}.empty a{margin-top:20px;font-size:12px;display:block}.mobile{display:none}footer{color:#8195a3;border-top:1px solid var(--line);justify-content:space-between;gap:20px;margin-top:25px;padding:25px 0;font-size:10px;display:flex}footer b{color:#a4bac9;padding:0 7px}.gate{max-width:600px}@media (width<=750px){header{padding:17px 20px}.brand{font-size:18px}.brand small{font-size:6px}.logo{width:36px;height:36px;font-size:26px}.admin-link{padding:9px;font-size:10px}main{padding:28px 18px 0}.intro{margin-bottom:25px;display:block}.intro h1{font-size:33px}.intro p{font-size:12px}.state{min-width:0;margin-top:22px;display:block}.state small{margin-left:10px;font-size:10px;display:inline}.toolbar{flex-direction:column;align-items:stretch;gap:16px}.weeknav{justify-content:space-between;gap:10px}.weeknav .today{font-size:10px}.view{align-self:flex-start}.days{justify-content:space-between;gap:7px}.days button{flex:1;min-width:0;padding:10px}.days button b{font-size:13px}.halves{grid-template-columns:1fr}.halves>div+div{border-left:0;border-top:1px solid var(--line)}.halves>div{padding:18px 16px}.section-title{padding:17px 16px}.position{gap:7px;padding:12px 9px}.position b{font-size:12px}.task{flex-wrap:wrap;gap:13px;padding:16px}.task-title{flex-basis:100%;width:100%}.task>label{flex:1;width:auto}.personrow{padding:15px 16px}.managerbar{padding:14px}.managerbar>span{flex-basis:100%}.managerbar button{flex:1;font-size:11px}.tabs{gap:25px}.hint{font-size:10px}footer{flex-direction:column;gap:8px;line-height:1.5}}@media print{body{background:#fff;font-size:11px}header{padding:10px 0}main{max-width:none;padding:15px 0}.admin-link,.toolbar,.days,.tabs,.managerbar,.copy,.hint,button,.alert,.notice{display:none!important}.intro{margin-bottom:15px}h1{font-size:25px}.intro p{font-size:11px}.daycard{break-inside:avoid;margin-bottom:12px}.halves>div{padding:12px}.position{padding:7px}.section-title{padding:10px}.state{background:#fff}.task{padding:10px}.private{display:none}.state small{font-size:10px}footer{margin-top:10px}.personrow input,.personrow select{border:0}.halves{grid-template-columns:1fr 1fr}}header{padding-top:12px;padding-bottom:12px}.practice-logo{object-fit:contain;width:240px;max-width:100%;height:auto;display:block}.brand{gap:25px}.brand-product{border-left:1px solid var(--line);color:var(--green);padding-left:24px;font-size:18px;font-weight:600}.brand-product small{letter-spacing:1.5px}.eyebrow{color:#4d86ab}.state.draft{background:#faf3e6}.primary:hover{color:#fff;background:#06476f}.available{color:#015287}.brand .logo{display:none}@media (width<=750px){header{gap:12px;padding:12px 18px}.practice-logo{width:190px}.brand-product{display:none}.admin-link{white-space:nowrap;padding:9px 10px}.state small{margin:6px 0 0;display:block}}@media (width<=380px){.practice-logo{width:166px}.admin-link{padding:8px;font-size:9px}}@media print{.practice-logo{width:190px}.brand-product{font-size:16px}}.attendance .section-title p{margin:7px 0 0;font-size:11px}.attendance-scroll{overflow-x:auto}.attendance table{border-collapse:collapse;text-align:left;width:100%;min-width:1040px}.attendance th,.attendance td{border-bottom:1px solid var(--line);vertical-align:top;border-right:1px solid #eaf0f4;padding:12px}.attendance thead th{background:#e6eef3;font-size:11px;font-weight:600}.attendance tbody th{z-index:1;background:#fff;width:185px;min-width:185px;position:sticky;left:0}.attendance tbody th input{width:100%;margin-bottom:7px;font-weight:600}.attendance td{min-width:125px}.attendance td:last-child{min-width:180px}.attendance td label{margin-bottom:7px}.attendance td input[type=number]{width:100%}.attendance td.unchecked{background:#fffaf0}.attendance td.absent{background:#f5f7f9}.attendance td.absent select{color:#718494}.attendance th select{font-size:10px}.attendance tbody tr:last-child th,.attendance tbody tr:last-child td{border-bottom:0}@media print{.attendance table{min-width:0;font-size:8px}.attendance th,.attendance td{padding:4px;min-width:0!important}.attendance tbody th{width:130px;min-width:0;position:static}.attendance td:last-child,.attendance thead th:last-child{display:none}.attendance input,.attendance select{border:0;padding:3px;font-size:9px}.attendance-scroll{overflow:visible}}.account-nav{align-items:center;gap:8px;display:flex}.auth-page{max-width:560px;padding-top:32px;padding-bottom:40px}.auth-page>.practice-logo,.auth-page>a>.practice-logo{margin-bottom:25px}.auth-page>a:last-child{font-size:12px}.auth-card{border:1px solid var(--line);background:#fff;border-radius:14px;margin:20px 0;padding:26px}.auth-card h1{font-size:28px}.auth-card p{font-size:12px}.auth-card form{gap:16px;margin-top:20px;display:grid}.auth-card label{font-size:12px}.auth-card input{width:100%;padding:11px}.auth-card button{justify-self:start}.account-page{max-width:900px;padding-bottom:40px}.user-list{margin-top:25px}.user-list .personrow{padding:15px 0}.user-list small{overflow-wrap:anywhere}.auth-page .primary{width:100%}@media (width<=750px){.account-nav{flex-wrap:wrap;justify-content:flex-end}.account-nav .admin-link{font-size:10px}.auth-card{padding:20px}.account-page h1{font-size:28px}}
