:root{--bg: #08080f;--bg2: #0e0e1a;--card: rgba(255, 255, 255, .035);--card-border: rgba(255, 255, 255, .07);--card-hover: rgba(255, 255, 255, .06);--text: #ededf0;--text2: rgba(255, 255, 255, .45);--text3: rgba(255, 255, 255, .22);--accent: #00d4ff;--accent2: #7c5cfc;--blue: #3b82f6;--red: #ef4444;--green: #22c55e;--radius: 16px;--radius-sm: 10px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,sans-serif;background:var(--bg);background-image:radial-gradient(ellipse at 15% 0%,rgba(0,212,255,.06) 0%,transparent 55%),radial-gradient(ellipse at 85% 100%,rgba(124,92,252,.05) 0%,transparent 55%);background-attachment:fixed;color:var(--text);-webkit-font-smoothing:antialiased;min-height:100vh}.app-container{max-width:500px;margin:0 auto;padding:8px 16px 48px}.section-card{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius);padding:18px;margin-bottom:14px;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}.app-header{text-align:center;padding:24px 0 10px}.app-title{font-size:1.8rem;font-weight:700;letter-spacing:-.5px}.gradient-glow-text{background:linear-gradient(135deg,#00e5ff,#3b82f6,#a855f7);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:hue-cycle 6s linear infinite;font-weight:600}@keyframes hue-cycle{0%{filter:hue-rotate(0deg)}to{filter:hue-rotate(-360deg)}}.wage-info{display:flex;align-items:center;justify-content:space-between}.wage-label{font-weight:600;color:var(--text2)}.hint{padding:0 6px;margin-bottom:14px}.caption{font-size:.78rem;color:var(--text2)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:9px 20px;border-radius:var(--radius-sm);font-size:.92rem;font-weight:500;cursor:pointer;border:none;transition:all .18s ease;font-family:inherit}.btn:active{transform:scale(.96)}.btn:disabled{opacity:.3;cursor:default;transform:none}.btn-primary{background:linear-gradient(135deg,var(--accent) 0%,var(--accent2) 100%);color:#fff;box-shadow:0 2px 12px #00d4ff33}.btn-primary:hover{box-shadow:0 4px 20px #00d4ff59}.btn-outline{background:#ffffff0a;border:1px solid var(--card-border);color:var(--accent)}.btn-outline:hover{background:#ffffff14;border-color:#00d4ff40}.btn-sm{padding:6px 14px;font-size:.82rem}.btn-link{background:none;border:none;color:var(--accent);padding:4px 8px;font-weight:500}.btn-link:hover{text-decoration:underline}.btn-punch{flex:1;padding:16px;background:#ffffff08;border:1.5px solid rgba(255,255,255,.12);border-radius:var(--radius);font-size:1.05rem;font-weight:600;color:var(--text);letter-spacing:.5px}.btn-punch:hover{border-color:var(--accent);background:#00d4ff0f;box-shadow:0 0 24px #00d4ff1a,inset 0 0 24px #00d4ff08}.btn-delete{background:none;border:none;color:var(--red);font-size:.78rem;font-weight:500;padding:4px 0;margin-top:8px;cursor:pointer;opacity:0;transition:opacity .15s}.record-card:hover .btn-delete{opacity:1}.btn-delete:hover{text-decoration:underline}.punch-info{display:flex;gap:24px;margin-bottom:6px}.punch-info p{font-size:.95rem;color:var(--text2)}.punch-info p span{color:var(--text);font-weight:500}.punch-buttons{display:flex;gap:14px;margin-top:14px}.punch-status{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;color:var(--green);margin-bottom:8px}.punch-status .dot{width:6px;height:6px;border-radius:50%;background:var(--green);animation:pulse-dot 2s ease infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.3}}.toast{font-size:.8rem;color:var(--accent);margin-top:12px;padding:8px 12px;background:#00d4ff0f;border:1px solid rgba(0,212,255,.1);border-radius:var(--radius-sm)}.month-stepper{display:flex;align-items:center;gap:8px;margin-bottom:14px}.month-label{font-weight:600;flex:1;text-align:center;font-size:1rem}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stat-box{background:#ffffff08;border:1px solid rgba(255,255,255,.05);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:6px}.stat-highlight{grid-column:1 / -1;background:#00d4ff0a;border-color:#00d4ff1a}.stat-label{font-size:.7rem;color:var(--text2);text-transform:uppercase;letter-spacing:.8px;font-weight:500}.stat-value{font-size:1.15rem;font-weight:600}.records-list{padding:4px 0}.records-list>h3{font-size:.72rem;color:var(--text3);text-transform:uppercase;letter-spacing:1px;font-weight:600;margin-bottom:10px;padding:0 4px}.empty-state{text-align:center;color:var(--text3);padding:36px 0;font-size:.9rem}.record-card{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius);padding:14px 16px;margin-bottom:10px;cursor:pointer;transition:all .18s ease;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.record-card:hover{background:var(--card-hover);border-color:#00d4ff26;transform:translateY(-2px);box-shadow:0 6px 24px #0000004d}.record-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.record-date{font-weight:600;font-size:.95rem}.record-times{display:flex;gap:20px;font-size:.85rem;color:var(--text2);margin-bottom:6px}.record-details{display:flex;align-items:center;gap:8px;font-size:.8rem;color:var(--text3)}.record-spacer{flex:1}.badge{color:var(--accent2);font-weight:700;font-size:.9rem}.record-desc{font-size:.8rem;color:var(--text2);margin-top:6px;font-style:italic;padding-left:1px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:100;padding:16px;animation:fade-in .18s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--bg2);border:1px solid var(--card-border);border-radius:var(--radius);padding:28px;width:100%;max-width:440px;max-height:88vh;overflow-y:auto;animation:slide-up .25s cubic-bezier(.16,1,.3,1);box-shadow:0 24px 80px #0009}.modal-alert{text-align:center}.modal-alert p{margin:20px 0;font-size:1rem;color:var(--text2)}@keyframes slide-up{0%{opacity:0;transform:translateY(30px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-content h2{margin-bottom:22px;font-size:1.2rem;font-weight:700}.form-section{margin-bottom:20px}.form-section h3{font-size:.7rem;color:var(--text2);text-transform:uppercase;letter-spacing:.8px;font-weight:600;margin-bottom:10px}.form-section label{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-size:.92rem;color:var(--text)}.form-section input[type=number],.form-section input[type=text]{width:100%;padding:12px 14px;background:#ffffff0a;border:1px solid var(--card-border);border-radius:var(--radius-sm);font-size:1rem;color:var(--text);outline:none;font-family:inherit;transition:border-color .18s,box-shadow .18s}.form-section input[type=number]:focus,.form-section input[type=text]:focus{border-color:var(--accent);box-shadow:0 0 0 3px #00d4ff1a}.form-section input[type=number]::placeholder,.form-section input[type=text]::placeholder{color:var(--text3)}.form-section input[type=time],.form-section input[type=datetime-local]{padding:9px 12px;background:#ffffff0a;border:1px solid var(--card-border);border-radius:var(--radius-sm);font-size:.88rem;color:var(--text);font-family:inherit;outline:none;color-scheme:dark}.form-section input[type=time]:focus,.form-section input[type=datetime-local]:focus{border-color:var(--accent);box-shadow:0 0 0 3px #00d4ff1a}.toggle-label{justify-content:flex-start!important;gap:10px}.toggle-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);cursor:pointer}.form-buttons{display:flex;gap:10px;flex-wrap:wrap}.modal-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;padding-top:16px;border-top:1px solid var(--card-border)}.error-text{color:var(--red);font-weight:600;font-size:.9rem}.modal-content::-webkit-scrollbar{width:4px}.modal-content::-webkit-scrollbar-track{background:transparent}.modal-content::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}@media(max-width:500px){.app-container{padding:6px 10px 36px}.section-card{padding:14px}.modal-content{padding:20px}.punch-info{flex-direction:column;gap:2px}}
