:root{--nc-bg: #0b1220;--nc-surface: #16213a;--nc-text: #ffffff;--nc-muted: #c9d4e5;--nc-button-bg: #1d3461;--nc-button-text: #ffffff;--nc-button-border: #8fb3ff;--nc-quick-bg: #0f4c3a;--nc-quick-text: #ffffff;--nc-danger-bg: #b00020;--nc-danger-text: #ffffff;--nc-highlight: #ffd400;--nc-focus: #ffd400;--nc-ok-bg: #16213a;--nc-ok-text: #b9f6ca;--nc-warn-bg: #5c3b00;--nc-warn-text: #ffffff;--nc-font-scale: 1.2;--nc-base: calc(1.125rem * var(--nc-font-scale));--nc-gap: .75rem;--nc-radius: 12px;--nc-target: max(64px, 3.5rem);color-scheme:dark light}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--nc-bg);color:var(--nc-text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Noto Sans,Arial,sans-serif;font-size:var(--nc-base);line-height:1.4;-webkit-text-size-adjust:100%}body{min-height:100dvh;overflow-x:hidden}button,input,select,textarea{font:inherit}a{color:var(--nc-text)}.nc-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}:focus-visible{outline:4px solid var(--nc-focus);outline-offset:3px}.nc-main:focus{outline:none}.nc-loading{padding:2rem 1rem;font-size:1.5rem}.nc-app{display:flex;flex-direction:column;min-height:100dvh;padding:0 16px;gap:var(--nc-gap)}.nc-main{flex:1;display:flex;flex-direction:column;gap:var(--nc-gap)}.nc-statusbar{display:flex;flex-wrap:wrap;gap:.25rem 1rem;padding:.4rem 0;font-size:.8em;color:var(--nc-muted)}.nc-pill{padding:0 .5em;border:2px solid currentColor;border-radius:999px}.nc-pill--warn{background:var(--nc-warn-bg);color:var(--nc-warn-text)}.nc-banner{padding:.75rem 1rem;border-radius:var(--nc-radius);border:3px solid currentColor}.nc-banner--warn{background:var(--nc-warn-bg);color:var(--nc-warn-text)}.nc-hint{color:var(--nc-muted);margin:0}.nc-page-title{margin:.25rem 0 0;font-size:1.6em}.nc-btn{position:relative;min-height:var(--nc-target);min-width:var(--nc-target);padding:.5em .75em;border:3px solid var(--nc-button-border);border-radius:var(--nc-radius);background:var(--nc-button-bg);color:var(--nc-button-text);font-weight:600;font-size:1em;line-height:1.2;cursor:pointer;overflow:hidden;overflow-wrap:anywhere;touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none}.nc-btn:disabled{opacity:.55;cursor:not-allowed}.nc-btn--quick{background:var(--nc-quick-bg);color:var(--nc-quick-text);font-size:1.15em}.nc-btn--danger{background:var(--nc-danger-bg);color:var(--nc-danger-text);border-color:var(--nc-danger-text)}.nc-btn--confirm{background:var(--nc-quick-bg);color:var(--nc-quick-text)}.nc-btn--control{background:var(--nc-surface);color:var(--nc-text)}.nc-btn--small{min-height:44px;min-width:44px;font-size:.85em;padding:.3em .6em}.nc-btn--suggestion{background:var(--nc-surface);color:var(--nc-text);font-style:italic}.nc-btn.is-highlighted{outline:6px solid var(--nc-highlight);outline-offset:3px;box-shadow:inset 0 0 0 4px var(--nc-highlight);text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:4px}.nc-btn.is-group{outline-style:dashed}.nc-btn.is-candidate{outline:6px double var(--nc-highlight);outline-offset:3px}.nc-btn.is-dwell{outline:4px dotted var(--nc-highlight);outline-offset:3px}.nc-progress{position:absolute;left:0;bottom:0;height:8px;width:100%;background:var(--nc-highlight);transform-origin:left center;animation-name:nc-progress;animation-timing-function:linear;animation-fill-mode:forwards}@keyframes nc-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}[data-reduce-motion=true] .nc-progress{animation:none;transform:none}@media(prefers-reduced-motion:reduce){.nc-progress{animation:none;transform:none}}.nc-message{display:flex;flex-direction:column;gap:.5rem;padding-top:.25rem}.nc-message__text{min-height:3.12em;padding:.5rem .75rem;border:3px solid var(--nc-button-border);border-radius:var(--nc-radius);background:var(--nc-surface);font-size:1.35em;white-space:pre-wrap;overflow-wrap:anywhere}.nc-message--compact .nc-message__text{font-size:1.2em}.nc-message__placeholder{color:var(--nc-muted);font-style:italic}.nc-caret{display:inline-block;width:3px;height:1.1em;margin-left:2px;vertical-align:text-bottom;background:var(--nc-text)}.nc-message__note{margin:0;color:var(--nc-ok-text)}.nc-message__actions,.nc-quick,.nc-suggestions,.nc-footer,.nc-row,.nc-dialog__actions,.nc-emergency__actions,.nc-display__actions{display:flex;flex-wrap:wrap;gap:var(--nc-gap);align-items:center}.nc-message__actions>.nc-btn,.nc-quick>.nc-btn{flex:1 1 9rem}.nc-speech{min-height:0}.nc-speech--active,.nc-speech--error{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;padding:.5rem .75rem;border-radius:var(--nc-radius);border:3px solid currentColor;background:var(--nc-ok-bg);color:var(--nc-ok-text)}.nc-speech--error{background:var(--nc-warn-bg);color:var(--nc-warn-text);flex-direction:column;align-items:flex-start}.nc-speech--error p{margin:0}.nc-speech__label{font-weight:700}.nc-speech__text{font-size:1.1em}.nc-grid{display:grid;grid-template-columns:repeat(var(--nc-cols, 3),minmax(0,1fr));gap:var(--nc-gap)}.nc-grid>.nc-btn{min-height:calc(var(--nc-target) * 1.4)}@media(max-width:600px){.nc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.nc-pager{display:flex;align-items:center;justify-content:space-between;gap:var(--nc-gap);margin-top:var(--nc-gap)}.nc-pager__info{color:var(--nc-muted)}.nc-keyboard{display:flex;flex-direction:column;gap:calc(var(--nc-gap) * .6)}.nc-keyboard__row{display:flex;flex-wrap:wrap;gap:calc(var(--nc-gap) * .6)}.nc-keyboard__row>.nc-btn{flex:1 1 var(--nc-target);font-size:1.25em}.nc-keyboard__row--controls>.nc-btn{font-size:1em}.nc-key--wide{flex-grow:4!important}.nc-footer{position:sticky;bottom:0;padding:var(--nc-gap) 0;background:var(--nc-bg);border-top:2px solid var(--nc-button-border)}.nc-footer>.nc-btn{flex:1 1 8rem}.nc-caregiver-access{position:relative;min-height:44px;margin-left:auto;padding:.25em .75em;border:2px dashed var(--nc-muted);border-radius:var(--nc-radius);background:transparent;color:var(--nc-muted);font-size:.75em;overflow:hidden;user-select:none;-webkit-touch-callout:none}.nc-overlay{position:fixed;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;padding:16px;background:#000000bf}.nc-dialog{width:min(40rem,100%);max-height:100%;overflow:auto;padding:1.25rem;border:4px solid var(--nc-highlight);border-radius:var(--nc-radius);background:var(--nc-bg);color:var(--nc-text)}.nc-dialog__title{margin:0 0 .5rem}.nc-dialog__text{font-size:1.3em;margin:0 0 1rem}.nc-dialog__actions>.nc-btn{flex:1 1 10rem}.nc-dialog__hint{color:var(--nc-muted);font-size:.85em}.nc-candidate{position:fixed;left:16px;right:16px;bottom:calc(var(--nc-target) + 2rem);z-index:9;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;border:4px double var(--nc-highlight);border-radius:var(--nc-radius);background:var(--nc-bg)}.nc-app--emergency{background:var(--nc-danger-bg);color:var(--nc-danger-text)}.nc-app--emergency .nc-statusbar,.nc-app--emergency .nc-hint{color:var(--nc-danger-text)}.nc-emergency{display:flex;flex-direction:column;gap:1rem;padding:1rem;border:10px solid var(--nc-danger-text);border-radius:var(--nc-radius);background:var(--nc-danger-bg);color:var(--nc-danger-text);text-align:center}.nc-emergency__title{margin:0;font-size:clamp(2.5rem,10vw,5rem);letter-spacing:.1em}.nc-emergency__message{margin:0;font-size:clamp(1.6rem,6vw,3rem);font-weight:700}.nc-emergency__note,.nc-emergency__warn{margin:0}.nc-emergency__actions{justify-content:center}.nc-emergency__actions>.nc-btn{flex:1 1 12rem}.nc-display{display:flex;flex-direction:column;gap:1rem;flex:1}.nc-display__text{flex:1;margin:0;padding:1rem;border:4px solid var(--nc-button-border);border-radius:var(--nc-radius);background:var(--nc-surface);font-size:clamp(2rem,7vw,5rem);font-weight:700;overflow-wrap:anywhere}.nc-display__text.is-rotated{transform:rotate(180deg)}.nc-caregiver,.nc-caregiver__gate,.nc-recovery{max-width:60rem;margin:0 auto;padding:1rem 16px 3rem;font-size:.9em}.nc-caregiver__header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem}.nc-caregiver h1{font-size:1.4em;margin:0}.nc-tabs{display:flex;flex-wrap:wrap;gap:.4rem;margin:1rem 0}.nc-tab{min-height:44px;padding:.3em .8em;border:2px solid var(--nc-button-border);border-radius:999px;background:var(--nc-surface);color:var(--nc-text);cursor:pointer}.nc-tab.is-active{background:var(--nc-button-bg);color:var(--nc-button-text);border-width:4px;font-weight:700}.nc-caregiver section>*+*{margin-top:.75rem}.nc-field{display:flex;flex-direction:column;gap:.25rem}.nc-field input,.nc-field select{min-height:44px;padding:.3em .5em;border:2px solid var(--nc-button-border);border-radius:8px;background:var(--nc-surface);color:var(--nc-text);max-width:100%}.nc-field--toggle{flex-direction:row;flex-wrap:wrap;align-items:center}.nc-field--toggle input{width:28px;height:28px;min-height:0}.nc-field__hint{width:100%;margin:0;color:var(--nc-muted);font-size:.85em}fieldset{border:2px solid var(--nc-button-border);border-radius:var(--nc-radius);padding:.75rem 1rem 1rem}legend{font-weight:700;padding:0 .4rem}.nc-editor-list{padding-left:1.2rem}.nc-editor-cat,.nc-editor-item{padding:.75rem 0;border-bottom:1px solid var(--nc-button-border)}.nc-chips{display:flex;flex-wrap:wrap;gap:.5rem;padding:0;list-style:none}.nc-chips li{padding:.2rem .6rem;border:2px solid var(--nc-button-border);border-radius:999px}.nc-dl{display:grid;grid-template-columns:minmax(8rem,max-content) 1fr;gap:.3rem 1rem}.nc-dl dt{font-weight:700}.nc-dl dd{margin:0}@media(max-width:600px){.nc-dl{grid-template-columns:1fr}}.nc-log{font-family:ui-monospace,monospace;font-size:.85em}.nc-meter{height:20px;border:2px solid var(--nc-button-border);border-radius:6px;overflow:hidden}.nc-meter span{display:block;height:100%;background:var(--nc-highlight)}.nc-calib-step{font-size:1.2em;font-weight:700}.nc-keyname{min-width:14rem}.nc-donation{display:grid;gap:.5rem;margin:0 0 1rem}.nc-donation__row{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem 1rem}.nc-donation__row dt{min-width:10em;font-weight:700}.nc-donation__row dd{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:0}.nc-donation__value{font-family:ui-monospace,monospace;font-size:1.1em;letter-spacing:.05em}
