:root{--bg:#f4efe6;--paper:rgba(255,252,247,0.88);--paper-strong:#fffaf1;--ink:#15211f;--muted:#566560;--line:rgba(21,33,31,0.12);--accent:#d85d3a;--accent-soft:rgba(216,93,58,0.14);--lane-a:#f9d7bf;--lane-b:#cfe8db;--lane-c:#dce0fb;--shadow:0 18px 40px rgba(40,31,20,0.12);--slot-height:50px;--time-col-width:72px;--area-min-width:132px;--day-gap:20px;--lane-gap:10px;--day-card-padding:14px;--day-grid-padding:10px;--print-time-col-width:64px;--print-area-min-width:112px;--print-lane-gap:8px;--print-day-padding:12px;--day-min-width:calc((3 * var(--area-min-width)) + (2 * var(--lane-gap)) + (2 * var(--day-card-padding)));--radius:20px}*{box-sizing:border-box}html{color-scheme:light}body{margin:0;min-height:100vh;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:radial-gradient(circle at top left,rgba(216,93,58,.18),transparent 28%),radial-gradient(circle at top right,rgba(91,155,128,.18),transparent 24%),linear-gradient(180deg,#f7f1e8,#efe6d8)}code{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.page-shell{width:100%;min-height:100dvh;margin:0;padding:32px 20px 48px}.hero{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;margin-bottom:24px}.eyebrow{margin:0 0 8px;font-size:.85rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}h1,h2,h3,p{margin:0}h1{font-size:clamp(2rem,4vw,3.5rem);line-height:.95}.hero-copy{margin:12px 0 0;max-width:56ch;color:var(--muted);font-size:1rem}.hero-actions{display:flex;align-items:center;gap:12px}.planner-select{display:flex;flex-direction:column;gap:6px;min-width:140px;color:var(--muted);font-size:.85rem;font-weight:700}.planner-select select{border:1px solid rgba(21,33,31,.15);border-radius:999px;background:rgba(255,250,241,.92);color:var(--ink);font:inherit;font-weight:600;padding:10px 14px}button{border:0;border-radius:999px;background:var(--ink);color:white;font:inherit;font-weight:600;padding:12px 18px;cursor:pointer}.planner-card,button{box-shadow:var(--shadow)}.planner-card{width:100%;background:var(--paper);border:1px solid rgba(255,255,255,.7);border-radius:28px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);overflow:hidden}.planner-toolbar{padding:18px 22px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.45)}.planner-toolbar p{color:var(--muted)}.planner{width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;padding:22px}.schedule{grid-template-rows:auto 1fr;min-width:calc(var(--time-col-width) + (7 * var(--day-min-width)) + (7 * var(--day-gap)))}.schedule,.schedule-head{display:grid;width:-moz-fit-content;width:fit-content}.schedule-head{grid-template-columns:var(--time-col-width) repeat(7,var(--day-min-width));grid-gap:var(--day-gap);gap:var(--day-gap);margin-bottom:12px;position:-webkit-sticky;position:sticky;top:0;z-index:20}.head-time{padding-top:26px;color:var(--muted);font-weight:600}.day-card{background:rgba(255,255,255,.6);border:1px solid var(--line);border-radius:var(--radius);padding:var(--day-card-padding) var(--day-card-padding) 12px}.day-title{margin-bottom:10px;font-size:1.15rem}.area-heads{display:grid;grid-template-columns:repeat(3,minmax(var(--area-min-width),1fr));grid-gap:var(--lane-gap);gap:var(--lane-gap)}.area-head{padding:9px 10px;border-radius:14px;font-size:.95rem;font-weight:700}.area-head[data-area="Bereich A"]{background:var(--lane-a)}.area-head[data-area="Bereich B"]{background:var(--lane-b)}.area-head[data-area="Bereich C"]{background:var(--lane-c)}.schedule-body{display:grid;grid-template-columns:var(--time-col-width) repeat(7,var(--day-min-width));grid-gap:var(--day-gap);gap:var(--day-gap);width:-moz-fit-content;width:fit-content}.time-axis{position:relative;height:var(--grid-height);padding-top:2px}.time-label{position:absolute;left:0;transform:translateY(-50%);color:var(--muted);font-size:.9rem;font-weight:600}.day-grid{background:var(--paper-strong);border:1px solid var(--line);border-radius:24px;padding:var(--day-grid-padding)}.lanes{display:grid;grid-template-columns:repeat(3,minmax(var(--area-min-width),1fr));grid-gap:var(--lane-gap);gap:var(--lane-gap)}.lane{position:relative;height:var(--grid-height);border-radius:16px;border:1px solid rgba(21,33,31,.08);overflow:hidden;background:repeating-linear-gradient(180deg,rgba(21,33,31,.16) 0,rgba(21,33,31,.16) 2px,transparent 2px,transparent calc(var(--slot-height) * 2)),repeating-linear-gradient(180deg,rgba(255,255,255,.22) 0,rgba(255,255,255,.22) calc(var(--slot-height) - 1px),rgba(21,33,31,.08) calc(var(--slot-height) - 1px),rgba(21,33,31,.08) var(--slot-height)),linear-gradient(180deg,rgba(255,255,255,.36),rgba(255,255,255,.12))}.lane[data-area="Bereich A"]{background-color:var(--lane-a)}.lane[data-area="Bereich B"]{background-color:var(--lane-b)}.lane[data-area="Bereich C"]{background-color:var(--lane-c)}.lane.drag-over:after{content:"";top:var(--drop-top,0);height:3px;border-radius:999px;background:var(--accent);box-shadow:0 0 0 4px rgba(216,93,58,.16)}.event-card,.lane.drag-over:after{position:absolute;left:6px;right:6px}.event-card{border:1px solid rgba(21,33,31,.12);border-radius:16px;background:var(--event-bg,rgba(255,255,255,.92));color:var(--event-ink,var(--ink));padding:10px 10px 12px;box-shadow:0 12px 24px rgba(48,39,24,.12);cursor:-webkit-grab;cursor:grab;z-index:5}.event-card.is-active{box-shadow:0 0 0 3px rgba(21,33,31,.18),0 12px 24px rgba(48,39,24,.12)}.event-card-head{position:relative}.event-card-body{min-width:0;padding-right:34px}.event-edit-button{position:absolute;top:0;right:0;border:1px solid rgba(21,33,31,.18);background:rgba(255,255,255,.35);color:inherit;border-radius:999px;width:30px;height:30px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-weight:700;box-shadow:none}.event-edit-button svg{width:14px;height:14px;fill:currentColor}.event-card:active{cursor:-webkit-grabbing;cursor:grabbing}.event-time{margin-bottom:6px;font-size:.8rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--event-time-ink,var(--accent));white-space:nowrap}.event-title{font-size:1rem;line-height:1.05;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-note{margin-top:6px;font-size:.9rem;color:var(--event-subtle-ink,var(--muted))}.event-tooltip{position:fixed;max-width:320px;background:rgba(21,33,31,.96);color:#fffaf1;border-radius:14px;padding:12px 14px;box-shadow:0 16px 30px rgba(0,0,0,.22);pointer-events:none;opacity:0;transform:translateY(8px);transition:opacity .12s ease,transform .12s ease;z-index:1000}.event-tooltip.visible{opacity:1;transform:translateY(0)}.event-tooltip-time{margin-bottom:6px;font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#ffb59d}.event-tooltip-title{font-size:1rem;line-height:1.2}.event-tooltip-meta{margin-top:8px;font-size:.9rem;line-height:1.25;color:rgba(255,250,241,.86)}.editor-overlay{position:fixed;inset:0;background:rgba(21,33,31,.34);display:flex;align-items:center;justify-content:center;padding:20px;z-index:1100}.editor-dialog{width:min(100%,640px);background:#fffaf1;color:var(--ink);border-radius:24px;box-shadow:0 24px 48px rgba(21,33,31,.2);padding:22px}.editor-dialog-compact{width:min(100%,520px)}.editor-title{margin-bottom:16px;font-size:1.35rem}.editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.editor-field{display:flex;flex-direction:column;gap:6px}.editor-field.full{grid-column:1/-1}.editor-field label{font-size:.9rem;font-weight:700;color:var(--muted)}.editor-field input,.editor-field select,.editor-field textarea{width:100%;border:1px solid rgba(21,33,31,.15);border-radius:14px;background:white;color:var(--ink);font:inherit;padding:10px 12px}.editor-field textarea{min-height:96px;resize:vertical}.editor-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.button-secondary{background:rgba(21,33,31,.08);color:var(--ink);box-shadow:none}.button-danger{background:#9e1030}.button-danger:disabled{opacity:.45;cursor:not-allowed}.print-shell{padding:20px;color:#111;background:white}.print-header{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:20px}.print-kicker{font-size:.85rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#555}.print-title{margin-top:8px;font-size:2rem;line-height:1}.print-button{box-shadow:none}.print-planner-card{border:1px solid #bbb;border-radius:18px;padding:16px;background:white}.print-schedule{display:grid;grid-template-rows:auto 1fr;width:-moz-fit-content;width:fit-content;min-width:100%}.print-schedule-body,.print-schedule-head{display:grid;grid-gap:12px;gap:12px}.print-schedule-head{margin-bottom:10px}.print-head-time{padding-top:24px;font-weight:700;color:#555}.print-day-card,.print-day-grid{border:1px solid #c7c7c7;border-radius:16px;background:white}.print-day-card{padding:var(--print-day-padding,12px)}.print-day-title{margin-bottom:8px;font-size:1rem}.print-area-heads,.print-lanes{display:grid;grid-gap:var(--print-lane-gap,8px);gap:var(--print-lane-gap,8px)}.print-area-head{padding:8px;border:1px solid #d5d5d5;border-radius:10px;font-size:.9rem;font-weight:700;text-align:center;background:#f7f7f7}.print-lane,.print-time-axis{height:var(--print-grid-height)}.print-time-axis{position:relative}.print-time-label{position:absolute;left:0;transform:translateY(-50%);font-size:.8rem;color:#555}.print-day-grid{padding:8px}.print-lane{position:relative;border:1px solid #d3d3d3;border-radius:12px;background:repeating-linear-gradient(180deg,rgba(0,0,0,.14) 0,rgba(0,0,0,.14) 1px,transparent 1px,transparent calc(var(--slot-height) * 2)),repeating-linear-gradient(180deg,rgba(255,255,255,.5) 0,rgba(255,255,255,.5) calc(var(--slot-height) - 1px),rgba(0,0,0,.08) calc(var(--slot-height) - 1px),rgba(0,0,0,.08) var(--slot-height)),#fafafa}.print-event-card{position:absolute;left:4px;right:4px;padding:8px;border:1px solid #111;border-radius:10px;background:white;overflow:hidden}.print-event-title{margin:0;font-size:.82rem;line-height:1.15;font-weight:700}@media print{body{background:white}.print-shell{padding:0}.print-button{display:none}.print-planner-card{border:0;border-radius:0;padding:0}}@media (max-width:1180px){:root{--time-col-width:64px;--area-min-width:118px;--day-gap:12px;--lane-gap:8px;--day-card-padding:9px;--day-grid-padding:8px}.page-shell{padding:12px 6px 20px}.planner{padding:8px}.hero-actions{flex-wrap:wrap}}@media (max-width:960px){.page-shell{padding:20px 14px 28px}.hero{flex-direction:column;align-items:start}.planner{padding:14px}.editor-grid{grid-template-columns:1fr}}