:root{--paper:#f8f3ef;--red:#d6493e;--ink:#3c2f2c;--white:#fff;--line:#e4d9d2;--muted:#776a65;--green:#327a54;--amber:#a66a19;--rose:#fae5e2;--blue:#e5edf5}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.45 Montserrat,sans-serif}.prototype-note{background:var(--ink);color:#fff;text-align:center;padding:8px;font-size:11px}.shell{max-width:1180px;margin:auto;padding:28px 20px 80px}header{display:flex;align-items:center;gap:14px;margin-bottom:22px}.logo{width:48px;height:48px;border:0;border-radius:50%;background:var(--red);color:#fff;font-weight:700}.heading{flex:1}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}h1,h2,h3,p{margin:0}h1{font-size:26px}.primary,.secondary,.date-controls button,.view-switch button{border:0;border-radius:12px;padding:11px 15px;font:600 13px Montserrat;cursor:pointer}.primary{background:var(--red);color:#fff}.secondary,.date-controls button{background:#eee5df;color:var(--ink)}.main-nav{display:flex;gap:6px;margin-bottom:22px;padding:5px;background:#eee5df;border-radius:14px;width:max-content}.main-nav button,.main-nav a{border:0;background:transparent;border-radius:10px;padding:9px 13px;color:var(--ink);cursor:pointer;text-decoration:none;font:500 13px Montserrat}.main-nav .selected{background:#fff;font-weight:600}.filters{display:flex;align-items:end;gap:12px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px}.filters label{display:grid;gap:5px;min-width:220px}.filters label span{font-size:11px;color:var(--muted)}select{border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff;color:var(--ink);font:500 13px Montserrat}.view-switch{display:flex;margin-left:auto;background:#eee5df;border-radius:12px;padding:3px}.view-switch button{background:transparent;padding:8px 12px}.view-switch .selected{background:#fff}.datebar{display:flex;align-items:center;gap:18px;margin:20px 0}.datebar>div:nth-child(2){flex:1}.datebar h2{font-size:20px}.datebar p{color:var(--muted);font-size:11px;margin-top:2px}.date-controls{display:flex;gap:5px}.date-controls button{padding:9px 12px}.summary{display:flex;gap:8px;margin-bottom:12px}.summary div,.summary button{display:flex;align-items:baseline;gap:6px;border:1px solid var(--line);background:#fff;border-radius:12px;padding:9px 13px;color:var(--ink)}.summary button{cursor:pointer;border-color:#efc7c2;background:#fff7f5}.summary strong{font-size:17px}.summary span{font-size:11px;color:var(--muted)}.legend{display:flex;gap:18px;color:var(--muted);font-size:11px;margin:14px 2px}.legend i{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:4px}.client-dot{background:var(--rose)}.block-dot{background:#ded8d4}.outside-dot{background:#fff;border:2px solid var(--red)}.calendar-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:18px}.calendar{display:grid;grid-template-columns:86px repeat(7,minmax(135px,1fr));min-width:1030px}.calendar.day{grid-template-columns:86px minmax(600px,1fr);min-width:700px}.corner,.day-head{position:sticky;top:0;z-index:3;background:#fff;border-bottom:1px solid var(--line);padding:12px;text-align:center}.corner{left:0;z-index:4}.day-head strong,.day-head span{display:block}.day-head span{font-size:11px;color:var(--muted)}.day-head.today{color:var(--red)}.time{position:sticky;left:0;z-index:2;background:#fff;border-right:1px solid var(--line);border-bottom:1px solid #f1ebe7;padding:8px 12px;color:var(--muted);font-size:11px;text-align:right;height:78px}.cell{position:relative;height:78px;border-right:1px solid #eee7e2;border-bottom:1px solid #f1ebe7;background:#fcfaf8;cursor:pointer}.cell.off{background:repeating-linear-gradient(135deg,#faf7f5,#faf7f5 8px,#f5f0ed 8px,#f5f0ed 16px)}.cell.working{background:#fff}.event{position:absolute;z-index:1;left:5px;right:5px;border-radius:10px;padding:7px 8px;text-align:left;border:0;color:var(--ink);font:11px/1.25 Montserrat;cursor:pointer;overflow:hidden}.event strong,.event small{display:block}.event small{margin-top:3px;color:var(--muted)}.event.client{background:var(--rose);border-left:3px solid var(--red)}.event.block{background:#e9e5e2;border-left:3px solid #91847e}.event.outside{background:#fff;border:2px solid var(--red)}.event.attention::after{content:"!";position:absolute;right:6px;top:6px;background:var(--red);color:#fff;border-radius:50%;width:17px;height:17px;text-align:center;line-height:17px;font-weight:700}.calendar-help{color:var(--muted);font-size:11px;margin-top:9px}.modal{position:fixed;inset:0;z-index:10;background:#2c2220aa;display:none;place-items:center;padding:20px}.modal.open{display:grid}.modal-card{position:relative;background:var(--paper);border-radius:20px;padding:24px;max-width:500px;width:100%;box-shadow:0 22px 60px #20161433}.close{position:absolute;right:12px;top:10px;border:0;background:transparent;font-size:24px;cursor:pointer}.modal-card h2{margin-bottom:7px}.modal-card p{color:var(--muted);margin-bottom:16px}.form{display:grid;gap:12px}.form label{display:grid;gap:5px;font-size:11px;color:var(--muted)}.form input,.form select{width:100%;border:1px solid var(--line);border-radius:10px;padding:11px;background:#fff;font:inherit;color:var(--ink)}.choice{display:grid;grid-template-columns:1fr 1fr;gap:8px}.choice button{border:1px solid var(--line);background:#fff;border-radius:12px;padding:13px;color:var(--ink);font:600 12px Montserrat;cursor:pointer}.warning{background:#fff1d8;border-radius:12px;padding:12px;margin:12px 0;color:#6f4b12}.danger{background:#fde8e5;color:#8b302a}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.toast{position:fixed;z-index:20;bottom:20px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:11px 16px;border-radius:20px;display:none}.toast.show{display:block}@media(max-width:720px){.shell{padding:18px 12px 70px}.add-shift{font-size:0;padding:12px}.add-shift::after{content:"+";font-size:20px}.filters{display:grid;grid-template-columns:1fr 1fr}.filters label{min-width:0}.view-switch{grid-column:1/3;margin:0}.view-switch button{flex:1}.datebar{flex-wrap:wrap}.datebar>div:nth-child(2){order:-1;flex-basis:100%}.summary{overflow:auto}.summary div,.summary button{flex:0 0 auto}.legend{overflow:auto;white-space:nowrap}.modal-actions{display:grid}.modal-actions button{width:100%}}
