:root{font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;--navy:#10283e;--navy2:#1b3c55;--red:#c93744;--red2:#aa2736;--ink:#172e40;--muted:#657b8e;--line:#e1e9ee;--background:#f2f6f9;--green:#177749;--shadow:0 5px 21px rgba(17,42,60,.055);color:var(--ink);background:var(--background)}
*{box-sizing:border-box}body{margin:0;min-width:320px}a{color:#176087;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}input,select,textarea{min-width:0;max-width:100%;border:1px solid #cbd9e2;border-radius:10px;min-height:43px;padding:10px 12px;color:#203b50;background:white;outline-offset:2px}input:focus,select:focus,textarea:focus{outline:2px solid #9bd1d8;border-color:#4392a7}input[type="checkbox"],input[type="radio"]{width:18px;height:18px;min-height:auto;padding:0;accent-color:#ba3945}input[type="file"]{font-size:12px;max-width:100%;width:100%;height:auto}button:disabled{opacity:.45;cursor:not-allowed}h1,h2,h3,h4,p{margin:0 0 12px}h1{font-size:clamp(22px,2.3vw,30px);letter-spacing:-.6px;line-height:1.17}h2{font-size:19px;line-height:1.3}h3{font-size:15px;margin:20px 0 9px}small{font-size:12px}svg.ico{vertical-align:middle;flex-shrink:0}label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:700;color:#334e62}label+label{margin-top:13px}textarea{width:100%;resize:vertical}.action-form{display:flex;flex-direction:column;gap:12px}.action-form label+label{margin-top:0}.action-form label{width:100%}.action-form>.btn{align-self:flex-start}.action-form .action-form{display:block}.muted{color:var(--muted)}.small{font-size:12px}.eyebrow{letter-spacing:2px;color:#b33a45;font-weight:850;font-size:10px;text-transform:uppercase;margin-bottom:8px}.btn{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid transparent;border-radius:11px;padding:11px 17px;min-height:43px;font-weight:800;font-size:13px;transition:.12s;background:var(--red);color:white;white-space:normal;text-align:center}.btn:hover{filter:brightness(.93)}.btn.primary{background:var(--red);color:white}.btn.secondary{background:var(--navy2);color:white}.btn.ok{background:var(--green);color:white}.btn.outline{background:white;border-color:#cedce4;color:#2b5168}.btn.link{background:transparent;color:var(--navy2)}.notice{padding:13px 15px;border:1px solid;border-radius:11px;margin:0 0 18px;font-size:13px;font-weight:600}.notice.success{background:#e7f7ed;color:#13683e;border-color:#b8e6ca}.notice.danger{background:#ffeaec;color:#9b2533;border-color:#f1b5be}.notice.warning{background:#fff6dd;color:#7a5625;border-color:#ebd6a0;margin-top:13px}.infobox{margin-top:21px;padding:13px;border-radius:10px;background:#eef4fa;color:#456276;font-size:12px}.positive{color:#13784c}.negative{color:#bc2f3a}.text-btn{border:0;background:transparent;color:#a53340;font-weight:700;font-size:12px;padding:6px;text-decoration:underline;cursor:pointer}.checkline{display:flex;flex-direction:row;gap:8px;align-items:center;font-weight:600;margin:11px 0!important}.checkline input{flex-shrink:0}.pill{display:inline-flex;border-radius:99px;padding:3px 9px;font-size:11px;font-weight:800;white-space:nowrap;background:#e8edf2;color:#536779}.pill.green{background:#dcf6e7;color:#13683e}.pill.red{background:#fde1e4;color:#a82e3c}.pill.blue{background:#e2edf9;color:#34688d}.pill.amber{background:#fff0c9;color:#906015}.pill.gray{background:#eceff1;color:#647886}
/* Strong skyline banner with original FRW4 logo */
.masthead{height:176px;background:#10283e url('frankfurt-skyline.jpg') center 57%/cover;position:relative;border-bottom:4px solid var(--red);isolation:isolate}.mastshade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,26,43,.88),rgba(7,26,44,.60) 41%,rgba(5,17,30,.13));z-index:-1}.mast-inner{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;max-width:1260px;margin:auto;height:100%;padding:18px 32px}.brand{display:flex;align-items:center;gap:13px;min-width:0;color:white}.brand img{width:72px;height:72px;border-radius:50%;border:3px solid rgba(255,255,255,.94);object-fit:contain;background:white;box-shadow:0 4px 16px rgba(0,0,0,.26);flex-shrink:0}.brand strong{font-size:34px;line-height:1.02;display:block;letter-spacing:.04em}.brand small{display:block;font-size:12px;font-weight:800;letter-spacing:1px}.brand-kicker{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:#ebf2f7}.userhead{color:white;text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-shadow:0 1px 2px #0008}.userhead span{font-weight:850}.userhead small{color:#dce8f2}.userhead a{display:flex;align-items:center;gap:6px;color:#fff;border-radius:8px;background:#0f233dd4;padding:8px 11px;font-weight:850;font-size:13px}.app{padding-left:244px;min-height:100vh}.app.no-user{padding-left:0}.side{position:fixed;z-index:15;inset:0 auto 0 0;width:244px;background:#10283e;color:#e4f0f7;padding:22px 13px;display:flex;flex-direction:column;overflow:auto}.sidebrand{padding:4px 12px 22px}.sidebrand img{width:52px;height:52px;border-width:2px}.sidebrand strong{font-size:23px}.sidebrand small{font-size:10px}.sidehint{color:#688ba3;font-size:10px;letter-spacing:1.4px;font-weight:850;margin:12px 10px 7px}.side-nav{display:flex;flex-direction:column;gap:4px}.nav-item{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:10px;color:#e3edf4;font-weight:700;font-size:13px;transition:.12s}.nav-item.active,.nav-item:hover{background:#c93744;color:white}.side-foot{margin-top:auto;border-top:1px solid #315068;padding:15px 12px;color:#eff5f8;font-weight:700}.side-foot small{color:#95afc0}.main{max-width:1260px;margin:auto;padding:24px 32px 65px}.app-footer{text-align:center;color:#96a8b6;font-size:11px;padding:0 15px 30px}.sectionintro{margin-bottom:18px}.sectionintro p{color:var(--muted);font-size:13px;max-width:780px}.panel{background:#fff;border:1px solid var(--line);border-radius:15px;padding:20px;margin:0 0 18px;box-shadow:var(--shadow)}.panel.narrow{max-width:510px}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.panel-title h2{margin:0}.panel>h2{margin-bottom:12px}.auth{max-width:510px;background:white;border:1px solid var(--line);padding:26px;border-radius:17px;margin:34px auto;box-shadow:var(--shadow)}.authhead p{color:var(--muted);font-size:13px;line-height:1.55;margin-bottom:24px}.auth form>.btn{width:100%;margin-top:9px}.auth-switch{font-size:13px;text-align:center;margin-top:12px}.auth-switch a{font-weight:800}
/* Booking */
.balance-row{background:#eff5f9;border:1px solid #dbe6ed;border-radius:13px;display:flex;align-items:center;justify-content:space-between;gap:13px;padding:16px 20px;margin:16px 0}.balance-row>div small{display:block;color:var(--muted);font-weight:650}.balance-row>div strong{display:block;color:var(--green);font-size:29px;letter-spacing:-.5px}.date-field{max-width:310px}.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin:14px 0}.product-card{background:white;border:2px solid #e5eaee;border-radius:15px;overflow:hidden;box-shadow:var(--shadow);transition:border-color .15s,transform .15s}.product-card.chosen{border-color:var(--red);background:#fffafa}.product-pick{display:flex;align-items:center;flex-direction:column;width:100%;min-height:168px;border:0;background:none;padding:14px 11px 10px;color:var(--ink);gap:10px;text-align:center}.product-emoji{display:flex;align-items:center;justify-content:center;font-size:48px;border-radius:18px;background:#eaf2f5;min-height:90px;width:100%}.product-info{display:flex;flex-direction:column;align-items:center;gap:5px}.product-info b{font-size:14px;line-height:1.18}.product-info>span{color:var(--red2);font-size:19px;font-weight:900}.qty-line{display:flex;align-items:center;justify-content:center;background:#f2f6f8;margin:0 10px 10px;border-radius:10px;gap:8px;padding:5px}.qty-line button{font-size:24px;line-height:1;border:0;background:#fff;border-radius:7px;min-height:37px;min-width:42px;color:#274458;font-weight:700}.qty-line input{font-size:15px;width:60px;text-align:center;padding:5px;min-height:37px;border:1px solid #d9e4ea;border-radius:7px;background:#fff;appearance:textfield}.qty-line input::-webkit-inner-spin-button{-webkit-appearance:none}.cartbar{position:sticky;bottom:12px;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--navy);color:white;padding:13px 16px;border-radius:15px;box-shadow:0 10px 20px #0e294644;margin-bottom:18px}.cartbar>div small,.cartbar>div span{display:block;font-size:11px;color:#b3c5d2}.cartbar>div strong{display:block;font-size:22px;letter-spacing:-.5px}.cartbar button{min-width:135px}.statline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:17px 0}.statline>div{background:white;border:1px solid var(--line);border-radius:13px;padding:15px 17px}.statline strong{display:block;font-size:clamp(19px,3vw,25px);letter-spacing:-.7px;overflow-wrap:anywhere}.statline span{font-size:12px;color:var(--muted)}.filter-bar{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:13px 0 16px}.filter-bar label{min-width:165px}.kitchen-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.kitchen-item{border:1px solid #deebf0;padding:13px;background:#f0f6f8;border-radius:10px;display:flex;align-items:center;gap:10px}.kitchen-item strong{font-size:22px;color:#bd3543}.kitchen-item span{font-size:13px;font-weight:700}.records{display:flex;flex-direction:column}.record{display:flex;align-items:center;justify-content:space-between;gap:13px;padding:13px 0;border-bottom:1px solid #edf0f2;min-height:56px}.record:last-child{border-bottom:none}.record>div:first-child{min-width:0;flex:1}.record strong{display:block;font-size:13px;line-height:1.4}.record small{display:block;color:var(--muted);font-size:12px;margin-top:4px;line-height:1.4;overflow-wrap:anywhere}.record b{font-size:13px}.record-aside{display:flex;flex-direction:column;align-items:flex-end;gap:2px;max-width:50%}.record-aside .action-form{gap:4px}.name-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.name-chip{background:#f4eef0;border:1px solid #ead5da;color:#794451;border-radius:99px;padding:6px 11px;font-size:12px;font-weight:700}.hero-balance{padding:24px;background:linear-gradient(120deg,#123149,#245575);color:white;border-radius:16px;margin-bottom:18px}.hero-balance small{display:block}.hero-balance strong{display:block;font-size:44px;letter-spacing:-1px}.hero-balance p{color:#d1e2ed;font-size:12px;margin:0}
.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.two-col .panel{margin-bottom:16px}.action-inline{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.action-inline .action-form{display:block}.action-inline .btn{min-height:35px;padding:7px 10px;font-size:11px}.memberrecord{flex-wrap:wrap}.settings-details{max-width:100%;min-width:250px}.settings-details summary{cursor:pointer;font-size:12px;color:#a33343;font-weight:750}.settings-details .action-form{margin-top:15px;min-width:220px}.cashrecord{align-items:start}.receipt-actions{margin-top:8px;color:#55788b;font-size:12px}.receipt-actions summary{cursor:pointer}.receipt-actions .action-form{max-width:280px;margin-top:12px}.guest-fields{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.guest-fields label+label{margin-top:0}.privacy-note{margin-top:15px}.qr-layout{display:grid;grid-template-columns:1fr 1fr;gap:15px}.qr-panel .qr-code{width:min(300px,100%);margin:12px auto;background:#fff;border-radius:8px}.qr-code svg{width:100%;height:auto}.qr-panel .action-inline{justify-content:center}.more-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px;margin-bottom:18px}.more-item{display:flex;align-items:center;gap:13px;padding:17px;border-radius:13px;background:#fff;border:1px solid var(--line);color:var(--ink)}.more-item svg{color:var(--red);width:28px;height:28px}.more-item>span{flex:1}.more-item strong{display:block;font-size:14px}.more-item small{display:block;color:var(--muted);font-size:11px}.more-item b{font-size:25px;color:#8ca6b7}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin:11px 0 16px}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid>label+label{margin-top:0}.product-edit details{border-bottom:1px solid #e6ecf1;padding:11px}.product-edit summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px}.product-edit form{margin:15px 4px 12px}
/* Vacation */
.vac-quota{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:17px}.quota-card{background:white;border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;flex-direction:column}.quota-card>b{color:#c53242;font-size:13px}.quota-card>strong{font-size:22px;letter-spacing:-.5px}.quota-card>small{font-size:10px;color:var(--muted)}.subtabs{display:flex;gap:3px;overflow:auto;border-bottom:1px solid #d9e3e9;margin-bottom:17px}.subtabs a{white-space:nowrap;padding:13px 16px;color:var(--muted);font-weight:750;font-size:12px;border-bottom:3px solid transparent}.subtabs a.selected{border-color:var(--red);color:var(--red2)}.vac-type-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.vac-type-choices>label{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px solid #e0e8ee;background:#f8fafb;border-radius:13px;padding:12px 6px;cursor:pointer;min-height:75px}.vac-type-choices input{position:absolute;top:8px;left:9px}.vac-type-choices span{font-size:19px;color:var(--navy);font-weight:850}.vac-type-choices small{color:var(--muted);font-size:10px}.vac-type-choices label:has(input:checked){border-color:var(--red);background:#fff0f2}.month-accordion{display:flex;flex-direction:column;gap:8px;margin:14px 0}.month-accordion>details{border:1px solid #dee7ed;border-radius:11px;background:#fafcfd;overflow:hidden}.month-accordion>details>summary{cursor:pointer;font-weight:800;padding:13px 16px;background:#f0f5f8;display:flex;justify-content:space-between}.month-accordion summary span{font-size:11px;color:#8495a4}.day-checkboxes{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;padding:13px}.day-check{position:relative;min-width:0;min-height:64px;display:flex;align-items:center;justify-content:center;border:1px solid #cbdbe5;border-radius:10px;background:white;padding:9px;cursor:pointer}.day-check input{position:absolute;top:6px;left:6px;width:15px;height:15px}.day-check span{display:flex;flex-direction:column;text-align:center}.day-check b{font-size:14px}.day-check small{font-size:10px;color:var(--muted)}.day-check:has(input:checked){border-color:#b73644;background:#fff0f2;color:#ae2b39}.day-check.day-risk:not(:has(input:checked)){border-color:#eac0c5}.day-check.day-existing{background:#eaf0f7;opacity:.8}.vac-submit-row{display:flex;justify-content:space-between;align-items:center;gap:15px;background:#f0f5f8;border-radius:12px;padding:14px;margin:15px 0}.vac-month-nav{display:flex;gap:6px;overflow:auto;margin:13px 0;padding-bottom:7px}.vac-month-nav a{border:1px solid #dce4ea;background:#eef3f6;border-radius:10px;color:#537088;padding:8px 12px;font-size:12px;font-weight:800}.vac-month-nav a.selected{color:white;background:var(--navy2);border-color:var(--navy2)}.table-scroll{width:100%;overflow:auto;border-radius:12px;border:1px solid var(--line)}.roster-table{border-spacing:0;border-collapse:separate;width:100%;font-size:12px}.roster-table th,.roster-table td{text-align:center;padding:10px 8px;min-width:68px;border-right:1px solid #e6ecef;border-bottom:1px solid #e6ecef}.roster-table thead th{background:#e9f0f4;position:sticky;top:0;z-index:1}.roster-table th.namecol{position:sticky;left:0;z-index:2;background:white;text-align:left;min-width:165px;max-width:180px}.roster-table thead th.namecol{background:#e9f0f4;z-index:3}.roster-table th small{display:block;font-size:10px;font-weight:400;color:#8a9aa6;line-height:1.4;margin-top:2px}.roster-table td.risk-light{background:#fff5f5}.roster-table .risk{background:#ffdfe2!important;color:#a32636;font-weight:800}.roster-table .ok{background:#e6f7ed;color:#116e40;font-weight:850}.roster-table .vac-present{background:#fff1dc;font-weight:800}.vac-status{display:inline-flex;padding:3px 5px;border-radius:5px;background:#fff0c0;color:#976018}.vac-status.approved{background:#dcebf7;color:#315d7b}.coverage-row th{background:#eff5f8!important}.coverage-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.coverage-card{border-radius:11px;border:1px solid #d7e5dc;background:#f3fbf6;padding:12px}.coverage-card.risk{background:#fff0f1;border-color:#eebfc6}.coverage-card summary{cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px}.coverage-functions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.coverage-functions div{display:flex;flex-direction:column;font-size:12px}.coverage-functions strong{font-size:10px}.vac-edit{flex-wrap:wrap}.vac-edit .action-inline{justify-content:flex-end}.vac-edit .action-inline details>summary{cursor:pointer}.vac-edit .action-inline details form{padding:10px;background:#f3f6f8;border-radius:10px}.vac-edit label{min-width:175px}.qual-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.qual-member{border:1px solid #e0e7ed;border-radius:10px;padding:11px}.qual-member summary{cursor:pointer;display:flex;flex-wrap:wrap;gap:9px;justify-content:space-between}.qual-member summary span{font-size:10px;color:#69889d}.qual-member .action-form{padding:12px 0}.qual-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.qual-checks label{font-size:11px}.mobilebar{display:none}
@media(max-width:1080px){.app{padding-left:215px}.side{width:215px}.main{padding:23px}.mast-inner{padding:18px 23px}.product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.day-checkboxes{grid-template-columns:repeat(4,1fr)}}
@media(max-width:850px){.app{padding-left:0}.side{display:none}.masthead{height:150px}.mast-inner{padding:13px 20px}.main{padding:20px 18px 115px}.app-footer{padding-bottom:100px}.mobilebar{position:fixed;z-index:40;bottom:0;left:0;right:0;background:#122b40;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:8px max(7px,env(safe-area-inset-left)) calc(8px + env(safe-area-inset-bottom));box-shadow:0 -3px 18px #0c273b33}.mobilebar a{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px;color:#c8d8e4;min-height:50px;border-radius:8px;font-size:10px;font-weight:700}.mobilebar a.selected{background:#c93744;color:#fff}.mobilebar svg{width:21px;height:21px}.cartbar{bottom:85px}.product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:610px){.masthead{height:139px;background-position:52% 50%}.mastshade{background:linear-gradient(90deg,rgba(7,22,37,.94),rgba(7,22,37,.67) 53%,rgba(7,22,37,.10))}.mast-inner{padding:12px}.brand{gap:8px}.brand img{width:53px;height:53px;border-width:2px}.brand strong{font-size:23px}.brand-kicker{font-size:7px;letter-spacing:.1em}.brand small{font-size:9px}.userhead{max-width:120px;align-items:flex-end;gap:2px}.userhead span{max-width:110px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px}.userhead small{font-size:9px}.userhead a{font-size:11px;padding:6px}.userhead a svg{width:15px}.main{padding:17px 12px 100px}.sectionintro{margin-bottom:11px}.sectionintro p{font-size:12px}.panel{padding:15px;margin-bottom:14px}.balance-row{padding:13px;margin:12px 0}.balance-row strong{font-size:25px!important}.balance-row .btn{font-size:11px;padding:9px;min-height:39px}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.product-pick{min-height:140px;padding:9px 8px;gap:7px}.product-emoji{font-size:38px;min-height:73px}.product-info b{font-size:12px}.product-info>span{font-size:17px}.qty-line{gap:4px;margin:0 7px 7px}.qty-line button{min-width:34px;min-height:33px}.qty-line input{width:48px;min-height:33px}.cartbar{padding:10px 12px;bottom:73px}.cartbar .btn{min-width:128px;padding:9px 12px}.statline{gap:7px}.statline>div{padding:10px}.statline span{font-size:10px}.kitchen-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kitchen-item{padding:10px}.kitchen-item strong{font-size:20px}.record{align-items:start}.record-aside{max-width:46%}.two-col,.qr-layout,.guest-fields,.more-grid,.form-grid,.qual-grid{grid-template-columns:1fr}.form-grid.three{grid-template-columns:repeat(3,1fr)}.auth{margin:20px auto;padding:19px}.vac-quota{gap:6px}.quota-card{padding:10px 7px}.quota-card strong{font-size:18px}.quota-card small{font-size:9px}.subtabs a{padding:11px 10px}.day-checkboxes{grid-template-columns:repeat(3,1fr);padding:9px;gap:6px}.day-check{min-height:63px}.coverage-grid{grid-template-columns:1fr}.vac-submit-row{flex-wrap:wrap}.vac-submit-row .btn{width:100%}.action-inline .btn{padding:7px}.qual-checks{grid-template-columns:repeat(2,minmax(0,1fr))}.vac-edit .action-inline{width:100%;justify-content:start}}
@media(max-width:380px){.brand img{width:46px;height:46px}.brand strong{font-size:20px}.brand-kicker{display:none}.brand small{font-size:8px}.userhead{max-width:96px}.userhead span{max-width:95px}.day-checkboxes{grid-template-columns:repeat(2,1fr)}.form-grid.three{grid-template-columns:1fr}.cartbar>div strong{font-size:18px}.cartbar .btn{min-width:112px;font-size:12px}}
@media print{body{background:white}.side,.mobilebar,.action-form,.btn,.subtabs,.app-footer,.userhead,.userhead a{display:none!important}.app{padding:0}.main{padding:12px}.masthead{height:105px;-webkit-print-color-adjust:exact;print-color-adjust:exact}.panel{box-shadow:none;break-inside:avoid}.qr-code{width:260px!important}.roster-table{font-size:9px}}
.wallet-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:10px 0}.wallet-mini{padding:11px 13px;background:#f2f7fa;border-radius:10px;border:1px solid #e1ebef}.wallet-mini strong{display:block;font-size:12px}.wallet-mini b{display:block;font-size:18px}.adjust-detail{margin-top:18px;border-top:1px solid #e2eaef;padding-top:10px}.adjust-detail summary{font-weight:800;color:#ad3947;cursor:pointer}.adjust-detail .action-form{max-width:550px;margin-top:14px}@media(max-width:610px){.wallet-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Confirmed FRW 4 three-week rota, v1.1.0 */
.duty-rhythm>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;min-height:42px;list-style:none}.duty-rhythm>summary::-webkit-details-marker{display:none}.duty-rhythm>summary>span:first-child{display:flex;flex-direction:column;gap:4px}.duty-rhythm>summary small{color:#597083;font-size:12px}.duty-rhythm>summary:after{content:'+';font-size:24px;color:#54728b}.duty-rhythm[open]>summary:after{content:'−'}.rhythm-weeks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}.rhythm-week{border:1px solid #d9e5ec;border-radius:13px;padding:14px;background:#f7fafc}.rhythm-week>span{font-size:10px;letter-spacing:.12em;color:#657d91;font-weight:800}.rhythm-week>strong{display:block;font-size:13px;margin:7px 0 12px;min-height:19px}.rhythm-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.rhythm-days span{text-align:center;padding:8px 2px;border-radius:7px;background:#e9eff4;color:#6c8192;font-size:11px;font-weight:650}.rhythm-days .on-duty{background:#143a53;color:#fff;box-shadow:inset 0 -3px #d93d4a}.request-pages{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:18px}.notice p{margin:7px 0}.day-check small{white-space:nowrap}
@media(max-width:900px){.rhythm-weeks{grid-template-columns:1fr}.rhythm-week>strong{min-height:0}.rhythm-week{padding:12px}.rhythm-days{gap:5px}.rhythm-days span{padding:9px 3px}.duty-rhythm>summary .pill{font-size:10px}.duty-rhythm>summary{gap:8px}}

/* V1.2 - freigegebene Urlaubsplanung / interaktive Jahresmatrix */
.vac-drop-cell{min-width:47px;cursor:crosshair;position:relative;transition:background-color .12s,box-shadow .12s;touch-action:manipulation}
.vac-drop-cell:hover{box-shadow:inset 0 0 0 2px #74b1db;background:#e9f4fd}
.vac-draggable{display:inline-flex;justify-content:center;align-items:center;min-height:33px;min-width:33px;cursor:grab;user-select:none;-webkit-user-select:none;touch-action:manipulation;box-shadow:0 1px 6px #10283e16}
.vac-draggable:active{cursor:grabbing}.vac-draggable.vac-is-selected{outline:3px solid #0b86bb;outline-offset:2px;background:#0e527e;color:white;transform:scale(1.08)}
.vac-drop-hover{background:#bff4e4!important;box-shadow:inset 0 0 0 3px #15865c!important}
.vac-drag-hint{margin:16px 0 6px;padding:11px 13px;background:#eef7fc;border:1px solid #c9dfed;border-radius:10px;color:#174b6e;font-weight:600;font-size:13px}
.finalize-panel{border:2px solid #aeced3;background:#f4fafb}.finalize-panel .checkline{margin:16px 0}.final-files .action-inline{gap:12px;display:flex;flex-wrap:wrap}
.bundle-card{border:2px solid #e8c28d;background:linear-gradient(135deg,#fff8eb,#ffffff 55%)}
.bundle-card .bundle-content{font-size:12px;color:#7d5b37;padding:0 12px 8px;line-height:1.4;display:block}
.bundle-config-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}
.bundle-config-grid label{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px;background:#f5f8fa;border-radius:9px;font-size:13px}
.bundle-config-grid input{width:68px;min-width:68px;font-weight:700}
@media(max-width:640px){.bundle-config-grid{grid-template-columns:1fr}.roster-table .vac-draggable{min-width:30px;min-height:34px}.finalize-panel .btn{width:100%}.final-files .btn{width:100%}}

/* v1.3: kombinierbare Rollen, lokaler Artikelkatalog und Mindeststärke. */
[hidden]{display:none!important}
.product-pictogram{display:inline-flex;align-items:center;justify-content:center;width:76px;height:76px;flex:none;border-radius:23px;background:#eaf2f7;margin:3px auto 8px;border:1px solid #ffffffb3}
.product-pictogram img{display:block;width:43px;height:43px;object-fit:contain;opacity:.83}
.product-pictogram.tone-sky{background:#dcebf8}.product-pictogram.tone-meal{background:#fff0df}.product-pictogram.tone-bread{background:#f7eddd}.product-pictogram.tone-snack{background:#f5e7f2}.product-pictogram.tone-drink{background:#e3f2ec}.product-pictogram.tone-cold{background:#e2f2f8}
.product-pictogram.pic-small{width:29px;height:29px;border-radius:8px;margin:0 7px 0 0;vertical-align:middle;display:inline-flex}.product-pictogram.pic-small img{width:17px;height:17px}
.product-info b{line-height:1.35;overflow-wrap:anywhere}.product-info{min-width:0}.product-pick{height:100%}.product-card{display:flex;flex-direction:column}.qty-line{margin-top:auto}
.qty-line button,.qty-line input{min-height:44px}.qty-line button{min-width:42px}
.catalog-tools{margin:18px 0}.catalog-search{max-width:540px}.catalog-search input{background:#fff;min-height:48px}.category-chips{display:flex;gap:8px;overflow-x:auto;padding:4px 1px 9px;scrollbar-width:thin;max-width:100%}
.category-chip{flex:0 0 auto;padding:11px 16px;min-height:44px;border-radius:22px;border:1px solid #d2e0e8;background:#fff;color:#294b63;font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.category-chip.selected{background:#15374e;color:#fff;border-color:#15374e}.category-chip:focus-visible{outline:3px solid #e5a72c;outline-offset:2px}#product-filter-status{margin:3px 0 0;min-height:18px}
.role-fieldset{border:0;padding:0;margin:10px 0 18px;min-width:0}.role-fieldset legend{font-weight:800;font-size:15px;padding:0}.role-choices{display:grid;gap:9px;margin:12px 0}
.role-choice{display:flex!important;flex-direction:row!important;align-items:flex-start!important;gap:12px!important;padding:14px!important;border:1px solid #d3e0e8;border-radius:12px;background:#f7fafc;cursor:pointer;font-weight:400}
.role-choice input[type=checkbox]{width:21px;min-width:21px;height:21px;min-height:21px;margin:1px 0;accent-color:#0f6382}.role-choice span{min-width:0}.role-choice strong{display:block;font-size:14px}.role-choice small{display:block;font-size:12px;line-height:1.5;color:#526c7f;margin-top:3px;white-space:normal}.role-choice:has(input:checked){background:#e7f4f7;border-color:#67a9b9;box-shadow:inset 3px 0 #277c91}.role-choice:has(input:focus-visible){outline:3px solid #e5a72c;outline-offset:2px}
.settings-details{min-width:0;max-width:100%}.settings-details[open]{width:min(100%,580px)}.memberrecord{flex-wrap:wrap}.memberrecord>div{max-width:100%;overflow-wrap:anywhere}.memberrecord small{white-space:normal}.role-fieldset p{white-space:normal}
.userhead small{max-width:215px;line-height:1.4;white-space:normal}.side-foot small{display:block;margin-top:5px;line-height:1.5}.brand strong{white-space:nowrap}
.personnel-summary{display:flex;flex-direction:column;gap:4px;margin-top:14px;padding:10px 0;border-bottom:1px solid #cad8df}.personnel-summary small{font-size:12px}.personnel-row td{font-weight:850}
.bundle-config-grid label>span{min-width:0}.bundle-config-grid label>span small{display:block}.product-edit summary>span{min-width:0;overflow-wrap:anywhere}
@media(max-width:610px){.product-pictogram{width:66px;height:66px;border-radius:18px;margin-bottom:6px}.product-pictogram img{width:37px;height:37px}.product-pictogram.pic-small{width:26px;height:26px;border-radius:7px}.product-pictogram.pic-small img{width:16px;height:16px}.category-chip{font-size:12px;padding:9px 13px}.catalog-search{max-width:none}.product-pick{min-height:150px}.qty-line{margin-left:6px;margin-right:6px;gap:3px}.qty-line input{width:40px}.userhead small{max-width:120px;font-size:9px}.role-choice{padding:12px!important}.settings-details{width:100%}.roster-table .namecol{max-width:160px;min-width:140px!important}.catalog-tools{margin:13px 0}}

.catalog-filter-details{background:#fff;border:1px solid #d7e4eb;border-radius:12px;padding:0 13px}.catalog-filter-details>summary{min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:9px;cursor:pointer;list-style:none}.catalog-filter-details>summary::-webkit-details-marker{display:none}.catalog-filter-details>summary strong{font-size:13px}.catalog-filter-details>summary span{font-size:11px;color:#637d90}.catalog-filter-details>summary:after{content:'+';font-size:21px;color:#345a73}.catalog-filter-details[open]>summary:after{content:'−'}.catalog-filter-details[open]{padding-bottom:10px}.catalog-filter-details .catalog-search{margin-top:2px}.cartbar.empty{display:none}
@media(max-width:610px){.page-book .sectionintro p{display:none}.page-book .balance-row{padding:10px 12px;margin:9px 0 12px}.page-book .balance-row strong{font-size:22px!important}.page-book .date-field{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:10px;max-width:none;margin:0 0 12px}.page-book .date-field input{max-width:195px;min-height:43px;width:58%}.page-book .catalog-tools{margin:10px 0 13px}}
