@font-face{font-family:LocalSans;src:local("Avenir Next"),local("Avenir"),local("Segoe UI");font-display:swap}
:root{--paper:#f5f3ed;--ink:#2a3630;--muted:#7a8079;--line:#e5e6df;--accent:#a64e35;--white:#fff;--sidebar:232px;font-family:LocalSans,system-ui,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.55}button,a,input,select,textarea{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent)}button{border:0;background:transparent}a{color:inherit}h1,h2,h3,p{margin:0}h1{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:43px;letter-spacing:-1.8px;line-height:1.2}h2{font-size:20px;font-weight:600;letter-spacing:-.4px}h3{font-size:16px;font-weight:600}.subtle{color:var(--muted);font-size:13px;line-height:1.6}.small{font-size:12px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.app-shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar);flex-shrink:0;background:#eeeee6;border-right:1px solid #dedfd6;padding:35px 24px;display:flex;flex-direction:column;gap:0;position:sticky;top:0;height:100vh}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;margin-bottom:55px}.brand>span{font-size:12px;font-weight:750;line-height:1.55;letter-spacing:2.3px}.brand>span>span{display:block;letter-spacing:1.3px}.sidebar-label{font-size:10px;letter-spacing:1.7px;font-weight:600;color:#767e72}.views{display:grid;gap:6px;margin:15px -8px 36px}.views button{text-align:left;display:flex;align-items:center;gap:11px;border-radius:7px;padding:13px 12px;font-size:13px}.views button.active{background:#e0e3d6;font-weight:600}.nav-icon{font-size:20px;color:#7c8874;width:22px}.room-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.text-button{font-size:12px;color:var(--muted);padding:4px 0}.text-button:hover{color:var(--accent)}.room-filter{display:flex;align-items:center;gap:10px;font-size:13px;padding:12px 0;cursor:pointer}.room-filter input{position:absolute;opacity:0;pointer-events:none}.room-dot{width:11px;height:11px;border-radius:3px;background:var(--room);border:1px solid var(--room);flex-shrink:0}.room-filter:has(input:not(:checked)){color:#969a91}.room-filter:has(input:not(:checked)) .room-dot{background:transparent;opacity:.5}.room-filter:has(input:focus-visible){outline:2px solid var(--accent)}.room-filter .count{margin-left:auto;font-size:11px;color:#7b8275;background:#e4e6dc;padding:2px 6px;border-radius:4px}.filter-hint{font-size:11px;color:#888f82;line-height:1.7;margin-top:17px}.sidebar-bottom{margin-top:auto;padding-top:40px}.quiet-button{width:100%;display:flex;justify-content:space-between;text-align:left;font-size:12px;padding:13px 0;border-top:1px solid #d8dccf;border-bottom:1px solid #d8dccf}.access{display:flex;gap:7px;align-items:center;font-size:10px;color:#7a8373;margin-top:20px}.access-dot{background:#859571;width:5px;height:5px;border-radius:100%}#logout{margin-top:6px;font-size:11px}
main{padding:42px 45px 25px;flex:1;min-width:0;max-width:1800px}.page-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:33px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--muted);margin-bottom:12px;font-weight:600}.page-header p{font-size:13px;color:var(--muted);margin-top:10px}.primary{background:var(--accent);color:#fff;border-radius:6px;padding:12px 18px;font-size:13px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:43px;box-shadow:0 2px 3px #7942290e}.primary:hover{background:#913f29}.primary>span{font-size:20px;font-weight:400}.outline{padding:9px 13px;border:1px solid var(--line);border-radius:5px;background:#fff;font-size:12px;min-height:37px}.outline:hover{border-color:#b9bfb1}.notice{padding:10px 14px;background:#ede7d9;border:1px solid #ded3bc;border-radius:6px;font-size:12px;display:flex;justify-content:space-between;gap:15px;margin-bottom:16px;line-height:1.5}.notice .text-button{color:#815336;white-space:nowrap}.planner{background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 5px 25px #283b211f;overflow:hidden}.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:25px 25px 18px}.period{display:flex;align-items:center;gap:17px}.arrows{display:flex;border:1px solid var(--line);border-radius:5px;overflow:hidden}.arrows button{font-family:system-ui;font-size:25px;line-height:1;width:31px;height:36px}.arrows button+button{border-left:1px solid var(--line)}.arrows button:hover{background:#f2f4ed}.period .subtle{font-size:11px;margin-top:4px}.toolbar-right{display:flex;align-items:center;gap:9px}.view-switch{display:flex;padding:3px;background:#f2f3ef;border-radius:5px;margin-left:4px}.view-switch button{font-size:12px;padding:7px 12px;border-radius:4px}.view-switch button.active{background:white;box-shadow:0 1px 4px #31422c19;font-weight:600}.date-picker{position:relative;border:1px solid var(--line);border-radius:5px;width:37px;height:37px;display:grid;place-items:center;overflow:hidden;cursor:pointer}.date-picker>span{font-size:20px;color:#6f7a66}.date-picker input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.date-picker input::-webkit-calendar-picker-indicator{position:absolute;inset:0;width:100%;height:100%;cursor:pointer}.calendar-meta{padding:0 25px 19px;display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted);gap:16px}.calendar-meta strong{color:var(--ink);font-weight:600}.search{display:flex;align-items:center;gap:7px}.search>span{font-size:21px;color:#819077}.search input{width:150px;font-size:12px;border:none;background:transparent;padding:5px;outline-offset:0;color:var(--ink)}#calendar-wrap{overflow-x:auto}#calendar{position:relative}.week-head,.week-grid{display:grid;grid-template-columns:49px repeat(7,minmax(95px,1fr));min-width:760px}.week-head{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fafbf8}.day-head{text-align:center;padding:16px 5px 14px;border-left:1px solid var(--line)}.day-name{text-transform:uppercase;font-size:10px;letter-spacing:1px;color:#899083}.day-number{display:block;margin:7px auto 0;width:30px;height:30px;line-height:30px;font-size:20px;font-family:Georgia,serif}.today .day-number{background:var(--accent);border-radius:50%;color:white}.weekend{background:#fafaf7}.day-head.today{background:#f6f4ec}.week-grid{position:relative}.time-axis{position:relative;background:#fff}.hour-label{position:absolute;right:8px;font-size:10px;color:#92998b;transform:translateY(-50%)}.hour-label:first-child{transform:translateY(3px)}.day-lane{position:relative;border-left:1px solid var(--line);background-image:repeating-linear-gradient(to bottom,transparent 0px,transparent calc(var(--hour-height) - 1px),#ebeee5 calc(var(--hour-height) - 1px),#ebeee5 var(--hour-height));min-height:400px;cursor:crosshair}.day-lane.today{background-color:#fdfbf7}.event{position:absolute;text-align:left;border:1px solid color-mix(in srgb,var(--room) 33%,white);border-left:3px solid var(--room);border-radius:5px;padding:6px 7px;background:color-mix(in srgb,var(--room) 10%,white);color:var(--ink);font-size:11px;line-height:1.45;overflow:hidden;cursor:pointer;transition:box-shadow .15s;min-height:23px}.event:hover{box-shadow:0 3px 9px #27322022;z-index:4!important}.event-time{display:block;font-size:10px;color:color-mix(in srgb,var(--room) 80%,#1b3322);margin-bottom:3px;font-weight:600}.event-title{display:block;font-size:11px;font-weight:650;overflow-wrap:anywhere}.event-room{display:block;font-size:9px;color:#65715f;margin-top:5px}.event.reserviert{border-style:dashed;border-left-style:solid;background:color-mix(in srgb,var(--room) 5%,white)}.event.gesperrt{background:repeating-linear-gradient(135deg,#fff6 0,#fff6 5px,#5f6a5410 5px,#5f6a5410 7px),color-mix(in srgb,var(--room) 10%,white)}.event-status{font-size:9px;color:#798071;display:block;margin-top:4px}.week-empty{position:absolute;left:50%;top:170px;transform:translateX(-50%);background:#fffffff2;padding:20px 30px;text-align:center;border:1px solid var(--line);border-radius:8px;pointer-events:none;width:310px}.week-empty h3{font-size:15px;margin-bottom:8px}.week-empty p{font-size:12px;color:var(--muted);line-height:1.6}.month-grid{min-width:700px;display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid var(--line)}.month-day-heading{padding:12px;text-align:center;font-size:10px;letter-spacing:1px;color:#899083;background:#fafbf8;border-bottom:1px solid var(--line)}.month-day{min-height:122px;padding:9px 7px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);cursor:crosshair}.month-day:nth-child(7n){border-right:none}.month-day.other-month{background:#f9faf7;color:#a5ab9d}.month-day.today{background:#fdf9f2}.month-date{font-size:13px;display:block;width:25px;height:25px;line-height:25px;text-align:center;margin:0 0 7px 2px}.today .month-date{border-radius:50%;background:var(--accent);color:white}.month-event{position:relative;display:block;width:100%;margin-top:4px;min-height:0;padding:4px 6px;line-height:1.35}.month-event .event-title{font-size:10px}.month-event .event-time{font-size:9px;margin-bottom:1px}.month-more{font-size:10px;color:var(--muted);padding:5px}.calendar-footer{display:flex;justify-content:space-between;gap:20px;padding:15px 25px;align-items:center;background:#fdfefb}.calendar-footer>.subtle{font-size:10px}.status-legend{display:flex;gap:18px;align-items:center;font-size:10px;color:#7a8373}.status-legend>span{display:flex;align-items:center;gap:6px}.status-legend i{display:inline-block;width:10px;height:10px;border-radius:2px}.status-solid{background:#9da58e}.status-dash{border:1px dashed #9da58e}.status-block{border:1px solid #9da58e;background:repeating-linear-gradient(135deg,#fff 0,#fff 2px,#9da58e 2px,#9da58e 3px)}.below-calendar{display:flex;justify-content:space-between;align-items:center;margin-top:17px;font-size:11px;color:#89907f;gap:20px}
dialog{border:1px solid var(--line);border-radius:12px;padding:28px;width:min(560px,calc(100% - 24px));max-height:90vh;overflow-y:auto;color:var(--ink);box-shadow:0 20px 80px #18261740}dialog::backdrop{background:#26312966;backdrop-filter:blur(3px)}.small-dialog{max-width:420px}.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:25px}.dialog-heading .eyebrow{margin-bottom:7px}.close{font-size:25px;line-height:1;padding:3px 5px;color:var(--muted)}form>label,.form-grid>label{display:block;font-size:12px;font-weight:600;margin:16px 0 0}form input:not([type=checkbox]):not([type=hidden]):not([type=color]),form select,form textarea{display:block;width:100%;border:1px solid #dce1d4;border-radius:5px;padding:10px 11px;margin-top:7px;color:var(--ink);background:#fff;min-height:40px;font-size:13px}form textarea{resize:vertical}fieldset{border:0;margin:20px 0 0;padding:0}legend{font-size:12px;font-weight:600;margin-bottom:10px}.room-choices{display:flex;flex-wrap:wrap;gap:8px}.room-choice{border:1px solid var(--line);border-radius:5px;padding:8px 10px;display:flex;gap:7px;align-items:center;font-size:12px;cursor:pointer}.room-choice input{accent-color:var(--room);margin:0}.room-choice:has(input:checked){border-color:var(--room);background:color-mix(in srgb,var(--room) 8%,white)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}#event-help{margin-top:15px}.dialog-actions{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:24px}.action-right{display:flex;gap:8px;margin-left:auto}.danger{font-size:12px;color:#a54132;padding:8px 0}.error{background:#fff1ea;border:1px solid #ebc9b8;color:#963b28;font-size:12px;padding:12px;border-radius:5px;line-height:1.6;margin-top:15px}.full{width:100%;margin-top:25px}#login-form>.subtle{margin-top:15px}.room-editor-row{display:flex;align-items:center;gap:9px;margin-top:12px}.room-editor-row input[type=color]{width:36px;height:36px;border:1px solid var(--line);border-radius:4px;background:white;padding:3px}.room-editor-row input[name=room-name]{flex:1;margin:0!important}.room-editor-row button{font-size:20px;color:#9c7060;width:30px;height:36px}#add-room{margin-top:13px}.backup{border-top:1px solid var(--line);margin-top:26px;padding-top:23px}.backup p{margin:8px 0 14px}.import-label{display:inline-block;cursor:pointer;margin-left:7px}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);color:white;background:#344435;padding:13px 22px;border-radius:7px;font-size:13px;box-shadow:0 4px 15px #0002;z-index:20;max-width:90vw}.toast.error-toast{background:#963b28}#confirm-dialog p{margin-top:16px}
.day-lane .event{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start}
@media(max-width:800px){.month-grid{min-width:0}.month-day{padding:7px 3px;min-height:110px}.month-event{padding:3px 4px}.month-event .event-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.month-more{font-size:9px;padding:4px 1px}}
@media(min-width:1500px){main{padding:45px 60px}.day-lane .event{font-size:12px}.event-title{font-size:12px}.month-day{min-height:138px}}
@media(max-width:1100px){:root{--sidebar:195px}.sidebar{padding:28px 18px}main{padding:30px 24px}.calendar-toolbar{padding:21px 18px}.calendar-meta{padding:0 18px 16px}.toolbar-right{gap:6px}.period{gap:10px}.period h2{font-size:17px}.view-switch button{padding:7px 9px}.calendar-footer{padding:14px 18px}.calendar-footer>.subtle{display:none}}
@media(max-width:800px){.app-shell{display:block}.sidebar{position:static;width:100%;height:auto;padding:15px 18px;border-right:0;border-bottom:1px solid var(--line)}.brand{margin:0}.brand img{width:30px;height:30px}.brand>span{font-size:10px;line-height:1.4}.sidebar>.sidebar-label,.views,.room-heading,.filter-hint{display:none}#room-filters{display:flex;gap:6px 14px;flex-wrap:wrap;margin-top:13px}.room-filter{font-size:11px;padding:4px 0}.room-filter .count{display:none}.sidebar-bottom{position:absolute;top:15px;right:18px;padding:0;margin:0}.quiet-button{border:0;padding:3px;font-size:11px}.access{margin:5px 0 0;font-size:9px}.sidebar-bottom #logout{font-size:10px;margin:0}main{padding:25px 14px}.page-header{margin-bottom:22px;gap:10px}h1{font-size:34px}.page-header .eyebrow{font-size:8px;letter-spacing:1.3px}.page-header p{font-size:11px}.page-header .primary{font-size:11px;padding:10px 12px;gap:5px}.calendar-toolbar{padding:16px 12px;flex-wrap:wrap;gap:13px}.period{width:100%}.period h2{font-size:19px}.toolbar-right{width:100%}.toolbar-right .view-switch{margin-left:auto}.calendar-meta{padding:0 12px 14px;font-size:11px}.search input{width:125px;font-size:11px}.calendar-footer{padding:12px}.status-legend{gap:12px;font-size:9px}.below-calendar{font-size:10px;align-items:flex-start;gap:10px}.below-calendar span{max-width:210px}.notice{font-size:10px}.notice .text-button{font-size:10px}.form-grid{grid-template-columns:1fr}.dialog-actions{gap:8px;flex-wrap:wrap}.dialog-actions .primary{font-size:12px;padding:10px 12px}.backup .outline{margin:6px 0}dialog{padding:22px}.event-title{font-size:11px}}
@media print{body{background:#fff}.sidebar,.primary,.toolbar-right,.search,.below-calendar,.notice,.arrows,dialog,.toast{display:none!important}.app-shell{display:block}main{padding:0;max-width:none}.page-header{margin:0 0 20px}.page-header h1{font-size:30px}.planner{box-shadow:none;overflow:visible}#calendar-wrap{overflow:visible}.week-head,.week-grid{min-width:0;grid-template-columns:35px repeat(7,minmax(0,1fr))}.month-grid{min-width:0}.event{print-color-adjust:exact;-webkit-print-color-adjust:exact}.calendar-footer{padding:10px}.month-day{min-height:105px}.week-empty{display:none}.week-grid{break-inside:avoid}@page{size:A4 landscape;margin:12mm}}
