@import url('');
:root{--ff-navy:#102e69;--ff-blue:#287de0;--ff-red:#f04463;--ff-yellow:#ffbd27;--ff-green:#36b36d;--ff-pink:#e9369d;--ff-purple:#8952e0;--ff-paper:#fff;--ff-bg:#f5faff;--ff-line:#dbe6f2;--ff-radius:16px;--ff-shadow:0 4px 18px #18345a14;--ff-touch:48px;font-family:'Segoe UI',Arial,sans-serif;color:#102c59;background:var(--ff-bg)}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;touch-action:manipulation}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #407ce2;outline-offset:2px}.hidden{display:none!important}.shell{display:grid;grid-template-columns:207px minmax(0,1fr) 312px;min-height:100vh;max-width:1900px;margin:auto;background:#fff;gap:8px;padding:12px}.sidebar{background:#f9fbff;border-radius:18px;padding:13px;display:flex;flex-direction:column;gap:12px;min-width:0}.brand{height:174px;display:flex;align-items:flex-start;gap:9px;padding-top:23px}.brand-mark{font-size:38px}.brand strong{font-weight:850;font-size:27px;letter-spacing:-1.5px;white-space:nowrap}.brand strong span{background:linear-gradient(90deg,#f23c93,#ffd344,#39bb7c,#4b9cdf);background-clip:text;color:transparent}.brand small{display:block;font-size:12px;line-height:1.6;max-width:155px;color:#4e6a95}.nav,.filters,.secondary-nav{display:grid;gap:6px}.nav-btn,.filter,.secondary-nav button{border:0;border-radius:12px;text-align:left;background:transparent;min-height:48px;padding:11px;font-size:15px;font-weight:650;color:#163a78}.nav-btn.active{background:linear-gradient(90deg,#2374da,#62b4ff);color:#fff}.filter{background:#f5f7fd;display:flex;align-items:center;gap:9px}.filter:hover,.filter.active{box-shadow:inset 0 0 0 2px #7caefa}.dot{height:24px;width:24px;border-radius:50%}.secondary-nav{border-top:1px solid var(--ff-line);padding-top:15px;margin-top:10px}.sidebar-bottom{margin-top:auto;min-height:105px;display:flex;align-items:center;gap:9px;color:#2c66c2;font-size:12px;background:linear-gradient(#fff,#e2f5e5);border-radius:14px;padding:10px}.main{display:flex;flex-direction:column;min-width:0}.top{min-height:178px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:35px 8px 12px}.date-heading{display:flex;gap:12px;align-items:center}.date-glyph{font-size:29px}.date-heading small,.date-heading strong,.date-heading span{display:block}.date-heading small{color:#6582a9}.date-heading strong{font-size:18px}.date-heading span{font-size:12px;color:#6e85aa}.top-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.primary-btn{background:#24a852;color:#fff;border:0;border-radius:12px;padding:14px 17px;min-height:48px;font-weight:750;box-shadow:var(--ff-shadow)}.today-btn{background:#c9f1ff;color:#1360a9;border:0;border-radius:12px;min-height:48px;padding:9px 13px;font-weight:700}.view-chip{min-height:48px;border:1px solid var(--ff-line);background:#fff;padding:10px;border-radius:12px;color:#254b7c}.view-chip.active{background:#438fd1;color:#fff}.icon-button,.round-btn,.avatar{background:#f3f8ff;border:1px solid var(--ff-line);border-radius:12px;min-width:44px;min-height:44px;color:#244d87}.clock{font-size:12px;color:#6884a8}.content{border:1px solid #e5ecf5;border-radius:18px;background:#fff;min-width:0;flex:1;overflow:hidden;box-shadow:var(--ff-shadow)}.content-head{min-height:54px;display:flex;align-items:center;gap:14px;padding:7px 12px}.content-head h2{font-size:18px;margin:0}.calendar-controls{display:flex;gap:7px}.week-strip{display:grid;grid-template-columns:42px repeat(7,minmax(0,1fr));gap:5px;padding:0 7px 6px}.week-strip:before{content:''}.day-card{min-height:48px;border:0;border-radius:9px;background:#f2f6fc;color:var(--ff-navy)}.day-card.selected{background:#e0edff}.day-card small,.day-card b{display:block;font-size:12px}.day-card .day-dot{display:none}.event-list{overflow:auto;min-height:460px}.week-timeline{position:relative;height:672px;margin:0 7px 8px 42px;background:repeating-linear-gradient(to bottom,#fff 0,#fff 47px,#dce7f3 48px);display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.day-column{border-left:1px solid #dce7f3;position:relative;min-width:0}.hour-label{position:absolute;left:-41px;transform:translateY(-7px);font-size:12px;color:#8298b4}.timeline-event{position:absolute;left:3px;right:3px;border:0;border-left:4px solid;border-radius:9px;text-align:left;padding:7px 5px;overflow:hidden;font-size:12px;line-height:1.35;color:#15345a;box-shadow:0 2px 4px #0000000b}.timeline-event strong,.timeline-event span{display:block;overflow:hidden;text-overflow:ellipsis}.timeline-event strong{font-size:12px}.timeline-event:hover{filter:brightness(.97)}.rightbar{display:flex;flex-direction:column;gap:10px;padding-top:178px;min-width:0}.side-panel{background:#fff;border:1px solid #e2ebf7;border-radius:17px;padding:13px;box-shadow:var(--ff-shadow)}.side-panel h3{font-size:15px;margin:0 0 11px}.right-templates{display:grid;grid-template-columns:1fr 1fr;gap:7px}.right-templates button{min-height:51px;border:0;border-radius:12px;font-size:12px;font-weight:750;text-align:left;padding:8px}.up-item{display:flex;align-items:center;gap:9px;background:#f5f8ff;border-radius:11px;margin:6px 0;padding:10px;font-size:12px}.up-item span{font-size:20px}.up-item small{display:block;color:#5e7794;margin-top:4px}.warning-panel{background:#fff0f0;border-color:#ffd6d6;color:#ab1924}.warning-panel p{font-size:12px}.warning-panel button{width:100%;min-height:43px;background:#eb4d5f;color:#fff;border:0;border-radius:10px}.birthday{background:#fff1f9;padding:9px;border-radius:9px;font-size:12px;margin-top:5px}.mobile-fab{display:none}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;padding:10px}.month-heading{text-align:center;font-size:12px}.month-day{min-height:115px;min-width:0;background:#f3f8ff;border:1px solid #e1e8f2;border-radius:8px;text-align:left;vertical-align:top;padding:8px}.month-day.outside{opacity:.35}.month-pill{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;margin-top:5px}.empty-state{padding:50px 15px;text-align:center}.empty-state strong{display:block}.event-card{border:1px solid #dce7f3;border-radius:12px;margin:10px;padding:13px}.modal{border:0;border-radius:19px;box-shadow:0 25px 90px #123b6290;padding:22px;width:min(95vw,570px);max-height:90vh;overflow:auto}.modal::backdrop{background:#102b5180}.modal-top,.modal-actions{display:flex;justify-content:space-between;gap:10px;align-items:center}.modal label,.auth label{display:grid;gap:5px;margin:12px 0;font-weight:700;font-size:13px}.modal input,.modal select,.modal textarea,.auth input{border:1px solid #c9d9eb;border-radius:10px;padding:12px;min-width:0;width:100%}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-lead{font-size:13px;color:#6e829b}.quick-templates{display:flex;flex-wrap:wrap;gap:7px}.template{border:0;border-radius:10px;padding:10px;background:#ebf3ff;min-height:45px}.subtle-btn{background:#eef3fa;border:0;border-radius:9px;padding:10px}.auth{min-height:100vh;display:grid;place-items:center;background:linear-gradient(140deg,#d6edff,#ffeaf7)}.auth-card{background:#fff;padding:32px;border-radius:23px;width:min(95vw,440px);box-shadow:0 10px 50px #184c9933}.auth-icon{font-size:50px}.full{width:100%}.form-message{color:#c52337}.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);padding:17px;border-radius:14px;background:#152f66;color:#fff;z-index:20}
@media(max-width:1250px){.shell{grid-template-columns:175px minmax(0,1fr) 250px;padding:7px}.brand strong{font-size:22px}.top{min-height:155px}.rightbar{padding-top:155px}.top-actions{max-width:480px}.right-templates{grid-template-columns:1fr 1fr}}
@media(max-width:950px){.shell{grid-template-columns:145px minmax(0,1fr)}.rightbar{grid-column:2;padding-top:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.brand{height:125px}.top{min-height:130px}.filter{font-size:12px;padding:7px}.sidebar-bottom{display:none}}
@media(max-width:650px){.shell{display:block;padding:6px}.sidebar{display:none}.main{min-height:65vh}.top{min-height:100px;display:block;padding:12px}.top-actions{justify-content:flex-start;margin-top:10px}.date-heading strong{font-size:15px}.date-heading span{display:none}.content-head h2{font-size:14px}.week-strip{grid-template-columns:30px repeat(7,minmax(43px,1fr));overflow:auto}.week-timeline{margin-left:30px;min-width:380px}.hour-label{left:-29px}.event-list{overflow-x:auto}.rightbar{display:block;padding:9px}.rightbar .side-panel{margin-bottom:9px}.mobile-fab{display:block;position:fixed;bottom:15px;right:15px;border:0;border-radius:50%;width:58px;height:58px;background:#24a852;color:#fff;font-size:30px;z-index:4}.clock{display:none}}

/* Round 01 person identity and accessible touch controls */
.person-tag{display:block;border-left:4px solid var(--person);padding-left:4px;font-weight:750}.member-directory{display:grid;gap:7px;margin:12px 0}.member-directory .member{display:flex;align-items:center;gap:10px;background:#f3f7ff;border-radius:12px;padding:9px}.member-emoji{display:grid;place-items:center;border-radius:50%;width:36px;height:36px}.member small{display:block;color:#55769b}.modal input[type=color]{height:48px;padding:5px}.secondary-nav button{cursor:pointer}@media(max-width:650px){.sidebar{display:flex;position:relative;gap:4px;padding:5px}.sidebar .brand,.sidebar .filters,.sidebar .sidebar-bottom{display:none}.sidebar .nav,.sidebar .secondary-nav{display:flex;overflow:auto;white-space:nowrap;border:0;margin:0;padding:0}.sidebar .secondary-nav button{min-width:110px}}

/* Round 02: master reference alignment, touch, identity and sync */
.sync-status{font-size:12px;color:#188757;background:#e5f8ee;border-radius:10px;padding:8px 10px;white-space:nowrap}.sync-status.sync-error{color:#ac2430;background:#ffe8e9}.selected-person{display:block;border-left:7px solid #8d58e2;border-radius:5px;margin-top:5px;padding:7px 10px;background:#f5f8fd;font-size:12px;font-weight:700}.filter,.nav-btn,.secondary-nav button,.right-templates button,.day-card,.timeline-event,.view-chip{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.timeline-event{min-height:30px}.timeline-event:focus-visible{z-index:3;outline:3px solid #172f77}.side-panel{overflow-wrap:anywhere}.modal input,.modal select,.modal textarea{min-height:48px}.member-directory .member{min-height:54px}.event-list{scrollbar-color:#a9c8ed #eef6fe;scrollbar-width:thin}
@media(min-width:1260px){.shell{grid-template-columns:190px minmax(0,1fr) 302px;gap:9px;padding:12px}.sidebar{padding:10px}.top{padding-top:32px}.rightbar{padding-top:174px}.brand strong{font-size:26px}.top-actions{gap:5px}.date-heading strong{font-size:17px}.week-timeline{min-width:0}}
@media(hover:none){button{min-height:48px}.round-btn,.icon-button{min-height:48px;min-width:48px}.modal .quick-templates button{min-height:52px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* R03: accessibility, category cards, person colors and visible birthday countdowns */
.timeline-event{border-left-width:5px;min-width:0;overflow-wrap:anywhere;z-index:1;transition:filter .14s ease}.timeline-event:hover,.timeline-event:focus-visible{z-index:5;filter:saturate(1.15);box-shadow:0 4px 15px #12345a30}.timeline-event span.person-tag{color:#23446b;font-weight:700;font-size:12px;white-space:nowrap}.person-tag::first-letter{color:var(--person)}
.birthday{display:flex;align-items:center;gap:10px;padding:10px 9px;min-height:58px;background:#fff2fa}.birthday-avatar{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:11px}.birthday strong,.birthday small{display:block}.birthday strong{font-size:13px}.birthday small{font-size:12px;color:#745777;margin-top:3px}.birthday-empty{font-size:12px;line-height:1.5;color:#6c7d9c;padding:10px}.month-pill{background:#fff;border-radius:5px;padding:3px 4px}.up-item{border-left:4px solid #9ecaff}.day-column{isolation:isolate}.rightbar .side-panel{min-width:0}
@media(min-width:1260px){.rightbar{gap:12px}.side-panel{padding:14px}.event-list{min-height:540px}}
@media(prefers-reduced-motion:reduce){.timeline-event{transition:none}}

/* Round 04: actionable appointment summaries, conflict card and countdown */
.up-item{width:100%;border:0;text-align:left;cursor:pointer;border-left:5px solid var(--person-color,#9ecaff);min-height:60px}.up-item.next-up{background:#e7f6ff;box-shadow:inset 0 0 0 1px #9ad4fb}.up-item em{display:block;font-style:normal;font-size:12px;color:#17709e;font-weight:800;margin-top:5px}.up-item:focus-visible{outline:3px solid #297bd2}.warning-panel #conflictSummary{display:grid;gap:6px;line-height:1.5}.warning-panel #conflictSummary span,.warning-panel #conflictSummary small{display:block}.warning-panel.no-conflicts{background:#effbf3;border-color:#caead6;color:#206a49}.warning-panel.no-conflicts button{background:#31a267}.right-templates button:focus-visible{outline:3px solid #306bce}.rightbar{overflow-x:hidden}@media(max-width:650px){.up-item{min-height:60px}}

/* R05 touch-first event entry, preserving master colors */
.modal:has(#eventForm){width:min(96vw,720px)}.person-pick{border:1px solid #d9e6f6;border-radius:14px;margin:12px 0;padding:11px}.person-pick legend{font-size:14px;font-weight:750;color:#194173;padding:0 6px}.person-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}.person-choice{border:2px solid #e1e8f3;background:#f8fbff;min-height:64px;border-radius:13px;display:flex;align-items:center;gap:9px;padding:9px;text-align:left;font-weight:750;overflow-wrap:anywhere}.person-choice-dot{display:grid;place-items:center;width:37px;height:37px;border-radius:50%;background:var(--choice-color);flex-shrink:0}.person-choice.selected{border-color:var(--choice-color);box-shadow:0 0 0 2px #a5bfe855}.reminder-quick{background:#f4f8ff;border-radius:13px;padding:12px;margin:10px 0}.reminder-quick>span{font-size:13px;font-weight:750}.reminder-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}.reminder-choice{min-height:52px;border:2px solid #dbe8f6;border-radius:11px;background:white;font-weight:700;color:#25456f}.reminder-choice.selected{border-color:#438fd1;background:#e0f0ff}.overlap-preview{background:#fff0ef;border:2px solid #ffbfc2;border-radius:13px;padding:12px;color:#9c2432}.overlap-preview p{margin:7px 0;line-height:1.5}.overlap-preview small{font-size:12px}@media(max-width:520px){.person-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}.modal:has(#eventForm){padding:13px}.form-row{grid-template-columns:1fr}}

/* R06: discoverable date jump, one-touch presets and empty-slot creation. */
.jump-label{font-size:12px;font-weight:700;color:#3b6090;display:flex;align-items:center;gap:5px}.jump-label input{height:42px;max-width:145px;padding:6px;border:1px solid #cadcef;border-radius:10px;background:#f4faff;color:#23466e}.preset-line{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.preset-line button{min-height:48px;flex:1 1 90px;border:2px solid #d4e4f6;border-radius:11px;background:#eef7ff;color:#204f89;font-weight:750}.preset-line button:active{background:#cde9ff}.day-column{cursor:crosshair}.timeline-event{cursor:pointer}@media(max-width:650px){.content-head{flex-wrap:wrap}.jump-label{order:3;width:100%}.jump-label input{flex:1;max-width:none}}

/* R07: accessible all-day and series edit controls */
.all-day-choice {display:flex;align-items:center;gap:12px;padding:13px 16px;border-radius:16px;background:#fff2ce;font-weight:700} .all-day-choice input {width:26px;height:26px;accent-color:#8b59e5} #instanceScopeGroup {padding:12px;border:2px solid #bcb0ff;border-radius:14px;background:#f6f2ff} #instanceScope {min-height:48px}

/* R09: dedicated all-day lane, visually separate from hourly grid */
.all-day-row{display:grid;grid-template-columns:42px repeat(7,minmax(0,1fr));margin:0 7px 5px;min-height:52px;border:1px solid #dce7f3;border-radius:9px;background:#fff9e9;overflow:hidden}.all-day-label{font-size:12px;padding:8px 2px;color:#765c25;word-break:break-word}.all-day-cell{min-width:0;border-left:1px solid #e5dfcd;padding:3px;display:flex;flex-direction:column;gap:3px}.all-day-event{border:1px solid #edc85e;border-radius:7px;background:#ffedba;min-height:34px;padding:4px;text-align:left;overflow:hidden;text-overflow:ellipsis;font-size:12px;font-weight:700;color:#5d4611}@media(max-width:650px){.all-day-row{min-width:410px;grid-template-columns:30px repeat(7,minmax(0,1fr))}}

/* R22: gut lesbare Touch-Importansicht, unveränderte Master-Kalenderfarben */
.waste-dialog{max-width:min(760px,94vw);width:760px;padding:26px;border-radius:22px;border:0;box-shadow:0 20px 75px #29204970}.waste-dialog::backdrop{background:#151b3466}.waste-dialog label{display:block;margin:15px 0;font-weight:650}.waste-dialog input{width:100%;min-height:52px;box-sizing:border-box;padding:12px;border:2px solid #dbd9ef;border-radius:12px;margin-top:7px;font-size:17px}.waste-actions{display:flex;gap:12px;flex-wrap:wrap}.waste-actions button{min-height:56px;font-size:17px}.waste-preview-list{max-height:310px;overflow-y:auto;margin-top:12px}.waste-pickup{display:flex;gap:20px;align-items:center;padding:12px;margin:6px 0;border-radius:12px;background:#f5f1fd}.waste-pickup strong{min-width:115px}.waste-footnote{font-size:14px;line-height:1.6;color:#59526d}#wasteStatus{padding:12px 0;font-weight:650}#wasteNav{min-height:52px}
