.appointment-page{display:grid;gap:20px;min-width:0}.appointment-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:16px}.appointment-page .field,.appointment-form .field{margin:0;min-width:0}.appointment-page .actions,.appointment-form .actions{flex-wrap:wrap;gap:8px}.appointment-page input,.appointment-page select,.appointment-form input,.appointment-form select,.appointment-form textarea{width:100%;min-width:0;box-sizing:border-box;min-height:44px}.appointment-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0;padding:20px}.appointment-values>div{min-width:0}.appointment-values dt{color:var(--muted,#64748b);font-size:14px;margin-bottom:6px}.appointment-values dd{margin:0;overflow-wrap:anywhere}.appointment-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.appointment-slots button{min-height:44px}.appointment-slots button[aria-pressed=true]{outline:2px solid var(--primary,#2563eb);background:#eaf2ff}.appointment-card{min-width:0;overflow-wrap:anywhere}.appointment-card .panel-body{display:grid;gap:12px}.appointment-form{display:grid;gap:20px}.appointment-hours{display:grid;gap:8px}.appointment-hours>div{display:grid;grid-template-columns:90px minmax(0,1fr);align-items:center;gap:8px}.appointment-public{max-width:900px;margin:auto;padding:24px 16px 40px}.appointment-public h1{font-size:26px}.appointment-public .error:empty{display:none}.appointment-config-tabs{display:flex;gap:8px;flex-wrap:wrap}.appointment-config-tabs .btn{min-height:44px}@media(max-width:600px){.appointment-values{grid-template-columns:1fr;padding:16px}.appointment-page .row.between{align-items:flex-start;gap:12px}.appointment-page .actions>.btn{flex:1}.appointment-hours>div{grid-template-columns:74px minmax(0,1fr)}.appointment-public{padding-top:16px}}
.routing-preset-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}.routing-preset-grid .panel-body{display:grid;gap:12px}@media(max-width:600px){.routing-preset-grid{grid-template-columns:1fr}}

.appointment-form input[type=checkbox]{width:18px;min-height:18px;height:18px;vertical-align:middle}.appointment-form label:has(input[type=checkbox]){min-height:44px;display:flex;align-items:center;gap:8px}.appointment-form .btn{min-height:44px}

.appointment-desktop-calendar{min-width:0}.appointment-calendar-scroll{overflow:auto;max-height:650px;border:1px solid #dce5f0;border-radius:10px;background:#fff}.appointment-calendar{display:grid;grid-template-columns:64px repeat(var(--people),minmax(280px,1fr));min-width:100%;width:max-content}.appointment-calendar-head{position:sticky;top:0;z-index:3;background:#f3f7fc;padding:14px;border-bottom:1px solid #dce5f0;font-weight:600;text-align:center}.appointment-calendar-time,.appointment-calendar-column{position:relative;border-right:1px solid #e5ebf3;min-width:0}.appointment-calendar-time span{position:absolute;left:8px;font-size:12px;color:#64748b}.appointment-calendar-slot{position:absolute;left:0;right:0;border-top:1px solid #edf1f6;box-sizing:border-box}.appointment-calendar-slot:hover{background:#eff6ff}.appointment-calendar-event{position:absolute;left:calc(var(--lane)*100%/var(--lanes));width:calc(100%/var(--lanes) - 4px);box-sizing:border-box;border:1px solid #b8d3f6;border-left:3px solid #2878dc;border-radius:6px;background:#edf5ff;color:#183c65;padding:5px;display:flex;flex-direction:column;align-items:flex-start;overflow:hidden;cursor:pointer;font-size:12px;text-align:left;z-index:1}.appointment-calendar-event span,.appointment-calendar-event strong{display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appointment-calendar-event[draggable=true]{cursor:grab}.appointment-calendar-event:focus-visible{outline:3px solid #2563eb;z-index:2}@media(max-width:760px){.appointment-desktop-calendar{display:none}}
