:root{--bg:#f4f7f5;--surface:#fff;--surface-muted:#eef2ef;--border:#d7e0da;--text:#17211c;--text-muted:#5c6b62;--primary:#15694c;--primary-hover:#0f5239;--danger:#b42318;--danger-bg:#fdecea;--success:#1f7a4d;--success-bg:#e7f5ee;--warning:#8a6100;--warning-bg:#fdf3d8;--radius:10px;--shadow:0 1px 2px #1018140f, 0 8px 24px #1018140d;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;line-height:1.5}h1,h2,h3{margin:0 0 .5rem;line-height:1.25}a{color:var(--primary)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app{grid-template-columns:250px 1fr;min-height:100vh;display:grid}.app__sidebar{color:#e5efe9;background:#0f241c;flex-direction:column;gap:1.5rem;height:100vh;padding:1.25rem 1rem;display:flex;position:sticky;top:0;overflow-y:auto}.brand{letter-spacing:.02em;align-items:center;gap:.65rem;font-weight:700;display:flex}.brand__mark{background:var(--primary);color:#fff;border-radius:9px;place-items:center;width:34px;height:34px;font-weight:700;display:grid}.brand small{color:#9fb6aa;font-size:.72rem;font-weight:500;display:block}.nav{flex-direction:column;gap:.3rem;display:flex}.nav__link{color:#cfe0d7;border-radius:8px;padding:.55rem .7rem;font-size:.94rem;text-decoration:none;display:block}.nav__link:hover{color:#fff;background:#ffffff12}.nav__link.is-active{background:var(--primary);color:#fff}.sidebar__footer{flex-direction:column;gap:.6rem;margin-top:auto;display:flex}.sidebar__user{color:#9fb6aa;font-size:.85rem}.sidebar__user strong{color:#e5efe9;font-size:.94rem;display:block}.app__main{width:100%;min-width:0;padding:1.5rem 2rem 3rem}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.25rem;display:flex}.page-header p{color:var(--text-muted);margin:0;font-size:.92rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:1.25rem;padding:1.1rem 1.25rem}.grid-cards{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin-bottom:1.25rem;display:grid}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.15rem}.stat__value{font-size:1.8rem;font-weight:700}.stat__label{color:var(--text-muted);font-size:.85rem}a.stat{color:inherit;text-decoration:none;display:block}a.stat:hover{border-color:var(--primary)}table.data{border-collapse:collapse;width:100%;font-size:.92rem}table.data th,table.data td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:.55rem .6rem}table.data th{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:.78rem}table.data tr:last-child td{border-bottom:none}.row-actions{justify-content:flex-end;gap:.4rem;display:flex}.button{font:inherit;cursor:pointer;background:var(--primary);color:#fff;border:1px solid #0000;border-radius:8px;padding:.5rem .9rem;font-size:.9rem;font-weight:600}.button:hover{background:var(--primary-hover)}.button:disabled{opacity:.6;cursor:not-allowed}.button--secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.button--secondary:hover{background:var(--surface-muted)}.button--ghost{color:#cfe0d7;background:0 0;border-color:#ffffff40}.button--ghost:hover{background:#ffffff1a}.button--danger{color:var(--danger);background:0 0;border-color:#0000;padding:.35rem .55rem}.button--danger:hover{background:var(--danger-bg)}.button--small{padding:.3rem .6rem;font-size:.82rem}.badge{background:var(--surface-muted);color:var(--text-muted);border-radius:999px;padding:.12rem .5rem;font-size:.76rem;font-weight:600;display:inline-block}.badge--active{background:var(--success-bg);color:var(--success)}.badge--inactive{background:var(--surface-muted);color:var(--text-muted)}.form-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.9rem;display:grid}.field{flex-direction:column;gap:.3rem;display:flex}.field>span,.field>label{color:var(--text-muted);font-size:.82rem;font-weight:600}.field input,.field select,.field textarea{font:inherit;border:1px solid var(--border);color:var(--text);background:#fff;border-radius:8px;width:100%;padding:.5rem .6rem}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--primary);outline-offset:1px;border-color:var(--primary)}.field--full{grid-column:1/-1}.checkbox-grid{flex-wrap:wrap;align-items:center;gap:.9rem;display:flex}.checkbox{align-items:center;gap:.4rem;font-size:.9rem;display:inline-flex}.form-actions{align-items:center;gap:.6rem;margin-top:1rem;display:flex}.toolbar{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:1rem;display:flex}.toolbar input,.toolbar select{font:inherit;border:1px solid var(--border);background:#fff;border-radius:8px;padding:.45rem .6rem}.alert{border-radius:8px;margin-bottom:1rem;padding:.6rem .8rem;font-size:.9rem}.alert--error{background:var(--danger-bg);color:var(--danger)}.alert--success{background:var(--success-bg);color:var(--success)}.alert--warning{background:var(--warning-bg);color:var(--warning)}.empty{color:var(--text-muted);padding:.75rem 0;font-size:.92rem}.planner-toolbar{align-items:end}.planner-toolbar__date,.planner-toolbar__filter{color:var(--text-muted);gap:.2rem;font-size:.74rem;font-weight:600;display:grid}.planner-toolbar__date input,.planner-toolbar__filter select{border:1px solid var(--border);background:var(--surface);min-height:36px;color:var(--text);font:inherit;border-radius:7px;padding:.35rem .55rem}.planner__viewport{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);max-height:76vh;overflow:auto}.planner__calendar{min-width:calc(44px + (var(--planner-column-count) * 40px))}.planner__week-head,.planner__day-head,.planner__body{grid-template-columns:44px repeat(var(--planner-column-count), minmax(40px, 1fr));display:grid}.planner__headers{z-index:5;background:var(--surface);position:sticky;top:0}.planner__week-head{border-bottom:1px solid var(--border);min-height:42px}.planner__head-corner{z-index:2;background:var(--surface);border-right:1px solid var(--border);grid-area:1/1;position:sticky;left:0}.planner__week-title{border-left:1px solid var(--border);color:var(--text);grid-area:1/span 7;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .75rem;display:flex}.planner__week-title--current{background:#edf5f0}.planner__week-title strong{font-size:.86rem}.planner__week-title span{color:var(--text-muted);font-size:.76rem}.planner__day-head{border-bottom:1px solid var(--border)}.planner__time-head{z-index:2;background:var(--surface);color:var(--text-muted);grid-row:span 3;justify-content:flex-end;align-items:center;padding-right:.45rem;font-size:.7rem;font-weight:600;display:flex;position:sticky;left:0}.planner__day-title{border-left:1px solid var(--border);flex-direction:column;justify-content:center;align-items:center;gap:.05rem;min-height:36px;font-size:.76rem;display:flex}.planner__room-title{border-left:1px solid var(--border);border-top:1px solid var(--border);min-height:68px;color:var(--text-muted);text-align:left;writing-mode:vertical-rl;justify-content:center;align-items:center;padding:.35rem .2rem;font-size:.68rem;font-weight:600;display:flex;overflow:hidden;transform:rotate(180deg)}.planner__location-title{border-left:1px solid var(--border);border-top:1px solid var(--border);min-height:24px;color:var(--primary);text-align:center;text-overflow:ellipsis;white-space:nowrap;background:#f2f6f3;justify-content:center;align-items:center;padding:.2rem .35rem;font-size:.7rem;font-weight:700;display:flex;overflow:hidden}.planner__day-title strong{font-size:.75rem}.planner__day-title span{color:var(--text-muted);font-size:.68rem}.planner__day-title.is-today{color:var(--primary);background:#e8f2ec}.planner__day-title.is-drop-day,.planner__room-title.is-drop-room{color:var(--primary);background:#dcefe2}.planner__body{align-items:start}.planner__time-col{z-index:2;background:var(--surface);border-right:1px solid var(--border);grid-auto-rows:16px;display:grid;position:sticky;left:0}.planner__time{height:16px;color:var(--text-muted);text-align:right;padding-right:.3rem;font-size:.65rem;line-height:1;transform:translateY(-.2rem)}.planner__time:first-child{padding-top:.15rem;transform:none}.planner__time--hour{color:var(--text);font-weight:600}.planner__time-end{height:16px;color:var(--text);text-align:right;padding-right:.3rem;font-size:.65rem;font-weight:700;line-height:1rem}.planner__room-column{border-left:1px solid var(--border);grid-template-rows:repeat(64,16px) 16px;min-width:0;display:grid}.planner__slot{border-bottom:1px solid #eef2ef;flex-direction:column;gap:0;min-width:0;padding:0;display:flex}.planner__slot--hour{border-top:1px solid #cbd6cf}.planner__slot.is-drop-target{z-index:3;box-shadow:inset 0 0 0 2px var(--primary);background:#cce7d3;position:relative}.planner__slot.is-drop-target:after{z-index:4;background:var(--primary);color:#fff;content:"Ziel";white-space:nowrap;border-radius:3px;padding:.12rem .35rem;font-size:.65rem;position:absolute;top:0;left:100%}.planner__entry{text-align:left;border-radius:2px;flex-direction:column;min-width:0;padding:0 1px;font-size:.59rem;line-height:1.15;display:flex;position:relative;overflow:visible}.planner__entry>strong,.planner__entry>span:not(.planner__tooltip){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.planner__lesson{cursor:grab;background:var(--success-bg);border:1px solid var(--primary);color:var(--text)}.planner__lesson.is-drag-source{opacity:.45}.planner__lesson:not([draggable=true]){cursor:default}.planner__lesson>span:not(.planner__tooltip){color:var(--text-muted)}.planner__tooltip{z-index:10;width:max-content;max-width:240px;color:var(--text);opacity:0;pointer-events:none;visibility:hidden;background:#fff;border:1px solid #789481;border-radius:6px;gap:.15rem;padding:.55rem .65rem;font-size:.72rem;line-height:1.3;display:grid;position:absolute;top:-.25rem;left:calc(100% + .35rem);transform:translateY(.2rem);box-shadow:0 4px 14px #112a2038}.planner__tooltip span{color:var(--text-muted)}.planner__lesson:hover,.planner__lesson:focus-visible{z-index:11}.planner__lesson:hover .planner__tooltip,.planner__lesson:focus-visible .planner__tooltip{opacity:1;visibility:visible;transform:translateY(0)}.planner__drop-status{color:#244a30;background:#edf7ef;border:1px solid #82ad8e;border-radius:6px;margin:.65rem 0;padding:.5rem .7rem;font-size:.86rem;font-weight:600}.planner__lesson.is-provisional{background:var(--warning-bg);border-style:dashed}.planner__lesson.is-cancelled{opacity:.55;text-decoration:line-through}.planner__rental{color:#33415c;background:#e9eef5;border:1px solid #9aa9c0}.planner__end-cell{border-top:2px solid var(--border);height:24px}.planner__caption{color:var(--text-muted);margin:.5rem 0;font-size:.78rem}.settings-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;display:grid}.settings-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-height:150px;box-shadow:var(--shadow);color:inherit;padding:1.25rem;text-decoration:none;display:block}.settings-card:hover{border-color:var(--primary)}.settings-card h2{color:var(--primary);margin:0 0 .5rem;font-size:1rem}.settings-card p{color:var(--text-muted);margin:0}.people-filter{flex-wrap:wrap;align-items:end;gap:.75rem;margin:.85rem 0;display:flex}.people-filter .field{min-width:min(100%,250px)}.people-filter p{color:var(--text-muted);margin:0 0 .4rem;font-size:.85rem}.participant-record h3{margin:1.5rem 0 .6rem}.participant-record__summary{margin-bottom:.8rem}.participant-record__note-form{gap:.5rem;display:grid}.participant-record__note-form textarea{border:1px solid var(--border);min-height:76px;font:inherit;resize:vertical;border-radius:7px;padding:.55rem}.participant-record__note-form .button{justify-self:start}.participant-record__notes{gap:.55rem;padding:0;list-style:none;display:grid}.participant-record__notes li{border-left:3px solid var(--primary);background:#f5f8f5;padding:.65rem .75rem}.participant-record__notes p,.participant-record__notes small{margin:0}.participant-record__notes small{color:var(--text-muted)}.login-page{background:radial-gradient(circle at 20% 20%, #e4efe8, var(--bg));place-items:center;min-height:100vh;padding:1.5rem;display:grid}.login-card{background:var(--surface);border:1px solid var(--border);width:100%;max-width:400px;box-shadow:var(--shadow);border-radius:14px;padding:2rem}.login-card h1{margin-bottom:.25rem;font-size:1.4rem}.login-card .lead{color:var(--text-muted);margin:0 0 1.25rem;font-size:.92rem}.login-form{flex-direction:column;gap:.9rem;display:flex}.login-form__submit{margin-top:.4rem}.login-form__hint{color:var(--text-muted);margin:.4rem 0 0;font-size:.82rem}@media (max-width:820px){.app{grid-template-columns:1fr}.app__sidebar{flex-direction:column;align-items:stretch;gap:.75rem;height:auto;max-height:65vh;position:static}.nav{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;width:100%;display:grid}.sidebar__footer{flex-flow:wrap;align-items:center;margin:0}.app__main{padding:1rem}}.bell{position:relative}.bell__panel{background:var(--surface);width:300px;max-height:60vh;color:var(--text);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);z-index:20;padding:.6rem;position:absolute;bottom:110%;left:0;overflow:auto}.bell__list{flex-direction:column;gap:.4rem;margin:0 0 .6rem;padding:0;list-style:none;display:flex}.bell__list li{border-radius:6px;flex-direction:column;padding:.4rem;font-size:.82rem;display:flex}.bell__list li.is-unread{background:var(--surface-muted)}.bell__list time{color:var(--text-muted);font-size:.72rem}.comment-list{flex-direction:column;gap:.5rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.comment-list li{background:var(--surface-muted);border-radius:6px;padding:.5rem .6rem;font-size:.86rem}.comment-list li p{margin:.3rem 0 0}.comment-list time{color:var(--text-muted);font-size:.75rem}.public-site{background:#f7f8f4;flex-direction:column;min-height:100vh;display:flex}.public-header{color:#fff;background:#112a20;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1rem max(1.25rem,50vw - 550px);display:flex}.public-header a{color:inherit;text-decoration:none}.public-logo{flex-direction:column;font-size:1.4rem;font-weight:750;line-height:1.1;display:inline-flex}.public-logo span{color:#b3d6bd;font-size:.78rem;font-weight:500}.public-nav,.public-languages{flex-wrap:wrap;align-items:center;gap:.9rem;font-size:.92rem;display:flex}.public-nav a:hover,.public-languages a:hover{text-decoration:underline}.public-languages [aria-current=page]{border-bottom:2px solid #fff}.public-main{flex:1;width:100%;max-width:1140px;margin:0 auto;padding:0 1.25rem 3rem}.public-hero{background:#e4eee3;border-radius:0 0 28px 28px;margin-bottom:3rem;padding:clamp(2rem,7vw,5rem)}.public-hero h1{max-width:740px;font-size:clamp(2rem,5vw,4rem);line-height:1.08}.public-hero>p:not(.public-eyebrow){color:#374e3f;max-width:660px;font-size:1.14rem}.public-eyebrow{color:#27704d;letter-spacing:.07em;text-transform:uppercase;font-size:.83rem;font-weight:750}.public-actions,.public-section-heading,.public-course-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.public-actions{justify-content:flex-start;margin-top:2rem}.public-button{background:var(--primary);color:#fff;border:1px solid var(--primary);width:fit-content;font:inherit;cursor:pointer;border-radius:8px;padding:.6rem 1rem;font-weight:600;text-decoration:none;display:inline-block}.public-button:hover{background:var(--primary-hover);color:#fff}.public-button:disabled{opacity:.6;cursor:wait}.public-button--secondary{color:var(--primary);background:0 0}.public-button--secondary:hover{color:var(--primary);background:#dde9de}.public-section{padding:2.5rem 0}.public-section h1{font-size:clamp(2rem,4vw,3rem)}.public-section-heading{align-items:flex-start;margin-bottom:1.5rem}.public-cards,.public-course-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:1rem;display:grid}.public-card{border:1px solid var(--border);box-shadow:var(--shadow);background:#fff;border-radius:12px;flex-direction:column;align-items:flex-start;gap:.65rem;padding:1.5rem;display:flex}.public-card h2,.public-card h3,.public-card p{margin:0}.public-card .public-button{margin-top:auto}.public-card .public-eyebrow{color:var(--primary)}.public-course-header{width:100%;color:var(--text-muted);align-items:baseline;font-size:.83rem}.public-course-header strong{color:var(--primary)}.public-course-code{color:var(--text-muted);font-size:.8rem}.public-schedule{margin:.3rem 0;padding-left:1.25rem}.public-filters{flex-wrap:wrap;gap:.6rem;margin-bottom:1.5rem;display:flex}.public-filters a{border:1px solid var(--border);background:#fff;border-radius:20px;padding:.35rem .8rem;text-decoration:none}.public-filters a[aria-current=page]{color:#fff;background:var(--primary);border-color:var(--primary)}.public-editorial{max-width:760px}.public-editorial>p{white-space:pre-line;line-height:1.7}.public-editorial .public-button{margin-top:1rem}.public-form{border:1px solid var(--border);background:#fff;border-radius:12px;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;max-width:780px;padding:clamp(1rem,3vw,2rem);display:grid}.public-form>label:not(.public-consent):not(.public-hidden){flex-direction:column;gap:.35rem;font-weight:600;display:flex}.public-form input:not([type=checkbox]):not([type=radio]),.public-form select,.public-form textarea{width:100%;font:inherit;border:1px solid var(--border);border-radius:8px;padding:.6rem}.public-form-wide,.public-questions,.public-form>.alert{grid-column:1/-1}.public-consent{align-items:flex-start;gap:.5rem;display:flex}.public-consent input{margin-top:.35rem}.public-questions{gap:1rem;display:grid}.public-questions fieldset{border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:.4rem;display:flex}.public-questions legend{padding:0 .3rem;font-weight:650}.public-questions label{align-items:center;gap:.5rem;display:flex}.public-hidden{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.public-feedback{background:var(--success-bg);border:1px solid #9dc7aa;border-radius:10px;padding:1rem}.public-note{color:var(--text-muted);font-size:.86rem}.public-admin-list{gap:1rem;display:grid}.public-admin-list article{border-top:1px solid var(--border);padding-top:.9rem}.public-admin-list p{margin:.3rem 0}.public-footer{color:#d7e7dd;background:#112a20;flex-wrap:wrap;justify-content:space-between;gap:.8rem;padding:1.5rem max(1.25rem,50vw - 550px);font-size:.85rem;display:flex}.public-footer a{color:inherit}@media (max-width:650px){.public-header{align-items:flex-start}.public-nav{order:3;width:100%}.public-form{grid-template-columns:1fr}.public-form-wide,.public-questions,.public-form>.alert{grid-column:1}.public-hero{border-radius:0 0 20px 20px;margin:0 -1.25rem 1rem}}@media print{body,.public-site{color:#000;background:#fff}.public-header,.public-footer,.public-filters,.print-hidden,.public-card .public-button{display:none!important}.public-main{max-width:none;padding:0}.public-section{padding:0}.public-card{box-shadow:none;break-inside:avoid;border:1px solid #bbb}.public-course-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
