.tbpos-food-safety-root{--mint:#6DBCA1;--purple:#5F3D84;--dark:#251f29;--paper:#f5f3f6;--danger:#d85050;--warn:#d5a62c;--success:#2d8a52;position:relative;width:100%;height:var(--tbpos-food-safety-height,100dvh);min-height:620px;overflow:hidden;background:#ebe7ed;color:#1e1a20;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.tbpos-food-safety-root *{box-sizing:border-box}.tbpos-food-safety-root button,.tbpos-food-safety-root input,.tbpos-food-safety-root textarea{font:inherit}.tbpos-food-safety-loading{height:100%;display:grid;place-items:center;align-content:center;gap:12px;background:linear-gradient(145deg,#251f29,#5f3d84);color:#fff}.tbpos-food-safety-loading span{width:42px;height:42px;border:4px solid #ffffff3d;border-top-color:var(--mint);border-radius:50%;animation:fsspin .8s linear infinite}@keyframes fsspin{to{transform:rotate(360deg)}}.fs-shell{height:100%;display:grid;grid-template-rows:68px minmax(0,1fr)}.fs-shell>header{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:var(--dark);color:#fff;border-bottom:4px solid var(--mint)}.fs-brand{display:flex;align-items:center;gap:12px}.fs-brand strong{font-size:18px}.fs-brand span{color:#cdbfd2;font-size:12px;letter-spacing:.15em}.fs-user{border:1px solid #ffffff35;border-radius:999px;background:#ffffff0d;color:#fff;padding:9px 13px}.fs-eyebrow{margin:0;color:var(--purple);font-size:11px;font-weight:950;letter-spacing:.16em}.fs-login,.fs-error{overflow:auto;padding:clamp(22px,5vw,60px);display:grid;align-content:center;justify-items:center}.fs-login h1,.fs-error h1{margin:5px 0 8px;font-size:clamp(36px,6vw,64px);line-height:1}.fs-login>p,.fs-error>p{max-width:740px;text-align:center;color:#6e6572}.fs-employee-grid{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr));gap:8px;width:min(800px,100%);margin:18px 0}.fs-employee-grid button{min-height:110px;border:2px solid transparent;border-radius:14px;background:#fff;padding:12px;display:grid;justify-items:center;gap:3px}.fs-employee-grid button.active{border-color:var(--mint);box-shadow:0 0 0 3px #6dbca125}.fs-employee-grid b{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#eee4f0;color:var(--purple)}.fs-employee-grid small{color:#827887}.fs-pin{width:min(420px,100%);display:grid;gap:9px}.fs-pin output{height:55px;display:grid;place-items:center;background:#fff;border-radius:10px;font-size:24px;letter-spacing:.18em}.fs-pin>div{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.fs-pin>div button{height:58px;border:0;border-radius:10px;background:#fff;font-size:22px;font-weight:850}.primary{min-height:52px;border:0;border-radius:10px;padding:10px 15px;background:var(--mint);color:#10281f;font-weight:950}.primary:disabled{opacity:.45}.fs-home{min-height:0;overflow:auto;padding:clamp(14px,2.3vw,28px);display:grid;align-content:start;gap:16px}.fs-hero{display:flex;justify-content:space-between;gap:20px;align-items:center;background:#fff;border-radius:18px;padding:22px}.fs-hero h1{font-size:clamp(34px,5vw,58px);line-height:.95;margin:5px 0 9px}.fs-hero p:last-child{max-width:720px;color:#716878;margin:0}.fs-summary{display:flex;gap:10px}.fs-summary>div{min-width:130px;padding:13px;background:#f0ebf2;border-radius:12px;text-align:center;display:grid}.fs-summary b{font-size:28px}.fs-summary span{font-size:11px;color:#756c79}.fs-summary .danger{background:#ffe5e5;color:#8f2727}.fs-round-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.fs-round-card{background:#fff;border-radius:16px;padding:16px;border-top:6px solid #b7aebc;box-shadow:0 5px 20px #271c2b0b}.fs-round-card.state-completed{border-top-color:var(--success)}.fs-round-card.state-overdue{border-top-color:var(--danger)}.fs-round-card.state-due,.fs-round-card.state-open{border-top-color:var(--warn)}.fs-round-top{display:flex;justify-content:space-between;gap:10px}.fs-round-top span{font-weight:950;font-size:19px}.fs-round-top b{font-variant-numeric:tabular-nums}.fs-state{margin:22px 0 3px;font-size:28px;font-weight:950}.state-completed .fs-state{color:var(--success)}.state-overdue .fs-state{color:var(--danger)}.fs-round-card small{display:block;color:#7b727f;min-height:18px}.fs-round-card button{width:100%;min-height:50px;margin-top:15px;border:0;border-radius:10px;background:var(--dark);color:#fff;font-weight:950}.fs-history-card{background:#fff;border-radius:16px;padding:16px}.fs-section-title{display:flex;justify-content:space-between;align-items:end}.fs-section-title h2{margin:3px 0}.fs-history{display:grid;gap:6px;margin-top:10px}.fs-history button{display:flex;justify-content:space-between;align-items:center;text-align:left;border:1px solid #ded5e0;background:#faf8fa;border-radius:10px;padding:12px}.fs-history span{display:grid;gap:3px}.fs-history small{color:#746b78}.fs-history b{font-size:11px;color:var(--purple)}.fs-round{min-height:0;overflow:hidden;padding:12px;display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto;gap:8px}.fs-round-title{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;background:#fff;border-radius:14px;padding:12px}.fs-round-title .back{border:0;background:#ece5ef;color:#493852;border-radius:10px;padding:12px;font-weight:900}.fs-round-title h1{margin:3px 0;font-size:clamp(23px,3vw,34px)}.fs-round-title p:last-child{margin:0;color:#746b79}.fs-round-actions{display:flex;gap:7px}.fs-round-actions button{min-height:48px;border:0;border-radius:9px;padding:8px 13px;background:#e1d7e5;font-weight:900}.fs-round-actions .complete{background:var(--mint)}.fs-round-meta{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.fs-probe{display:flex;align-items:center;gap:10px;background:#fff;border-radius:12px;padding:10px 13px;cursor:pointer}.fs-probe input{position:absolute;opacity:0}.fs-probe>span{width:40px;height:40px;border-radius:10px;background:#e2dce4;color:transparent;display:grid;place-items:center;font-weight:950;font-size:22px}.fs-probe.checked>span,.fs-probe:has(input:checked)>span{background:var(--success);color:#fff}.fs-probe div{display:grid}.fs-probe small{color:#716977}.fs-score{display:flex;background:#fff;border-radius:12px;overflow:hidden}.fs-score span{min-width:100px;padding:10px 12px;display:grid;text-align:center;font-size:10px;color:#746b79}.fs-score b{font-size:20px;color:#312b34}.fs-score .pass b{color:var(--success)}.fs-score .fail b{color:var(--danger)}.fs-filters{display:flex;gap:6px;overflow:auto;padding:2px 0}.fs-filters button{flex:0 0 auto;border:1px solid #d6ccd9;border-radius:999px;background:#fff;padding:8px 12px;font-size:11px;font-weight:900}.fs-filters button.active{background:var(--purple);border-color:var(--purple);color:#fff}.fs-entry-list{min-height:0;overflow:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:8px;padding-right:2px}.fs-entry{background:#fff;border-radius:12px;padding:12px;border-left:5px solid #c9c0cc}.fs-entry.pass{border-left-color:var(--success)}.fs-entry.fail{border-left-color:var(--danger)}.fs-entry-head{display:flex;justify-content:space-between;gap:10px}.fs-entry h3{margin:3px 0;font-size:18px}.fs-entry-head small{color:#7a717e}.fs-category{font-size:9px;font-weight:950;letter-spacing:.1em;color:var(--purple);text-transform:uppercase}.fs-limit{text-align:right;display:grid;align-content:start}.fs-limit span{font-size:9px;color:#867d89}.fs-limit b{font-size:18px}.fs-temp-row{display:grid;grid-template-columns:minmax(0,1fr) 110px;gap:8px;align-items:end;margin-top:10px}.fs-entry label{display:grid;gap:4px;font-size:11px;font-weight:850;color:#5d5661}.fs-entry input,.fs-entry textarea,.fs-general textarea{width:100%;border:1px solid #d2c9d5;border-radius:8px;background:#fff;padding:9px}.fs-entry input{min-height:48px;font-size:19px;font-weight:900}.fs-entry textarea{min-height:62px;resize:vertical}.fs-result{height:48px;border-radius:8px;display:grid;place-items:center;background:#eee8f0;color:#746d78;font-weight:950}.fs-result.pass{background:#dff4e6;color:#236c42}.fs-result.fail{background:#ffe2e2;color:#9f3030}.fs-instruction{padding:8px;margin:8px 0;background:#f5f0f6;border-radius:8px;font-size:11px}.fs-correct{display:none!important;margin-top:8px}.fs-correct.show{display:grid!important}.fs-choice{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:10px 0}.fs-choice button{min-height:46px;border:1px solid #d4cbd7;background:#f8f5f9;border-radius:8px;font-weight:950}.fs-choice button.active.pass{background:#dff4e6;border-color:#91ceb0;color:#236c42}.fs-choice button.active.fail{background:#ffe2e2;border-color:#e29b9b;color:#9f3030}.fs-choice button.active.na{background:#e9e6eb;color:#5c565f}.fs-general{background:#fff;border-radius:12px;padding:10px}.fs-general label{display:grid;gap:4px;font-size:11px;font-weight:850}.fs-general textarea{min-height:58px}.fs-empty{background:#fff;padding:20px;border-radius:12px}.fs-modal-host:empty{display:none}.fs-backdrop{position:absolute;inset:0;z-index:20;background:#0008}.fs-modal{position:absolute;z-index:21;left:50%;top:50%;transform:translate(-50%,-50%);width:min(600px,92vw);background:#fff;border-radius:16px;padding:24px;box-shadow:0 25px 75px #0005}.fs-modal h2{font-size:30px;margin:5px 0 12px}.fs-modal .actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:18px}.fs-modal .actions button{min-height:52px;border:0;border-radius:10px;font-weight:950}.fs-modal .danger{background:var(--danger);color:#fff}.fs-toast{position:absolute;z-index:30;left:50%;bottom:20px;transform:translate(-50%,10px);opacity:0;pointer-events:none;padding:10px 14px;border-radius:9px;background:#26202a;color:#fff;transition:.2s}.fs-toast.show{opacity:1;transform:translate(-50%,0)}.fs-toast.error{background:#772b2b}.fs-toast.success{background:#1f6032}
@media(max-width:900px){.fs-round-grid{grid-template-columns:1fr}.fs-hero{align-items:stretch;flex-direction:column}.fs-summary{width:100%}.fs-summary>div{flex:1}.fs-entry-list{grid-template-columns:1fr}.fs-round{overflow:auto;grid-template-rows:auto auto auto auto auto}.fs-entry-list{overflow:visible}.fs-round-title{grid-template-columns:1fr}.fs-round-title .back{justify-self:start}.fs-round-actions{display:grid;grid-template-columns:1fr 1fr}.fs-round-meta{grid-template-columns:1fr}.fs-score span{min-width:0;flex:1}}
@media(max-width:640px){.tbpos-food-safety-root{min-height:560px}.fs-shell{grid-template-rows:60px minmax(0,1fr)}.fs-employee-grid{grid-template-columns:repeat(2,1fr)}.fs-home{padding:10px}.fs-hero{padding:16px}.fs-summary{display:grid;grid-template-columns:1fr 1fr}.fs-round{padding:8px}.fs-score{width:100%}.fs-round-actions{grid-template-columns:1fr}.fs-temp-row{grid-template-columns:1fr 92px}.fs-modal .actions{grid-template-columns:1fr}}

/* v1.7 intelligent check sheets */
.fs-round-progress{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:14px 0 8px}.fs-round-progress strong{font-size:1.05rem}.fs-entry-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.fs-entry-meta span{display:inline-flex;align-items:center;border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:4px 8px;font-size:.7rem;font-weight:800;letter-spacing:.03em;opacity:.88}.fs-waste-fields{display:none;grid-template-columns:minmax(0,1fr) minmax(90px,140px) minmax(90px,130px);gap:10px;align-items:end;margin:14px 0;padding:14px;border:1px solid rgba(232,166,45,.55);border-radius:14px;background:rgba(232,166,45,.08)}.fs-waste-fields.show{display:grid}.fs-waste-fields>div strong,.fs-waste-fields>div small{display:block}.fs-waste-fields>div small{margin-top:4px;opacity:.74}.fs-waste-fields label{margin:0}.fs-waste-recorded{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0;padding:12px 14px;border-radius:14px;background:rgba(47,157,94,.13);border:1px solid rgba(47,157,94,.4)}.fs-waste-recorded strong{color:#39b874}.fs-summary{flex-wrap:wrap}.fs-summary>div{min-width:120px}
@media(max-width:720px){.fs-waste-fields{grid-template-columns:1fr 1fr}.fs-waste-fields>div{grid-column:1/-1}.fs-round-progress{align-items:flex-start;flex-direction:column}}

/* v1.9 temperature capture + authenticated signature sign-off */
.fs-optional-temp{margin:10px 0;padding:10px;border:1px solid #ded5e1;border-radius:10px;background:#faf8fb}.fs-optional-temp small{font-weight:600;color:#756d79;line-height:1.35}.fs-signature-modal{width:min(720px,94vw)}.fs-signature-canvas{display:block;width:100%;height:180px;border:2px solid #cfc4d2;border-radius:12px;background:#fff;touch-action:none;cursor:crosshair}.fs-signature-tools{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px 0 14px}.fs-signature-tools button{border:0;border-radius:8px;background:#e9e2ec;padding:9px 12px;font-weight:900}.fs-signature-tools span{font-size:11px;color:#746c78}.fs-signed{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,320px);gap:14px;align-items:center;margin-top:10px;padding:12px;border:1px solid #cbd9cf;border-radius:12px;background:#f4fbf6}.fs-signed div{display:grid;gap:4px}.fs-signed small{color:#6c746e}.fs-signed svg{width:100%;max-height:90px;color:#272129;border-bottom:1px solid #b7c6bb}.fs-entry input[data-temp]{font-variant-numeric:tabular-nums}
@media(max-width:640px){.fs-signature-canvas{height:150px}.fs-signature-tools{align-items:flex-start;flex-direction:column}.fs-signed{grid-template-columns:1fr}}
.fs-login-credentials{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:min(540px,100%);margin:18px 0}.fs-login-credentials label{display:grid;gap:6px;font-size:11px;font-weight:900;letter-spacing:.08em;color:#665d6a}.fs-login-credentials input{width:100%;height:54px;border:1px solid #d4cad7;border-radius:10px;background:#fff;padding:0 12px;font-size:18px;font-weight:900;text-transform:uppercase}.fs-login-credentials .fs-pin-input{text-transform:none;letter-spacing:.16em}.fs-login-credentials input:focus{outline:2px solid var(--mint);outline-offset:1px}@media(max-width:620px){.fs-login-credentials{grid-template-columns:1fr}}
/* v1.14.3 — login credentials use the shared on-focus numeric-entry bubble. */
.fs-login .fs-login-submit{width:min(540px,100%);margin-top:2px}
