:root { color-scheme:dark; font-family:system-ui,-apple-system,"Segoe UI",sans-serif; background:#101013; color:#f1efec; --nt-gold:#c5a880; --nt-muted:#a5a2aa; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; min-height:100dvh; display:flex; flex-direction:column; }
[hidden] { display:none !important; }
button,input,textarea { font:inherit; }
button { cursor:pointer; border:1px solid #48434a; border-radius:10px; color:inherit; background:#29282f; padding:12px 18px; line-height:1.35; }
button:hover { border-color:var(--nt-gold); }
button:disabled { cursor:default; opacity:.5; }
button:focus-visible,input:focus-visible { outline:3px solid var(--nt-gold); outline-offset:3px; }
textarea:focus-visible { outline:3px solid var(--nt-gold); outline-offset:3px; }
textarea { width:100%; resize:vertical; min-width:0; border:1px solid #49454c; border-radius:10px; padding:12px; background:#28272e; color:#fff; overflow-wrap:anywhere; }
.nt-primary { background:var(--nt-gold); border-color:var(--nt-gold); color:#191715; font-weight:700; }
.nt-header,.nt-footer { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:20px clamp(16px,4vw,50px); flex-wrap:wrap; }
.nt-header { border-bottom:1px solid #2c2b32; }
.nt-brand { font-weight:750; font-size:24px; color:var(--nt-gold); }
.nt-brand span { font-weight:500; font-size:14px; color:var(--nt-muted); margin-left:10px; }
#terminal-clock { font-size:24px; font-variant-numeric:tabular-nums; }
.nt-main { width:min(1020px,100%); margin:0 auto; padding:30px 20px; flex:1; min-width:0; }
h1 { margin:0 0 12px; font-size:clamp(24px,4vw,36px); overflow-wrap:anywhere; }
h2 { overflow-wrap:anywhere; }
.nt-status { color:var(--nt-muted); line-height:1.55; overflow-wrap:anywhere; }
.nt-status.nt-error,.nt-error { color:#ffb5a4; }
.nt-instruction { font-size:18px; margin:25px 0; }
.nt-roster { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:18px; }
.nt-person { min-width:0; padding:28px 22px; min-height:145px; background:#1e1d23; display:flex; flex-direction:column; gap:14px; text-align:left; }
.nt-person strong { font-size:22px; overflow-wrap:anywhere; }
.nt-person span { color:var(--nt-gold); font-size:17px; }
.nt-setup { max-width:530px; margin:32px auto; padding:25px; background:#1d1c22; border:1px solid #3c383f; border-radius:16px; }
.nt-setup p { color:var(--nt-muted); line-height:1.6; }
label { display:block; font-size:15px; margin:15px 0 8px; }
input { width:100%; min-width:0; border:1px solid #49454c; border-radius:10px; padding:14px; background:#28272e; color:#fff; font-size:20px; }
#terminal-code { text-transform:uppercase; letter-spacing:2px; }
.nt-setup button { width:100%; margin-top:16px; }
.nt-note { font-size:13px; }
.nt-pending { padding:16px; border:1px solid var(--nt-gold); border-radius:12px; margin-bottom:20px; background:#2c251e; }
.nt-pending p { margin-top:0; line-height:1.5; }
.nt-confirmation { margin:30px auto; text-align:center; padding:30px 20px; max-width:550px; border:1px solid #39604b; border-radius:16px; background:#1c2721; }
.nt-check { color:#70d8a0; font-size:50px; }
#terminal-confirm-time { display:block; font-size:44px; font-variant-numeric:tabular-nums; margin:20px 0; }
.nt-confirmation p { line-height:1.5; }
.nt-footer { color:var(--nt-muted); font-size:13px; }
.nt-footer button { font-size:13px; background:transparent; padding:9px 12px; }
.nt-footer-actions { display:flex; flex-wrap:wrap; gap:10px; }
.nt-install-help { margin:0 auto 24px; width:min(600px,calc(100% - 30px)); border:1px solid var(--nt-gold); border-radius:12px; padding:20px; background:#211f24; }
.nt-install-help h2 { font-size:19px; margin-top:0; }
.nt-install-help p { line-height:1.6; }
.nt-overlay { position:fixed; inset:0; z-index:10; background:rgba(0,0,0,.8); backdrop-filter:blur(5px); display:flex; align-items:center; justify-content:center; padding:12px; }
.nt-pin-card { width:min(390px,100%); max-height:calc(100vh - 24px); max-height:calc(100dvh - 24px); overflow:auto; padding:24px; border:1px solid #444047; border-radius:16px; background:#1d1c22; }
.nt-pin-card h2 { margin:0 0 8px; font-size:24px; }
.nt-action { color:var(--nt-gold); font-size:18px; margin:8px 0 18px; }
#terminal-pin { text-align:center; letter-spacing:8px; font-size:24px; }
.nt-keypad { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:14px; }
.nt-keypad button { min-height:44px; font-size:22px; padding:8px; }
.nt-error { min-height:22px; line-height:1.5; font-size:14px; overflow-wrap:anywhere; }
.nt-actions { display:flex; gap:10px; }
.nt-actions button { flex:1 1 0; min-width:0; }
@media(max-width:440px) { .nt-header,.nt-footer { padding:15px; gap:12px; }.nt-main { padding:24px 15px; }.nt-roster { grid-template-columns:1fr; }.nt-person { min-height:110px; padding:20px; }.nt-pin-card { padding:20px; }.nt-actions button { padding:12px 9px; } }
