:root { --qp-blue: #173e68; --qp-blue-2: #0f2e50; --qp-green: #157347; --qp-red: #b42318; --qp-amber: #a15c00; --qp-bg: #f4f7fa; --qp-border: #d8e0e8; --qp-text: #182230; }
.qp-app { box-sizing: border-box; max-width: 1120px; margin: 0 auto; padding: 24px; color: var(--qp-text); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.qp-app *, .qp-app *::before, .qp-app *::after { box-sizing: border-box; }
.qp-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 26px; }
.qp-header h1 { margin: 3px 0 0; font-size: clamp(1.65rem, 4vw, 2.5rem); line-height: 1.1; }
.qp-eyebrow { color: #5b6b7c; font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.qp-clock { font-size: clamp(1.5rem, 4vw, 2.2rem); font-variant-numeric: tabular-nums; font-weight: 800; }
.qp-message { padding: 14px 16px; margin: 0 0 18px; border: 1px solid #b9c8d8; border-radius: 12px; background: #edf4fb; }
.qp-message.qp-error, .qp-error { color: #7a1b12; border-color: #f2b8b5; background: #fff0ef; }
.qp-message.qp-success, .qp-success { color: #0d5734; border-color: #a6d8bd; background: #ecf8f1; }
.qp-warning { color: #734400; border-color: #ecc98e; background: #fff7e8; }
.qp-employee-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
.qp-terminal-actions { display: flex; justify-content: flex-end; margin: -12px 0 18px; }
.qp-person { min-height: 148px; padding: 22px; border: 2px solid var(--qp-border); border-radius: 16px; background: #fff; color: var(--qp-text); text-align: left; cursor: pointer; transition: border-color .12s, transform .12s; }
.qp-person:hover, .qp-person:focus-visible { border-color: var(--qp-blue); transform: translateY(-1px); outline: none; }
.qp-person:disabled { opacity: .55; cursor: wait; }
.qp-person strong { display: block; margin-bottom: 12px; font-size: 1.35rem; }
.qp-state { display: inline-block; margin-right: 7px; padding: 4px 9px; border-radius: 999px; font-size: .78rem; font-weight: 800; text-transform: uppercase; }
.qp-state.qp-dentro { color: #0d5734; background: #dff5e9; }
.qp-state.qp-fuori { color: #5d6773; background: #edf0f3; }
.qp-next { display: block; margin-top: 14px; color: var(--qp-blue); font-weight: 750; text-transform: capitalize; }
.qp-dialog { position: fixed; z-index: 99999; inset: 0; display: grid; place-items: center; padding: 20px; background: rgba(10, 25, 43, .7); }
.qp-dialog[hidden], .qp-card[hidden], [hidden] { display: none !important; }
.qp-dialog-card { width: min(480px, 100%); padding: 34px; border-radius: 20px; background: #fff; text-align: center; box-shadow: 0 24px 80px rgba(0,0,0,.28); }
.qp-registration-card { max-height: calc(100vh - 32px); overflow: auto; text-align: left; }
.qp-registration-card > h2, .qp-registration-card > p { text-align: center; }
.qp-dialog-buttons { display: flex; gap: 10px; margin-top: 22px; }
.qp-dialog-buttons .qp-button { flex: 1; }
.qp-copy-field { width: 100%; min-height: 48px; margin: 12px 0; padding: 10px 12px; border: 1px solid #aab8c7; border-radius: 9px; font: inherit; }
#qp-registration-result .qp-button { width: 100%; margin-top: 10px; }
.qp-dialog-icon { display: grid; place-items: center; width: 64px; height: 64px; margin: 0 auto 18px; border-radius: 50%; color: #fff; background: var(--qp-blue); font-size: 1.8rem; font-weight: 900; }
.qp-dialog-card h2 { margin: 0 0 8px; font-size: 1.55rem; }
.qp-card { padding: 22px; border: 1px solid var(--qp-border); border-radius: 16px; background: #fff; box-shadow: 0 2px 7px rgba(27, 50, 74, .05); }
.qp-card + .qp-card { margin-top: 16px; }
.qp-centered { max-width: 580px; margin: 40px auto; text-align: center; }
.qp-action-card { margin-bottom: 18px; border: 2px solid var(--qp-blue); text-align: center; }
.qp-action-card h2 { margin: 8px 0; font-size: 1.55rem; }
.qp-summary-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
.qp-big-value { display: block; margin-top: 10px; font-size: clamp(1.7rem, 6vw, 2.6rem); text-transform: capitalize; }
.qp-big-value.qp-dentro { color: var(--qp-green); }
.qp-big-value.qp-fuori { color: #66717d; }
.qp-big-value.qp-positive, .qp-positive { color: var(--qp-green); }
.qp-big-value.qp-negative, .qp-negative { color: var(--qp-red); }
.qp-month-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); gap: 12px; }
.qp-month-grid div { padding: 12px; border-radius: 10px; background: var(--qp-bg); }
.qp-month-grid span { display: block; color: #637181; font-size: .82rem; }
.qp-month-grid strong { display: block; margin-top: 5px; font-size: 1.08rem; }
.qp-button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; padding: 11px 20px; border: 0; border-radius: 10px; background: var(--qp-blue); color: #fff !important; font: inherit; font-weight: 800; text-decoration: none !important; cursor: pointer; }
.qp-button:hover, .qp-button:focus-visible { background: var(--qp-blue-2); }
.qp-button:disabled { opacity: .55; cursor: wait; }
.qp-button-large { width: 100%; min-height: 64px; margin-top: 10px; font-size: 1.15rem; text-transform: capitalize; }
.qp-button-secondary { color: var(--qp-blue) !important; background: #e9f0f7; }
.qp-field { display: block; margin: 20px 0; font-weight: 700; text-align: left; }
.qp-field input, .qp-field select { width: 100%; min-height: 48px; margin-top: 6px; padding: 10px 12px; border: 1px solid #aab8c7; border-radius: 9px; background: #fff; font: inherit; }
.qp-registration { max-width: 680px; }
.qp-registration .qp-card { padding: clamp(20px, 5vw, 34px); }
.qp-check { display: flex; align-items: flex-start; gap: 10px; margin: 20px 0; line-height: 1.45; }
.qp-check input { width: 20px; height: 20px; flex: 0 0 auto; margin-top: 1px; }
.qp-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.qp-timeline-row { display: grid; grid-template-columns: 1fr auto auto; gap: 14px; align-items: center; padding: 13px 0; border-bottom: 1px solid #e7ebef; }
.qp-timeline-row span { font-weight: 800; text-transform: capitalize; }
.qp-timeline-row strong { font-size: 1.15rem; font-variant-numeric: tabular-nums; }
.qp-timeline-row small { min-width: 70px; color: #637181; text-align: right; }
.qp-muted, .qp-footnote { color: #637181; }
.qp-footnote { margin-top: 18px; font-size: .88rem; text-align: center; }
@media (max-width: 600px) { .qp-app { padding: 16px; } .qp-header { align-items: flex-start; } .qp-clock { font-size: 1.25rem; } .qp-summary-grid { grid-template-columns: 1fr 1fr; gap: 10px; } .qp-card { padding: 18px; } .qp-timeline-row { grid-template-columns: 1fr auto; } .qp-timeline-row small { grid-column: 1 / -1; text-align: left; } }
.qp-management{max-width:1400px;margin:auto;padding:24px}.qp-management nav{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:28px}.qp-management table{border-collapse:collapse;width:100%;display:block;overflow-x:auto;margin:20px 0}.qp-management td,.qp-management th{padding:12px;text-align:left;border-bottom:1px solid #d9e0e8;vertical-align:top}.qp-management th{background:#eef2f7}.qp-management input,.qp-management select,.qp-management textarea{font:inherit;padding:9px;border:1px solid #bac5d2;border-radius:6px;max-width:100%;box-sizing:border-box}.qp-management button,.qp-management .button{display:inline-block;padding:10px 16px;background:#182b49;color:white;border:0;border-radius:6px;cursor:pointer;text-decoration:none}.qp-management .notice{padding:12px;background:#edf5ef}.qp-management .notice-error{background:#fff0ed}.qp-management details form{display:grid;gap:8px;min-width:250px}.qp-management .card{background:white;border-radius:10px;padding:18px}
