:root { --bg-color: #ffffff; --surface-color: #f9fafb; --text-primary: #111827; --text-secondary: #6b7280; --border-color: #e5e7eb; --accent-color: #3b82f6; --accent-hover: #2563eb; --danger-color: #ef4444; --success-color: #10b981; --font-mono: 'JetBrains Mono', 'Fira Code', monospace; } body { background-color: var(--bg-color); color: var(--text-primary); font-family: 'Inter', system-ui, -apple-system, sans-serif; -webkit-font-smoothing: antialiased; } .font-tabular { font-variant-numeric: tabular-nums; font-family: var(--font-mono); } /* Landing Clock */ .hero-clock { font-size: clamp(4rem, 15vw, 10rem); font-weight: 800; letter-spacing: -0.05em; line-height: 1; color: var(--text-primary); } /* Cards & Containers */ .card-precise { background: var(--surface-color); border: 1px solid var(--border-color); border-radius: 4px; transition: all 0.2s ease; } .card-precise:hover { border-color: var(--accent-color); background: #fff; box-shadow: 0 4px 12px rgba(0,0,0,0.03); } .btn-precise { border-radius: 4px; font-weight: 500; padding: 0.5rem 1rem; transition: all 0.1s ease; text-transform: uppercase; font-size: 0.75rem; letter-spacing: 0.05em; } /* Timer Display */ .timer-display { font-size: clamp(3rem, 10vw, 6rem); font-weight: 700; color: var(--text-primary); } .timer-sub-display { font-size: 1.5rem; color: var(--text-secondary); } /* Table */ .table-precise { font-size: 0.875rem; } .table-precise th { font-weight: 600; color: var(--text-secondary); text-transform: uppercase; font-size: 0.7rem; letter-spacing: 0.05em; border-bottom: 2px solid var(--border-color); } .badge-best { background-color: var(--success-color); color: white; font-size: 0.65rem; padding: 2px 6px; border-radius: 2px; } /* SPA Transitions */ .view-section { display: none; } .view-section.active { display: block; } /* Forms */ .form-control-precise { border-radius: 4px; border: 1px solid var(--border-color); font-size: 0.875rem; padding: 0.4rem 0.75rem; } .form-control-precise:focus { border-color: var(--accent-color); box-shadow: none; } #session-title { background-color: var(--surface-color); border-width: 0 0 2px 0; border-radius: 0; padding-left: 0; } #session-title:focus { background-color: transparent; border-color: var(--accent-color); } /* Activity Builder */ #custom-builder { background: var(--surface-color); padding: 1.5rem; border: 1px dashed var(--border-color); border-radius: 8px; } .activity-row { transition: transform 0.2s ease; box-shadow: 0 2px 4px rgba(0,0,0,0.02); } .activity-row:hover { transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0,0,0,0.05); } /* Options Dropdown */ .dropdown-menu { box-shadow: 0 10px 25px rgba(0,0,0,0.1) !important; border: 1px solid var(--border-color); } .dropdown-header { color: var(--text-primary); font-weight: 700; letter-spacing: 0.1em; } /* Utility */ .tracking-widest { letter-spacing: 0.1em; } .tracking-wider { letter-spacing: 0.05em; } .fs-small { font-size: 0.75rem; } .fs-tiny { font-size: 0.65rem; } .cursor-pointer { cursor: pointer; } /* Alerts / Finishes */ .timer-finish { animation: flash 1s infinite; } @keyframes flash { 0% { opacity: 1; } 50% { opacity: 0.5; } 100% { opacity: 1; } } /* Settings Switches */ .form-check-input:checked { background-color: var(--accent-color); border-color: var(--accent-color); }