:root{--paper:#fffaf2;--ink:#201b18;--muted:#766d66;--line:#dcd2c7;--white:#fff;--shadow:0 18px 50px rgba(54,41,27,.09)}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.4 Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}.page{width:min(1400px,100%);margin:auto;padding:36px clamp(18px,4vw,64px) 28px}.topbar{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:28px}.kicker{margin:0 0 6px;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}h1,h2{font-family:Georgia,serif;letter-spacing:-.035em}h1{font-size:clamp(36px,6vw,68px);line-height:1;margin:0}h2{font-size:clamp(22px,3vw,32px);margin:0}.month-nav{display:flex;align-items:center;gap:16px;white-space:nowrap}.month-nav a{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;color:var(--ink);text-decoration:none;background:var(--white)}.month-nav a:hover{transform:translateY(-1px);box-shadow:var(--shadow)}.month-nav strong{min-width:145px;text-align:center}.legend-card{display:flex;justify-content:space-between;align-items:center;gap:28px;padding:20px 24px;margin-bottom:20px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.68)}.legend{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px 22px}.legend-item{min-height:36px;display:flex;align-items:center;gap:9px;font-weight:700;white-space:nowrap}.color-button{padding:0;border:0;background:none;cursor:pointer}.swatch,.color-picker{display:block;width:26px;height:26px;border:2px solid var(--white);border-radius:7px;background:var(--swatch);box-shadow:0 0 0 1px rgba(32,27,24,.2);transition:transform .15s}.color-button:hover .swatch{transform:scale(1.12)}.color-picker{overflow:hidden}.color-picker input{width:42px;height:42px;margin:-8px;border:0;padding:0;cursor:pointer}.editing{background:var(--white);padding:5px 7px;border:1px solid var(--line);border-radius:9px}.edit-actions{display:flex;gap:5px;margin-left:4px}.edit-actions button{border:0;border-radius:6px;padding:6px 9px;font-weight:800;cursor:pointer}.save{background:var(--ink);color:white}.cancel{background:#eee7df;color:var(--ink)}.calendar{overflow:hidden;border:1px solid var(--line);border-radius:18px;background:var(--line);box-shadow:var(--shadow)}.weekdays,.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px}.weekdays div{padding:13px 8px;background:#f2ebe2;color:var(--muted);font-size:11px;font-weight:900;letter-spacing:.12em;text-align:center;text-transform:uppercase}.day{position:relative;aspect-ratio:1.24;min-height:88px;padding:13px;background:var(--owner-color);overflow:hidden}.day.blank{background:#f8f2ea}.day-number{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.88);font:700 15px Georgia,serif;box-shadow:0 1px 7px rgba(0,0,0,.08)}.owner-name{position:absolute;right:12px;bottom:10px;max-width:calc(100% - 24px);padding:4px 7px;border-radius:6px;background:rgba(255,255,255,.78);font-size:11px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hint{text-align:center;color:var(--muted);font-size:12px;margin:16px 0 0}@media(max-width:760px){.page{padding:24px 10px}.topbar,.legend-card{align-items:flex-start;flex-direction:column}.topbar{margin-left:8px}.legend-card{padding:18px}.legend{justify-content:flex-start}.month-nav{width:100%;justify-content:space-between}.weekdays div{font-size:9px;padding:10px 2px}.day{min-height:62px;padding:6px}.day-number{width:26px;height:26px;font-size:12px}.owner-name{display:none}.calendar{border-radius:12px}}
