:root{--green:#2f7d54;--green-dark:#1f5c3d;--green-bg:#eef6f1;--border:#e3ebe6;--text:#26312c;--text-muted:#5c6b63;color:var(--text);background:var(--green-bg);font:15px/1.5 system-ui,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0}#root{min-height:100vh}.page-center{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.card{border:1px solid var(--border);background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 10px #0000000a}.card-title{color:var(--green-dark);margin:0 0 4px;font-size:17px}.brand{color:var(--green-dark);margin-bottom:6px;font-size:20px;font-weight:700}.subtitle{color:var(--text-muted);font-size:14px}.row-between{justify-content:space-between;align-items:center;gap:12px;margin-top:8px;display:flex}.field{text-align:left;margin-bottom:14px}.field label{color:var(--text-muted);margin-bottom:4px;font-size:13px;display:block}.field input{border:1px solid var(--border);border-radius:8px;width:100%;padding:9px 10px;font-size:14px}.btn{background:var(--green);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:9px 16px;font-size:14px;font-weight:600}.btn:hover{background:var(--green-dark)}.btn:disabled{opacity:.6;cursor:default}.btn-ghost{color:var(--green-dark);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;padding:8px 14px;font-size:14px}.btn-ghost:hover{background:var(--green-bg)}.alert{border-radius:8px;margin-bottom:12px;padding:10px 12px;font-size:13px}.alert-warn{color:#9a6a00;background:#fff6e0}.alert-error{color:#a5301f;background:#fdecea}.app-shell{min-height:100vh}.app-header{border-bottom:1px solid var(--border);background:#fff;padding:14px 24px}.app-main{max-width:900px;margin:0 auto;padding:20px 24px 60px}.ci-admin-input{border:1px solid #cfd8d3;border-radius:8px;padding:8px 10px;font-size:14px}.ci-admin-table{border-collapse:collapse;width:100%}.ci-admin-table th,.ci-admin-table td{text-align:left;border:1px solid #e3ebe6;padding:6px 10px;font-size:13px}.ci-admin-table th{color:#1f5c3d;background:#eef6f1}.ci-admin-badge{color:#1f5c3d;background:#e4f5ea;border-radius:8px;padding:4px 10px;font-size:13px}.ci-wrap{background:#eef6f1;justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.ci-card{text-align:center;background:#fff;border-radius:16px;width:100%;max-width:360px;padding:32px 24px;box-shadow:0 4px 24px #0000001f}.ci-card-error{color:#a5301f;font-size:15px;line-height:1.5}.ci-no{color:#1f5c3d;margin-bottom:10px;font-size:22px;font-weight:700}.ci-status{border-radius:8px;margin-bottom:24px;padding:8px 12px;font-size:15px}.ci-status-in{color:#1f5c3d;background:#e4f5ea}.ci-status-out{color:#666;background:#f2f2f2}.ci-btn{color:#fff;cursor:pointer;letter-spacing:.5px;border:none;border-radius:12px;width:100%;margin-bottom:12px;padding:22px 12px;font-size:20px;font-weight:700}.ci-btn:disabled{opacity:.35;cursor:default}.ci-btn-in{background:#2f7d54}.ci-btn-out{background:#c0392b}.ci-btn-pin{background:#2b5a8c}.ci-btn-secondary{color:#5c6b63;cursor:pointer;background:0 0;border:1px solid #dde5e0;border-radius:10px;width:100%;margin-top:6px;padding:12px;font-size:14px;font-weight:600}.ci-action-row{flex-direction:column;display:flex}.ci-note{width:100%;font:inherit;resize:vertical;box-sizing:border-box;border:1px solid #dde5e0;border-radius:10px;margin-bottom:18px;padding:10px 12px;font-size:13.5px}.ci-pin-input{text-align:center;letter-spacing:10px;box-sizing:border-box;border:2px solid #dde5e0;border-radius:12px;width:100%;margin-bottom:18px;padding:16px;font-size:32px}.ci-pin-error{color:#a5301f;margin:-10px 0 14px;font-size:13px}.ci-scan{flex-direction:column;align-items:center;display:flex}.ci-video-frame{aspect-ratio:1;background:#000;border-radius:12px;width:100%;margin-bottom:16px;position:relative;overflow:hidden}.ci-video-frame video{object-fit:cover;width:100%;height:100%}.ci-scan-box{pointer-events:none;border:3px solid #4fae7e;border-radius:12px;position:absolute;inset:15%}.ci-cam-error{color:#a5301f;padding:20px 0;font-size:14px}.ci-confirm{color:#1f5c3d;margin-top:18px;font-size:14px}.ci-hint{color:#666;font-size:15px}
