/* System 3 styles: attendance (face ID) + shared HR helpers (a3s-*) used by systems 3, 6 and 11 */

/* ---------- shared helpers */
.a3s-tw{border-radius:var(--r)}
.card .a3s-tw{border:none;border-radius:0 0 var(--r) var(--r)}
.a3s-bar{display:inline-block;width:64px;height:7px;border-radius:4px;background:var(--panel-3);overflow:hidden;vertical-align:middle;margin-right:6px}
.a3s-bar i{display:block;height:100%;background:var(--good);border-radius:4px}
.a3s-bar.warn i{background:var(--warn)}.a3s-bar.bad i{background:var(--bad)}
.a3s-gate{min-height:100vh;display:grid;place-items:center;padding:24px 16px;background:linear-gradient(135deg,#ecfdf5,#f1f5f9)}
.a3s-gate.dark{background:radial-gradient(circle at 30% 20%,#0f3d3a 0,#020617 60%)}
.a3s-gate-box{width:min(400px,100%);background:#fff;border-radius:18px;padding:26px 24px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:12px;color:var(--ink)}
.a3s-gate-box h2{font-size:1.3rem}.a3s-gate-box p{font-size:.9rem}
.a3s-gate-ic{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:var(--brand-50);color:var(--brand)}
.a3s-gate-ic .ic{width:28px;height:28px}
.a3s-gate-warn{display:flex;gap:6px;align-items:flex-start;background:#fffbeb;color:#92400e;border-radius:10px;padding:8px 10px;font-size:.85rem}
.a3s-gate-err{color:var(--bad);font-size:.88rem}
.a3s-gate-demo button{color:var(--brand-2);font-weight:600;text-decoration:underline}

/* ---------- misc */
.a3-mini{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:6px 0 4px}
.a3-mini div{background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column}
.a3-mini span{font-size:.72rem;color:var(--ink-2)}.a3-mini b{font-size:1.02rem}
.a3-feed li{gap:10px;padding:8px 0}
.a3-feed li .grow{display:flex;flex-direction:column;min-width:0}
.a3-feed li .grow b,.a3-feed li .grow span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.a3-feed .ra{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.a3-feedcard .card-b{max-height:318px;overflow:auto;padding-top:4px;padding-bottom:4px}
.a3-live::before{animation:blink 1.4s infinite}
.a3-cov{display:flex;gap:18px;align-items:center}
.a3-ring{--p:0;width:112px;height:112px;flex:0 0 112px;border-radius:50%;background:conic-gradient(#0f766e calc(var(--p)*1%),#e2e8f0 0);display:grid;place-items:center;position:relative}
.a3-ring::before{content:"";position:absolute;inset:12px;border-radius:50%;background:#fff}
.a3-ring b,.a3-ring span{position:relative;z-index:1;line-height:1}.a3-ring b{font-size:1.45rem;margin-top:14px}.a3-ring span{font-size:.72rem;color:var(--ink-2);margin-top:-24px}
.a3-bad{color:var(--bad)}
.a3-prog{display:flex;gap:16px;align-items:center;padding:6px 2px}.a3-prog>div:last-child{flex:1}
.a3-spin{width:34px;height:34px;flex:0 0 34px;border-radius:50%;border:3px solid #ccfbf1;border-top-color:#0f766e;animation:a3spin 0.9s linear infinite}
@keyframes a3spin{to{transform:rotate(360deg)}}
.a3-who{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.a3-okic{color:var(--good)}.a3-warnic{color:var(--warn)}
.a3-rcard .card-b{padding:0}
.a3-rout .kpi-v small{font-size:.9rem;font-weight:600}
.kpi-v small{font-size:.9rem;font-weight:600}

/* ---------- HR console */
.a3-hrbar{border-radius:var(--r);border-bottom:1px solid var(--border);margin-bottom:14px}
.a3-codesearch{min-width:320px;flex:1 1 320px;max-width:520px}
.a3-codesearch input{font-family:var(--mono);font-size:.95rem}
.a3-hrgrid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,1fr);gap:14px;align-items:start}
.a3-tw{border-radius:var(--r)}
.a3-hrlist .tbl tbody tr{cursor:pointer}
.a3-hrlist td.mono{white-space:nowrap}
.a3s-tw td{max-width:340px}
.a3-hrlist tr.a3-sel td{background:#ecfdf5}
.a3-hrlist tr.a3-sel td:first-child{box-shadow:inset 3px 0 0 #0f766e}
.a3-hrcard{position:sticky;top:calc(var(--top-h) + 12px)}
.a3-emp-top{display:flex;gap:14px;align-items:center;margin-bottom:10px}
.a3-emp-top h3{font-size:1.2rem}.a3-emp-top .av{box-shadow:0 0 0 3px #fff,0 0 0 5px #99f6e4}
.a3-emp-b{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.a3-kv td{padding:7px 4px}.a3-kv td:first-child{color:var(--ink-2)}
.a3-days{display:flex;gap:4px;align-items:center;margin:12px 0 4px;flex-wrap:wrap}
.a3-days i{width:14px;height:14px;border-radius:4px;background:#e2e8f0}.a3-days i.p{background:#14b8a6}.a3-days i.l{background:#f59e0b}
.a3-days span{margin-left:6px}
.a3-emp-acts{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 4px}

/* ---------- reports */
.a3-rbar{border-radius:var(--r);border-bottom:1px solid var(--border);margin-bottom:14px}

/* ---------- permission matrix */
.a3-perm{border-radius:var(--r)}
th.a3-vert{height:150px;vertical-align:bottom;padding:6px 4px;text-transform:none;letter-spacing:0;cursor:default;text-align:center}
th.a3-vert span{writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;font-size:.78rem;display:inline-block}
.a3-pc{text-align:center}
.a3-pk{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:7px;border:1.5px solid var(--border-2);background:#fff;cursor:pointer;position:relative;vertical-align:middle}
.a3-pk input{position:absolute;opacity:0;inset:0;cursor:pointer;margin:0}
.a3-pk i{display:none;color:#fff}.a3-pk i .ic{width:14px;height:14px}
.a3-pk:has(input:checked){background:#0f766e;border-color:#0f766e}.a3-pk:has(input:checked) i{display:grid}
.a3-pk.inh{background:#94a3b8!important;border-color:#94a3b8!important;cursor:not-allowed}.a3-pk.inh i{display:grid}
.a3-pk.own{background:#0f766e;border-color:#0f766e}.a3-pk.own i{display:grid}
.a3-legend{display:flex;gap:18px;flex-wrap:wrap;margin-top:12px;font-size:.86rem;color:var(--ink-2)}
.a3-legend span{display:inline-flex;gap:8px;align-items:center}
.a3-legend .a3-pk{cursor:default}

/* ---------- on device */
.a3-devhead{margin-bottom:14px}
.a3-devhead .card-b{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.a3-devhead .grow{display:flex;flex-direction:column;min-width:200px}
.a3-pick{display:flex;flex-wrap:wrap;gap:6px;max-height:320px;overflow:auto}

/* ---------- terminal kiosk (#/screen/terminal) */
.a3t{min-height:100vh;color:#e2e8f0;background:radial-gradient(circle at 20% 0%,#0b3b37 0,#020617 55%);display:flex;flex-direction:column}
.a3t-top{display:flex;align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid #1e293b;background:rgba(2,6,23,.6)}
.a3t-title{display:flex;flex-direction:column;line-height:1.2}.a3t-title b{font-size:1rem}.a3t-title span{font-size:.75rem;color:#94a3b8}
.a3t-op{display:inline-flex;gap:6px;align-items:center;color:#94a3b8;font-size:.85rem}
.a3t-main{flex:1;display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:22px;padding:22px}
.a3t-devwrap{display:flex;flex-direction:column;align-items:center;gap:18px;padding-top:8px}
.a3t-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:min(640px,100%)}
.a3t-steps div{background:rgba(15,23,42,.7);border:1px solid #1e293b;border-radius:12px;padding:10px 12px;display:flex;gap:10px;align-items:flex-start;font-size:.8rem;color:#94a3b8}
.a3t-steps b{display:block;color:#e2e8f0;font-size:.84rem;margin-bottom:2px}
.a3t-steps i{font-style:normal;width:24px;height:24px;flex:0 0 24px;border-radius:50%;background:#0f766e;color:#fff;display:grid;place-items:center;font-weight:700;font-size:.8rem}
.a3t-dev{width:min(380px,100%);background:linear-gradient(180deg,#1f2937,#0b0f14);border-radius:30px;padding:16px 16px 10px;box-shadow:0 40px 90px -20px rgba(0,0,0,.8),inset 0 1px 0 rgba(255,255,255,.08)}
.a3t-screen{background:#000;border-radius:16px;overflow:hidden;display:flex;flex-direction:column}
.a3t-banner{background:#0f172a;color:#cbd5e1;text-align:center;padding:10px 8px;font-weight:750;font-size:.86rem;letter-spacing:.04em;text-transform:uppercase;transition:background .2s}
.a3t-banner.ok{background:#064e3b;color:#6ee7b7}.a3t-banner.bad{background:#7f1d1d;color:#fecaca}.a3t-banner.warn{background:#713f12;color:#fde68a}.a3t-banner.info{background:#0c4a6e;color:#bae6fd}
.a3t-cam{position:relative;aspect-ratio:3/4;background:linear-gradient(160deg,#1c2733,#0e141b);overflow:hidden}
.a3t-cam video,.a3t-cam canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}
.a3t-oval{position:absolute;left:50%;top:44%;width:56%;height:52%;transform:translate(-50%,-50%);border:3px dashed rgba(125,211,252,.45);border-radius:48% 48% 44% 44%;pointer-events:none}
.a3t-camlbl{position:absolute;top:10px;left:12px;display:flex;gap:6px;align-items:center;font-size:.72rem;color:#8fb7e8;background:rgba(2,6,23,.45);padding:3px 8px;border-radius:999px}
.a3t-camlbl i{width:7px;height:7px;border-radius:50%;background:#ef4444;animation:blink 1.4s infinite}
.a3t-msg{position:absolute;left:10px;right:10px;bottom:12px;display:flex;justify-content:center}
.a3t-loadm,.a3t-tip{display:flex;gap:10px;align-items:center;background:rgba(2,6,23,.78);border:1px solid #1e293b;color:#cbd5e1;border-radius:12px;padding:9px 12px;font-size:.82rem}
.a3t-loadm .a3-spin{width:22px;height:22px;flex-basis:22px;border-width:3px;border-color:#134e4a;border-top-color:#2dd4bf}
.a3t-nocam{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;background:rgba(2,6,23,.85);border:1px solid #334155;border-radius:14px;padding:14px;color:#e2e8f0;font-size:.85rem}
.a3t-nocam .ic{width:28px;height:28px;color:#f87171}.a3t-nocam span{color:#94a3b8}
.a3t-res{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;padding:16px;animation:pop .2s}
.a3t-res.ok{background:linear-gradient(180deg,rgba(6,78,59,.55),rgba(2,6,23,.92))}
.a3t-res.bad{background:linear-gradient(180deg,rgba(127,29,29,.6),rgba(2,6,23,.92))}
.a3t-res.info{background:linear-gradient(180deg,rgba(12,74,110,.6),rgba(2,6,23,.92))}
.a3t-res-ph{width:112px;height:112px;border-radius:50%;overflow:hidden;box-shadow:0 0 0 4px #34d399;display:grid;place-items:center;background:#0f172a;margin-bottom:6px}
.a3t-res.bad .a3t-res-ph,.a3t-res-ph.bad{box-shadow:0 0 0 4px #f87171;color:#f87171}.a3t-res.info .a3t-res-ph{box-shadow:0 0 0 4px #38bdf8}
.a3t-res-ph img{width:100%;height:100%;object-fit:cover}.a3t-res-ph .av{width:100%!important;height:100%!important;font-size:36px!important}.a3t-res-ph>.ic{width:48px;height:48px}
.a3t-res-n{font-size:1.2rem;color:#fff}.a3t-res-s{font-size:.82rem;color:#94a3b8}
.a3t-res-d{display:flex;gap:6px;align-items:center;margin-top:6px;font-weight:700;color:#6ee7b7}.a3t-res.info .a3t-res-d{color:#7dd3fc}
.a3t-res-m{display:flex;gap:10px;font-size:.8rem;color:#cbd5e1}
.a3t-foot{display:flex;justify-content:space-between;align-items:center;color:#9fb3cd;font-size:.8rem;padding:10px 14px;background:#10151c}
.a3t-foot b{color:#e2e8f0;font-family:var(--mono);font-size:.95rem}
.a3t-model{display:flex;justify-content:space-between;align-items:center;padding:10px 6px 0;color:#64748b;font-size:.7rem;letter-spacing:.14em}
.a3t-model span{font-weight:800}.a3t-model em{font-style:normal;letter-spacing:.04em}
.a3t-side{display:flex;flex-direction:column;gap:12px;min-width:0}
.a3t-card{background:rgba(15,23,42,.85);border:1px solid #1e293b;border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.a3t-card h4{display:flex;gap:7px;align-items:center;font-size:.86rem;color:#cbd5e1}
.a3t-card select,.a3t-card input{width:100%;height:36px;border-radius:9px;border:1px solid #334155;background:#020617;color:#e2e8f0;padding:0 10px;min-width:0}
.a3t-row{display:flex;gap:6px}.a3t-row input{flex:1}
.a3t-row .btn.ghost{background:#1e293b;border-color:#334155;color:#e2e8f0}
.a3t-seg{display:grid;grid-template-columns:repeat(3,1fr);background:#020617;border:1px solid #1e293b;border-radius:10px;padding:3px;gap:3px}
.a3t-seg button{padding:6px 4px;border-radius:7px;color:#94a3b8;font-weight:600;font-size:.82rem}.a3t-seg button.on{background:#0f766e;color:#fff}
.a3t-stat{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:6px}
.a3t-stat li{background:#020617;border:1px solid #1e293b;border-radius:9px;padding:6px 9px;display:flex;flex-direction:column;min-width:0}
.a3t-stat span{font-size:.7rem;color:#64748b}.a3t-stat b{font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.a3t-stat li.a3t-sync{grid-column:1/-1;flex-direction:row;justify-content:space-between;align-items:center}
.a3t-stat b.ok{color:#34d399}.a3t-stat b.warn{color:#fbbf24}.a3t-stat b.bad{color:#f87171}
.a3t-hint{font-size:.78rem;color:#94a3b8}
.a3t-link{display:inline-flex;gap:6px;align-items:center;color:#5eead4;font-size:.82rem;align-self:flex-start}
.a3t-feedc{flex:1}
.a3t-feed{list-style:none;display:flex;flex-direction:column;gap:6px;max-height:320px;overflow:auto}
.a3t-feed li{display:flex;gap:9px;align-items:center;background:#020617;border:1px solid #1e293b;border-radius:10px;padding:6px 8px}
.a3t-feed li.bad{border-color:#7f1d1d}
.a3t-feed li>div{display:flex;flex-direction:column;min-width:0;flex:1}.a3t-feed li>div b{font-size:.84rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.a3t-feed li>div span{font-size:.72rem;color:#94a3b8}.a3t-feed .av{color:#fff}
.a3t-feed em{font-style:normal;font-weight:700;font-size:.78rem;display:flex;flex-direction:column;align-items:flex-end}.a3t-feed em small{font-weight:500;color:#94a3b8;font-family:var(--mono)}
.a3t-feed em.in{color:#34d399}.a3t-feed em.out{color:#38bdf8}
.a3t-unk{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#451a03;color:#fbbf24;flex:0 0 30px}
.a3t-feed li.mute{color:#64748b;font-size:.82rem;justify-content:center}

@media (max-width:1100px){.a3-hrgrid{grid-template-columns:minmax(0,1fr)}.a3-hrcard{position:static;order:-1}}
@media (max-width:900px){.a3t-main{grid-template-columns:minmax(0,1fr);padding:14px;gap:14px}}
@media (max-width:640px){
  .a3-mini{grid-template-columns:repeat(2,minmax(0,1fr))}
  .a3-codesearch{min-width:0}
  .a3-cov{flex-direction:column;align-items:stretch}.a3-ring{align-self:center}
  .a3t-top{padding:10px 14px}.a3t-op span,.a3t-top .btn span{display:none}.a3t-title span{display:none}
  .a3t-dev{padding:10px 10px 6px;border-radius:24px}
  .a3t-steps{grid-template-columns:1fr}
}
