@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@500&display=swap";.punch-page{background:linear-gradient(160deg,#1e293b 0%,#0f172a 100%);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.punch-card{background:var(--surface);text-align:center;border-radius:16px;width:100%;max-width:380px;padding:2.5rem 2rem;box-shadow:0 8px 32px #00000040}.punch-clock-display{flex-direction:column;gap:.15rem;margin-bottom:1.25rem;display:flex}.punch-time{font-family:var(--mono);letter-spacing:.02em;color:var(--text);font-size:2.25rem;font-weight:500}.punch-date{color:var(--text-muted);font-size:.8rem}.punch-title{color:var(--primary);letter-spacing:-.02em;margin-bottom:1.25rem;font-size:1.1rem;font-weight:700}.punch-msg{border-radius:var(--radius);margin-bottom:1rem;padding:.6rem .75rem;font-size:.825rem;font-weight:500}.punch-msg-success{background:var(--success-light);color:var(--success)}.punch-msg-error{background:var(--danger-light);color:var(--danger)}.punch-fields{text-align:left;flex-direction:column;gap:.75rem;margin-bottom:1.25rem;display:flex}.punch-btn{border-radius:var(--radius);width:100%;padding:.75rem;font-size:1rem;font-weight:600}.punch-hint{color:var(--text-muted);margin-top:1rem;font-size:.75rem;line-height:1.4}.admin-link{color:#ffffff73;margin-top:1.5rem;font-size:.8rem}.admin-link:hover{color:#ffffffb3}.admin-shell{min-height:100vh;display:flex}.sidebar{color:#e5e7eb;background:#111827;flex-direction:column;flex-shrink:0;width:220px;height:100vh;display:flex;position:sticky;top:0}.sidebar-brand{letter-spacing:-.02em;border-bottom:1px solid #ffffff14;padding:1.25rem 1rem;font-size:1rem;font-weight:700}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:.75rem .5rem;display:flex}.nav-item{color:#9ca3af;border-radius:6px;align-items:center;gap:.6rem;padding:.55rem .75rem;font-size:.825rem;font-weight:500;text-decoration:none;transition:background .12s,color .12s;display:flex}.nav-item:hover{color:#e5e7eb;background:#ffffff0f;text-decoration:none}.nav-item.active{color:#93bbfd;background:#2563eb40}.nav-icon{text-align:center;width:1.2rem;font-size:.9rem}.sidebar-footer{border-top:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:1rem;display:flex}.sidebar-user{color:#9ca3af;font-size:.75rem}.admin-main{flex:1;max-width:1100px;padding:2rem;overflow-y:auto}@media (width<=768px){.admin-shell{flex-direction:column}.sidebar{flex-flow:wrap;align-items:center;width:100%;height:auto;position:static}.sidebar-brand{border-bottom:none;padding:.75rem 1rem}.sidebar-nav{flex-direction:row;flex:none;width:100%;padding:0 .5rem .5rem;overflow-x:auto}.sidebar-footer{border-top:none;width:100%;padding:.5rem 1rem}.admin-main{padding:1rem}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f6f7f9;--surface:#fff;--surface-alt:#eef0f4;--border:#d8dce4;--text:#1a1d24;--text-muted:#6b7280;--primary:#2563eb;--primary-hover:#1d4ed8;--primary-light:#dbeafe;--success:#16a34a;--success-light:#dcfce7;--danger:#dc2626;--danger-light:#fee2e2;--warning:#d97706;--warning-light:#fef3c7;--radius:8px;--radius-lg:12px;--shadow:0 1px 3px #00000014, 0 1px 2px #0000000a;--shadow-lg:0 4px 12px #0000001a;--font:"Inter", system-ui, -apple-system, sans-serif;--mono:"JetBrains Mono", monospace}html{font-size:16px}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;line-height:1.5}button{font-family:var(--font);cursor:pointer;border-radius:var(--radius);border:none;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:background .15s,transform .1s}button:active{transform:scale(.97)}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-success{background:var(--success);color:#fff}.btn-success:hover{background:#15803d}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:#b91c1c}.btn-ghost{color:var(--text-muted);border:1px solid var(--border);background:0 0}.btn-ghost:hover{background:var(--surface-alt)}input,select{font-family:var(--font);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);outline:none;width:100%;padding:.5rem .75rem;font-size:.875rem;transition:border-color .15s}input:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}label{color:var(--text-muted);margin-bottom:.25rem;font-size:.8rem;font-weight:500;display:block}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:1.5rem}table{border-collapse:collapse;width:100%;font-size:.875rem}th{text-align:left;color:var(--text-muted);border-bottom:2px solid var(--border);white-space:nowrap;padding:.625rem .75rem;font-size:.75rem;font-weight:600}td{border-bottom:1px solid var(--surface-alt);padding:.625rem .75rem}tr:hover td{background:var(--surface-alt)}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.badge{border-radius:999px;padding:.15rem .5rem;font-size:.7rem;font-weight:600;display:inline-block}.badge-success{background:var(--success-light);color:var(--success)}.badge-danger{background:var(--danger-light);color:var(--danger)}.badge-warning{background:var(--warning-light);color:var(--warning)}.badge-info{background:var(--primary-light);color:var(--primary)}
