:root{--navy:#071a2c;--green:#16c784;--ink:#102033;--muted:#718096;--line:#e2e9ee;--bg:#f5f8fa}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px Arial,sans-serif}
.auth-page{background:radial-gradient(circle at 50% 0,#123650,#071a2c 48%,#051320);min-height:100vh}.auth-shell{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:24px}.auth-brand{color:#fff;display:flex;flex-direction:column;align-items:center;margin-bottom:20px}.auth-brand>span{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:var(--green);font-size:23px;margin-bottom:8px}.auth-brand small{color:#8ca2b5;margin-top:3px}.auth-card{width:min(100%,420px);background:#fff;border-radius:20px;padding:25px;box-shadow:0 25px 70px #0006}.auth-card nav{display:grid;grid-template-columns:1fr 1fr;background:#eef3f5;padding:4px;border-radius:10px;margin-bottom:24px}.auth-card nav a{text-align:center;text-decoration:none;color:#748395;padding:10px;border-radius:8px;font-size:12px;font-weight:bold}.auth-card nav a.active{background:#fff;color:#07865b;box-shadow:0 2px 8px #10203312}.eyebrow{font-size:10px;color:#079d69;text-transform:uppercase;letter-spacing:1.2px;font-weight:bold}.auth-card h1{margin:0 0 6px}.auth-card>p:not(.eyebrow){color:var(--muted);font-size:13px}.auth-card form{display:grid;gap:14px;margin-top:20px}.auth-card label{display:grid;gap:6px;font-size:11px;font-weight:bold}.auth-card input{border:1px solid var(--line);border-radius:10px;padding:13px;font-size:16px}.auth-card form button{border:0;border-radius:10px;padding:14px;background:var(--green);color:#fff;font-weight:bold}.help{display:block;text-align:center;color:var(--muted);margin-top:15px}.error{background:#fff0dc;color:#9a5c00;padding:9px;border-radius:8px;font-size:11px}.flash{position:fixed;top:15px;left:50%;transform:translateX(-50%);z-index:10;padding:12px 18px;border-radius:10px}.flash.success{background:#def8eb;color:#08774f}.clock{display:flex;justify-content:space-between;align-items:center;color:#079d69;font-size:34px;font-weight:bold}.clock small{font-size:11px;color:var(--muted)}
.dashboard{max-width:1300px;margin:auto;padding:35px}.dashboard>header{display:flex;justify-content:space-between;align-items:start}.dashboard h1{margin:4px 0}.dashboard header p{color:var(--muted)}.secondary{background:#fff;border:1px solid var(--line);border-radius:9px;padding:9px 13px;color:var(--ink);text-decoration:none}.button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:9px;padding:11px 15px;background:var(--green);color:#fff;text-decoration:none;font-weight:bold;cursor:pointer}.tiles{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:25px}.tiles article,.empty-panel{background:#fff;border:1px solid var(--line);border-radius:13px;padding:16px}.tiles article{display:flex;flex-direction:column}.tiles strong{font-size:24px}.tiles span{font-weight:bold;margin:4px 0}.tiles small{color:var(--muted)}.empty-panel{margin-top:18px}
.filters{display:flex;gap:10px;margin:24px 0 14px}.filters input,.filters select,.form-card input,.form-card select{width:100%;border:1px solid var(--line);border-radius:9px;padding:11px 12px;background:#fff;color:var(--ink)}.filters input{max-width:340px}.filters select{max-width:190px}.data-list{display:grid;gap:8px}.data-list article{display:grid;grid-template-columns:42px minmax(170px,1.2fr) 1fr auto auto;gap:13px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:11px 13px}.data-list small{display:block;color:var(--muted);margin-top:3px}.initials{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#dff8ee;color:#087c55;font-weight:bold}.tags{display:flex;gap:5px;flex-wrap:wrap}.tags i{font-style:normal;font-size:11px;padding:5px 7px;border-radius:6px;background:#edf3f7;color:#435466}.status{font-size:10px;text-transform:uppercase;letter-spacing:.5px;padding:6px 8px;border-radius:20px}.status.actief{background:#ddf8ec;color:#08774f}.status.geblokkeerd{background:#fff0dc;color:#9a5c00}.status.gearchiveerd{background:#edf0f2;color:#647381}
.narrow{max-width:900px}.back{color:#07865b;text-decoration:none;font-weight:bold}.form-card{display:grid;gap:18px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;margin-top:20px}.form-card h2,.form-card p{margin:0}.form-card p{color:var(--muted)}.form-card label{display:grid;gap:6px;font-size:12px;font-weight:bold}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}fieldset{border:1px solid var(--line);border-radius:10px;padding:14px}legend{padding:0 6px;font-weight:bold}.checks{display:flex;flex-wrap:wrap;gap:16px}.checks label,.form-card label.check{display:flex;align-items:center;gap:8px}.checks input,.form-card label.check input{width:auto}.form-actions{display:flex;justify-content:flex-end;gap:9px}.management-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.management-grid .form-card{align-content:start}.management-grid button{justify-self:start}
@media(max-width:800px){.tiles{grid-template-columns:1fr 1fr}.dashboard{padding:20px}.dashboard>header{gap:14px}.data-list article{grid-template-columns:42px 1fr auto}.data-list .tags{grid-column:2/4}.data-list .status{grid-column:2}.data-list article>a{grid-column:3;grid-row:3}.form-grid,.management-grid{grid-template-columns:1fr}.filters{flex-wrap:wrap}.filters input{max-width:none}}
@media print{.secondary{display:none}.dashboard{padding:0}.tiles article,.empty-panel{box-shadow:none}}
.quick-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}.quick-links a{display:grid;gap:5px;background:#fff;border:1px solid #cdeee1;border-radius:13px;padding:17px;color:var(--ink);text-decoration:none}.quick-links small{color:var(--muted)}.header-actions,.roster-toolbar,.roster-toolbar>div{display:flex;align-items:center;gap:9px}.week-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;margin:23px 0 13px}.week-strip a{display:grid;gap:4px;padding:10px;background:#fff;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:var(--ink)}.week-strip a.active{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}.week-strip small,.week-strip span{color:var(--muted);font-size:10px}.roster-toolbar{justify-content:space-between;background:#fff;border:1px solid #d8eee5;border-radius:11px;padding:10px;margin-bottom:12px}.roster-toolbar form{display:flex;align-items:center;gap:10px}.roster-toolbar select{border:1px solid var(--line);border-radius:8px;padding:9px}.roster-matrix{min-width:1100px;background:#fff;border:1px solid #d8eee5;border-radius:13px;overflow:hidden}.roster-page{overflow-x:auto}.roster-head,.roster-row{display:grid;grid-template-columns:185px repeat(7,minmax(112px,1fr)) 75px}.roster-head{background:#f0f5f6;border-bottom:1px solid var(--line)}.roster-head>*,.roster-row>*{padding:9px;border-right:1px solid var(--line)}.roster-head>div{display:flex;justify-content:space-between;align-items:center}.roster-head small{color:var(--muted)}.roster-row{min-height:92px;border-bottom:1px solid var(--line)}.employee{display:flex;align-items:center;gap:8px}.employee small,.week-total small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.day-cell{position:relative;display:flex;flex-direction:column;gap:4px;padding:23px 5px 5px!important}.day-cell.available{background:#f0fbf6}.day-cell.unavailable{background:repeating-linear-gradient(135deg,#f4f5f6,#f4f5f6 6px,#e9ecee 6px,#e9ecee 7px)}.add-shift{position:absolute;top:3px;right:5px;text-decoration:none;color:#0b9868;font-weight:bold}.shift-card{display:grid;gap:2px;padding:6px;border-left:3px solid #3c7df0;border-radius:6px;background:#eaf2ff;color:#18334c;text-decoration:none;font-size:10px}.shift-card strong{font-size:11px}.shift-card span{white-space:nowrap}.shift-card small{color:#617489}.shift-card.gepubliceerd{border-color:var(--green);background:#e5f9f0}.shift-card.fn-keuken{border-left-color:#775dd0}.shift-card.fn-afwas{border-left-color:#e3912e}.shift-card.open{background:#fff;border:1px dashed #775dd0}.week-total{align-self:center;text-align:center}.open-row{background:#fbfaff}.form-card textarea{width:100%;border:1px solid var(--line);border-radius:9px;padding:11px;resize:vertical}.danger{margin-right:auto;border:1px solid #e2a7a7;border-radius:9px;padding:10px 13px;background:#fff;color:#a52929;cursor:pointer}
@media(max-width:800px){.quick-links{grid-template-columns:1fr}.week-strip{display:flex;overflow-x:auto}.week-strip a{min-width:125px}.roster-toolbar{align-items:stretch;flex-direction:column}.roster-toolbar form{justify-content:space-between}.header-actions{flex-wrap:wrap}}
@media print{.header-actions,.week-strip,.roster-toolbar,.add-shift{display:none}.roster-matrix{min-width:0;border:0}.roster-head,.roster-row{grid-template-columns:145px repeat(7,1fr) 60px}.shift-card{padding:3px}}
.mobile-dark{min-height:100vh;background:#061725;color:#eef8f4}.mobile-shell{width:min(100%,620px);margin:auto;padding:24px 18px 38px}.mobile-header{display:flex;justify-content:space-between;align-items:start}.mobile-header h1{margin:5px 0}.mobile-header p{color:#8ca1b0}.mobile-close{display:grid;place-items:center;width:38px;height:38px;border:1px solid #244052;border-radius:10px;color:#fff;text-decoration:none;font-size:24px}.month-nav{display:flex;justify-content:space-between;align-items:center;margin:24px 0 13px}.month-nav a{color:var(--green);text-decoration:none;font-size:22px}.calendar-head,.availability-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.calendar-head span{text-align:center;color:#728a99;font-size:10px;padding:5px}.availability-calendar article{min-height:70px;padding:6px;background:#0c2232;border:1px solid #173849;border-radius:8px}.availability-calendar article.outside{opacity:.4}.availability-calendar article.beschikbaar{border-color:#16c784;background:#0b342b}.availability-calendar article.niet_beschikbaar{border-color:#5a6872;background:#172631}.availability-calendar article.has-shift{box-shadow:inset 0 -3px #3c7df0}.availability-calendar article>div{display:flex;justify-content:space-between}.availability-calendar article i{font-size:8px;color:#76a8ff}.availability-calendar form{display:flex;gap:3px;margin-top:12px}.availability-calendar button{flex:1;border:0;border-radius:4px;padding:3px;background:#18394a;color:#bcd0da}.availability-calendar button[value=beschikbaar]{color:#3ee3a4}.availability-calendar button[value=niet_beschikbaar]{color:#ffac9e}.legend{display:flex;gap:13px;flex-wrap:wrap;margin:14px 0 24px;color:#91a6b3;font-size:11px}.legend i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px}.available-dot{background:var(--green)}.unavailable-dot{background:#64737d}.shift-dot{background:#3c7df0}.mobile-primary{display:block;text-align:center;padding:14px;border-radius:10px;background:var(--green);color:#fff;text-decoration:none;font-weight:bold}.mobile-section{margin:24px 0}.mobile-section h2{font-size:15px}.mobile-card{display:flex;align-items:center;gap:12px;background:#0c2232;border:1px solid #183b4c;border-radius:11px;padding:12px;margin:8px 0}.mobile-card.attention{border-color:#d99a36}.mobile-card small{display:block;color:#91a6b3;margin-top:4px}.mobile-card button,.decision-buttons button{border:0;border-radius:7px;padding:8px 10px;background:var(--green);color:#fff}.mobile-card button.ghost{background:#203746}.date-block{display:grid;place-items:center;min-width:42px}.date-block b{font-size:20px}.grow{flex:1}.pending{font-size:9px;color:#efbf64;text-align:right}.mobile-empty{padding:18px;border:1px dashed #2a4555;border-radius:10px;color:#91a6b3}.own-shift{display:block}.own-shift details{margin-top:10px}.own-shift summary{color:var(--green);cursor:pointer}.own-shift form{display:grid;gap:7px;margin-top:9px}.own-shift select,.own-shift input{width:100%;padding:9px;border:1px solid #294a5c;border-radius:7px;background:#071b2a;color:#fff}.decision-buttons{display:flex;gap:5px}.request-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:22px}.request-columns h2 span{font-size:12px;background:#dff8ee;color:#08774f;border-radius:20px;padding:4px 8px}.request-card{display:grid;grid-template-columns:1fr 220px;gap:15px;background:#fff;border:1px solid #d8eee5;border-radius:12px;padding:15px;margin:9px 0}.request-card small{display:block;color:var(--muted);margin-top:5px}.request-card p{margin:7px 0}.request-card form{display:grid;gap:8px}.request-card form input{border:1px solid var(--line);border-radius:8px;padding:9px}.request-card form>div{display:flex;justify-content:flex-end;gap:7px}.request-status{font-size:10px;color:#a06b13}
@media(max-width:800px){.request-columns{grid-template-columns:1fr}.request-card{grid-template-columns:1fr}.availability-calendar article{min-height:62px;padding:4px}.availability-calendar form{margin-top:8px}}
.hours-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:22px 0 12px}.hours-summary a{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #d8eee5;border-radius:11px;padding:14px;color:var(--ink);text-decoration:none}.hours-summary strong{font-size:24px}.hours-summary span{font-weight:bold}.hours-toolbar{display:flex;justify-content:space-between;gap:10px;margin-bottom:12px}.hours-toolbar>div{display:flex;gap:7px}.hours-list{background:#fff;border:1px solid #d8eee5;border-radius:12px;overflow:hidden}.hours-row{display:grid;grid-template-columns:25px 1.3fr 1fr 1fr 1fr .7fr .8fr 1fr;gap:8px;align-items:center;padding:12px;border-bottom:1px solid var(--line);font-size:11px}.hours-row.heading{background:#f1f5f6;color:var(--muted)}.hours-record details{border-bottom:1px solid var(--line)}.hours-record summary{cursor:pointer;padding:8px 14px;color:#07865b;font-size:11px}.hours-status{border:0;border-radius:20px;padding:6px 8px;font-size:9px}.hours-status.klaar,.hours-status.goedgekeurd,.hours-status.afgesloten{background:#def8eb;color:#08774f}.hours-status.controle_nodig{background:#fff0dc;color:#9a5c00}.hours-status.correctieverzoek{background:#e8f1ff;color:#2468c6}.deviation-warn{color:#b06d00}.record-detail{padding:15px;background:#f8fafb}.hours-edit{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.hours-edit label{display:grid;gap:5px;font-size:10px;font-weight:bold}.hours-edit input,.hours-edit select,.correction-box input,.period-actions input{border:1px solid var(--line);border-radius:8px;padding:9px}.hours-edit .wide{grid-column:1/3}.correction-box{background:#eaf2ff;border:1px solid #bfd5f6;border-radius:9px;padding:12px;margin-bottom:12px}.correction-box p{margin:6px 0}.correction-box form{display:flex;gap:7px;margin-top:9px}.period-actions{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid #d8eee5;border-radius:12px;padding:17px;margin-top:14px}.period-actions div,.period-actions form{display:flex;gap:10px;align-items:center}.period-actions div{align-items:start;flex-direction:column}.period-actions small{color:var(--muted)}.my-hours-list{display:grid;gap:9px;margin:20px 0}.my-hours-list>article{display:grid;grid-template-columns:45px 1fr auto;gap:10px;background:#0c2232;border:1px solid #183b4c;border-radius:11px;padding:13px}.hours-total{text-align:right}.hours-total i{display:block;color:#57dba7;font-size:8px;font-style:normal;margin-top:5px}.my-hours-list details{grid-column:1/4;border-top:1px solid #254153;padding-top:9px}.my-hours-list summary{color:var(--green);font-size:10px}.my-hours-list form{display:grid;gap:8px;margin-top:9px}.my-hours-list label{display:grid;gap:4px;color:#8fa5b4;font-size:9px}.my-hours-list input,.my-hours-list textarea{border:1px solid #294a5c;border-radius:7px;padding:9px;background:#071b2a;color:#fff}.my-hours-list button{border:0;border-radius:8px;padding:10px;background:var(--green);color:#fff;font-weight:bold}
@media(max-width:900px){.hours-page{min-width:1000px}.hours-summary{grid-template-columns:repeat(3,1fr)}.hours-toolbar{flex-direction:column}.hours-edit{grid-template-columns:1fr 1fr}.period-actions{align-items:stretch;flex-direction:column}.period-actions form{display:grid}}
@media print{.hours-toolbar,.hours-record details,.period-actions,.hours-row input{display:none}.hours-page{min-width:0}.hours-row{grid-template-columns:1.3fr repeat(6,1fr)}.hours-row>:first-child{display:none}}
.absence-actions{display:grid;gap:12px;margin:22px 0}.absence-actions details,.sick-action{background:#0c2232;border:1px solid #183b4c;border-radius:12px;padding:15px}.absence-actions summary{color:var(--green);font-weight:bold;cursor:pointer}.absence-actions form{display:grid;gap:10px;margin-top:14px}.absence-actions form>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}.absence-actions label{display:grid;gap:5px;color:#91a6b3;font-size:10px}.absence-actions input,.absence-actions select,.absence-actions textarea{border:1px solid #294a5c;border-radius:8px;padding:10px;background:#071b2a;color:#fff}.absence-actions button{border:0;border-radius:9px;padding:11px;background:var(--green);color:#fff;font-weight:bold}.absence-actions small,.sick-action p{color:#91a6b3;font-size:9px}.sick-action h2{margin:0 0 8px;font-size:15px}.sick-action button{background:#df7b36}.absence-card{display:grid;grid-template-columns:1fr auto;gap:10px;background:#0c2232;border:1px solid #183b4c;border-radius:11px;padding:13px;margin:8px 0}.absence-card small{display:block;color:#91a6b3;margin-top:4px}.absence-card p{font-size:9px;color:#91a6b3}.absence-card>i{font-style:normal;font-size:9px;color:#efbf64}.absence-card>i.goedgekeurd{color:#55dca8}.absence-card>i.afgewezen{color:#ff9d8c}.absence-card em{grid-column:1/3;color:#ffb0a2;font-size:9px}.absence-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:22px 0}.absence-summary div{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #d8eee5;border-radius:11px;padding:14px}.absence-summary strong{font-size:24px}.absence-admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.absence-admin-card{display:grid;grid-template-columns:1fr 240px;gap:12px;background:#fff;border:1px solid #d8eee5;border-radius:12px;padding:15px;margin:9px 0}.absence-admin-card>div{display:grid;gap:5px}.absence-admin-card small{color:var(--muted)}.absence-admin-card p{margin:3px 0}.absence-admin-card b{color:#a26908;font-size:10px}.absence-admin-card em{font-size:10px;color:#566b7d}.absence-admin-card form{display:grid;gap:8px}.absence-admin-card form label{font-size:10px}.absence-admin-card form input,.section-title input,.section-title select{border:1px solid var(--line);border-radius:8px;padding:9px}.absence-admin-card form>div{display:flex;justify-content:flex-end;gap:6px}.approved-label{color:#08774f;font-size:10px}.section-title{display:flex;justify-content:space-between;align-items:center}.section-title summary{cursor:pointer;color:#07865b;font-size:11px}.section-title details form{position:absolute;z-index:2;right:35px;display:grid;gap:7px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px;box-shadow:0 8px 24px #10203320}
@media(max-width:900px){.absence-admin-grid{grid-template-columns:1fr}.absence-admin-card{grid-template-columns:1fr}.absence-actions form>div{grid-template-columns:1fr}}
.new-post{max-width:760px;margin:20px 0;background:#fff;border:1px solid #d8eee5;border-radius:12px;padding:14px}.new-post summary{cursor:pointer;color:#07865b;font-weight:bold}.new-post form,.post-manage form{display:grid;gap:9px;margin-top:13px}.new-post label{display:grid;gap:5px;font-size:10px;font-weight:bold}.new-post input,.new-post textarea,.post-manage input,.post-manage textarea{border:1px solid var(--line);border-radius:8px;padding:10px}.news-feed{display:grid;gap:14px;max-width:850px}.news-post{display:grid;grid-template-columns:220px 1fr;background:#fff;border:1px solid #d8eee5;border-radius:14px;overflow:hidden}.news-post:not(:has(img)){grid-template-columns:1fr}.news-post.pinned{box-shadow:inset 3px 0 var(--green)}.news-post>img{width:100%;height:100%;min-height:220px;object-fit:cover}.news-content{padding:18px}.news-meta{display:flex;align-items:center;gap:9px}.news-meta>span:nth-child(2){display:flex;flex-direction:column}.news-meta small{color:var(--muted);font-size:9px}.news-meta i{margin-left:auto;font-style:normal;font-size:9px;color:#08774f;background:#def8eb;padding:5px 7px;border-radius:20px}.news-content h2{font-size:17px;margin:15px 0 7px}.news-content>p{line-height:1.55;color:#435466}.post-manage{border-top:1px solid var(--line);padding-top:9px}.post-manage summary{cursor:pointer;color:#07865b;font-size:10px}.post-actions{display:flex;gap:7px;margin-top:8px}.post-actions form{margin:0}.mobile-dark .news-post{background:#0c2232;border-color:#183b4c}.mobile-dark .news-content>p{color:#a3b5c0}.mobile-dark .new-post{background:#0c2232;border-color:#183b4c}.mobile-dark .new-post input,.mobile-dark .new-post textarea,.mobile-dark .post-manage input,.mobile-dark .post-manage textarea{background:#071b2a;border-color:#294a5c;color:#fff}
@media(max-width:700px){.news-post{grid-template-columns:1fr}.news-post>img{height:210px;min-height:0}}
.day-nav{display:flex;align-items:center;gap:8px;margin:20px 0}.day-nav a,.day-nav input{background:#fff;border:1px solid var(--line);border-radius:9px;padding:9px 12px;color:var(--ink);text-decoration:none}.reservation-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.reservation-summary article{display:flex;align-items:baseline;gap:9px;background:#fff;border:1px solid #cdeee1;border-radius:11px;padding:13px}.reservation-summary strong{font-size:23px}.reservation-summary span{font-size:11px;color:var(--muted)}.room-tabs{display:flex;gap:7px;margin:18px 0}.room-tabs a{display:grid;gap:3px;min-width:110px;padding:9px 12px;background:#fff;border:1px solid var(--line);border-radius:9px;text-decoration:none;color:var(--ink)}.room-tabs a.active{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}.room-tabs small{color:var(--muted)}.reservation-layout{display:grid;grid-template-columns:minmax(420px,1.05fr) minmax(460px,1fr);gap:18px}.floor-map{position:relative;height:440px;background:#fff;border:1px solid #d8eee5;border-radius:14px;overflow:hidden;background-image:linear-gradient(#edf4f1 1px,transparent 1px),linear-gradient(90deg,#edf4f1 1px,transparent 1px);background-size:30px 30px}.floor-table{position:absolute;display:grid;place-items:center;align-content:center;width:92px;height:72px;transform:translate(-50%,-50%);border:2px solid #a7cfc0;border-radius:12px;background:#effaf5;color:#17483a}.floor-table.round{width:78px;height:78px;border-radius:50%}.floor-table.long{width:130px}.floor-table.expected{border-color:#e5a42e;background:#fff7e8}.floor-table.occupied{border-color:#0a9b69;background:#0a9b69;color:#fff}.floor-table small{font-size:8px;max-width:76px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-legend{display:flex;gap:16px;margin:10px;color:var(--muted);font-size:10px}.table-legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}.table-legend i.free{background:#a7cfc0}.table-legend i.expected{background:#e5a42e}.table-legend i.occupied{background:#0a9b69}.reservation-list{display:grid;gap:7px}.reservation-list article,.dashboard-arrivals article{display:grid;grid-template-columns:52px minmax(150px,1fr) auto auto auto;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px}.reservation-list time,.dashboard-arrivals time{font-size:17px;font-weight:bold}.reservation-list small,.dashboard-arrivals small{display:block;color:var(--muted);margin-top:3px}.reservation-list select{max-width:110px;border:1px solid var(--line);border-radius:7px;padding:7px}.reservation-list>a{font-size:10px;color:#07865b}.reservation-status{font-size:8px;text-transform:uppercase;padding:5px 7px;border-radius:15px;background:#edf1f3;color:#61717d}.reservation-status.verwacht{background:#fff1d7;color:#986000}.reservation-status.aanwezig,.reservation-status.bezet{background:#def8eb;color:#08774f}.daily-reservations{margin-top:18px;background:#fff;border:1px solid #cdeee1;border-radius:13px;padding:16px}.daily-reservations .section-title h2{margin:0 0 4px}.daily-reservations .section-title small{color:var(--muted)}.dashboard-reservation-grid{display:grid;grid-template-columns:2fr 1fr;gap:14px;margin-top:13px}.dashboard-arrivals{display:grid;gap:7px}.dashboard-arrivals article{grid-template-columns:52px 1fr auto}.room-breakdown{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.room-breakdown article{display:flex;flex-direction:column;background:#f4faf7;border-radius:9px;padding:12px}.room-breakdown strong{font-size:21px}.room-breakdown small{color:var(--muted)}
@media(max-width:900px){.reservation-summary{grid-template-columns:1fr 1fr}.reservation-layout,.dashboard-reservation-grid{grid-template-columns:1fr}.floor-map{height:390px}.room-tabs{overflow-x:auto}.reservation-list article{grid-template-columns:48px 1fr auto}.reservation-list form,.reservation-list>a{grid-column:2}.reservation-status{grid-column:3;grid-row:1}.room-breakdown{grid-template-columns:repeat(3,1fr)}}
@media print{.day-nav,.room-tabs,.reservation-layout>div:first-child,.reservation-list form,.reservation-list>a{display:none}.reservation-layout{display:block}.reservation-list article{break-inside:avoid}}
.expense-submit{margin:24px 0;background:#0c2232;border:1px solid #1b4052;border-radius:12px;padding:15px}.expense-submit summary{color:var(--green);font-weight:bold;cursor:pointer}.expense-submit form{display:grid;gap:11px;margin-top:14px}.expense-submit form>div{display:grid;grid-template-columns:1fr 1fr;gap:9px}.expense-submit label{display:grid;gap:5px;color:#91a6b3;font-size:10px}.expense-submit input,.expense-submit select,.expense-submit textarea{width:100%;border:1px solid #294a5c;border-radius:8px;padding:10px;background:#071b2a;color:#fff}.expense-submit button{border:0;border-radius:9px;padding:12px;background:var(--green);color:#fff;font-weight:bold}.expense-mobile-card{display:grid;grid-template-columns:1fr auto;gap:9px;background:#0c2232;border:1px solid #183b4c;border-radius:11px;padding:13px;margin:8px 0}.expense-mobile-card small,.expense-mobile-card p{display:block;color:#91a6b3;margin:4px 0}.expense-mobile-card em{color:#ffb4a7;font-size:10px}.expense-mobile-card>a{color:#48d9a1;font-size:10px}.expense-status{align-self:start;border-radius:15px;padding:5px 8px;font-size:8px;text-transform:uppercase;background:#e9eef1;color:#526674}.expense-status.ingediend{background:#fff0d8;color:#966000}.expense-status.goedgekeurd{background:#def8eb;color:#08774f}.expense-status.afgewezen{background:#ffe5e2;color:#a33a2b}.expense-status.betaald{background:#e3eeff;color:#265fa7}.expense-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:22px 0}.expense-summary article{display:flex;flex-direction:column;background:#fff;border:1px solid #cdeee1;border-radius:11px;padding:14px}.expense-summary strong{font-size:22px}.expense-summary span{color:var(--muted);font-size:10px}.expense-filters{display:flex;gap:7px;margin-bottom:13px;overflow-x:auto}.expense-filters a{white-space:nowrap;background:#fff;border:1px solid var(--line);border-radius:20px;padding:8px 11px;color:var(--ink);text-decoration:none;font-size:10px}.expense-filters a.active{border-color:var(--green);color:#08774f;background:#effaf5}.expense-list{display:grid;gap:9px}.expense-list>article{background:#fff;border:1px solid #d8eee5;border-radius:12px;padding:15px}.expense-main,.expense-meta,.expense-review,.expense-review>div{display:flex;justify-content:space-between;gap:12px;align-items:center}.expense-main h2{font-size:15px;margin:3px 0}.expense-main p{margin:3px 0;color:#435466}.expense-main>strong{font-size:19px;white-space:nowrap}.expense-meta{justify-content:flex-start;border-top:1px solid var(--line);margin-top:10px;padding-top:10px;color:var(--muted);font-size:10px}.expense-meta a{margin-left:auto;color:#07865b}.expense-review{background:#f6f9fa;border-radius:9px;padding:10px;margin-top:10px}.expense-review label{display:grid;gap:4px;flex:1;font-size:9px}.expense-review input{border:1px solid var(--line);border-radius:7px;padding:8px}.expense-paid{text-align:right;margin-top:10px}.review-reason{color:#a33a2b;font-size:10px}
@media(max-width:700px){.expense-submit form>div,.expense-summary{grid-template-columns:1fr}.expense-review{align-items:stretch;flex-direction:column}.expense-main{align-items:start}.expense-meta{flex-wrap:wrap}.expense-meta a{margin-left:0}}
@media print{.expenses-page .header-actions,.expense-filters,.expense-review,.expense-paid{display:none}.expense-list>article{break-inside:avoid}.expense-list{display:block}.expense-list>article{margin-bottom:8px}}
.weekly-labor{margin-top:18px;background:#fff;border:1px solid #cdeee1;border-radius:13px;padding:16px}.labor-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:20px;margin-top:15px}.hours-chart{height:210px;display:grid;grid-template-columns:repeat(7,1fr);align-items:end;gap:10px;padding:25px 8px 0;border-bottom:1px solid var(--line);background:linear-gradient(#edf3f1 1px,transparent 1px);background-size:100% 50px}.hours-chart>div{height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:7px}.hours-chart span{position:relative;width:min(40px,75%);min-height:4px;border-radius:7px 7px 2px 2px;background:linear-gradient(180deg,#20c98d,#079965)}.hours-chart i{position:absolute;top:-18px;left:50%;transform:translateX(-50%);font-style:normal;font-size:8px;color:var(--muted);white-space:nowrap}.hours-chart small{font-size:9px;color:var(--muted)}.labor-list{display:grid;align-content:start;gap:7px}.labor-list article{display:flex;justify-content:space-between;align-items:center;background:#f4faf7;border-radius:9px;padding:11px}.labor-list small{display:block;color:var(--muted);margin-top:3px}.labor-list b{font-size:13px}.cost-note{color:var(--muted);font-size:9px;margin:10px 0 0}@media(max-width:850px){.labor-grid{grid-template-columns:1fr}.hours-chart{height:180px}}
