:root{color-scheme:light;--ink:#18293d;--muted:#617186;--line:#d9e2ed;--blue:#153c5d;--bg:#edf3f8}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 system-ui,sans-serif}main{max-width:1100px;margin:auto;padding:24px 16px}header{display:flex;align-items:center;gap:16px;margin:12px 0 28px}.logo{display:grid;place-items:center;background:var(--blue);color:white;border-radius:22px;min-width:68px;height:68px;font-weight:800}h1{font-size:clamp(24px,5vw,34px);margin:0}header p{margin:4px 0;color:var(--muted)}h2{font-size:23px}h3{font-size:19px;overflow-wrap:anywhere;margin:8px 0}p{overflow-wrap:anywhere}.hint,small{color:var(--muted);font-size:13px}small{display:block}button,input,select{font:inherit;color:inherit;border:1px solid #b9c9d9;border-radius:12px;background:white;padding:11px;min-height:44px;max-width:100%}button{cursor:pointer}button:hover{background:#e7f0f7}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--blue);color:white}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #43a2ce;outline-offset:2px}nav,.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}nav input{flex:1;min-width:150px}label{display:flex;flex-direction:column;gap:5px;font-size:14px;min-width:0}label input,label select{width:100%}.filters,.pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.check{flex-direction:row;align-items:center;grid-column:1/-1}.check input{width:20px;min-height:20px}.card,.panel,details{background:white;border:1px solid var(--line);border-radius:18px;padding:20px;margin:16px 0}.card{border-left:5px solid #64a0c5}.card.busy{border-left-color:#a67b56;background:#fffcf7}.card.cancelled{opacity:.65}.card.completed{border-left-color:#4b9b77}.card p{margin:7px 0}.status{display:inline-block;background:#eaf0f8;border-radius:6px;padding:3px 9px;font-size:12px;font-weight:700}.time{color:var(--muted);font-size:13px;margin-top:8px}.actions{margin-top:14px}.actions select{flex:1;min-width:130px}.empty{padding:32px 16px;text-align:center;border:1px dashed #9fb4c6;border-radius:16px;color:var(--muted)}summary{font-weight:700;cursor:pointer;overflow-wrap:anywhere}form{display:grid;gap:14px;margin-top:20px}.user{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:14px 0;border-bottom:1px solid var(--line)}.user>span{flex:1;min-width:100px}.user select{max-width:100%}.week{display:grid;grid-template-columns:repeat(7,minmax(230px,1fr));gap:12px;overflow-x:auto;padding-bottom:10px}.week-day{min-width:0}.week-day h2{font-size:16px}.week .card{padding:12px}.week .card .actions{flex-direction:column;align-items:stretch}.timeline-wrap{overflow:auto;max-height:600px;border:1px solid var(--line);border-radius:12px;background:white}.timeline{display:grid;min-width:100%}.timeline-head{padding:12px 6px;position:sticky;top:0;background:#dfeaf3;z-index:3;font-size:13px;font-weight:700;border-right:1px solid white}.ruler,.lane{position:relative;height:1248px}.ruler span{position:absolute;font-size:11px;padding-left:4px}.lane{border-left:1px solid var(--line);background:repeating-linear-gradient(to bottom,transparent 0,transparent 51px,#d9e2ed 51px,#d9e2ed 52px)}.slot{position:absolute;min-height:0;border-radius:6px;background:#d6e9f7;font-size:11px;line-height:1.25;text-align:left;overflow:hidden;padding:3px}.slot.busy{background:#efdfca}.slot:hover{background:#bfd8ee}#error:empty{display:none}#error{background:#ffebe6;border:1px solid #edb3a3;padding:12px;border-radius:12px;color:#8d2c1a}footer{text-align:center;color:var(--muted);padding:28px;font-size:12px}[hidden]{display:none!important}@media(max-width:440px){.pair{grid-template-columns:1fr}.card,.panel,details{padding:15px}main{padding:16px 12px}.user select{width:100%}nav button{padding:10px}.logo{min-width:55px;height:55px;border-radius:16px}}
