:root{--color-primary: #1f6feb;--color-primary-dark: #1552b0;--color-danger: #d1453b;--color-bg: #f5f6f8;--color-surface: #ffffff;--color-text: #1b1f24;--color-text-muted: #6b7280;--color-border: #e2e5ea;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 16px rgba(0, 0, 0, .12);--bottom-nav-height: 64px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--color-bg);color:var(--color-text);-webkit-tap-highlight-color:transparent}button,input{font-family:inherit;font-size:1rem}.app-loading{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--color-text-muted)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-4)}.login-card{width:100%;max-width:360px;background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-6) var(--space-5);display:flex;flex-direction:column;gap:var(--space-3);text-align:center}.login-card h1{margin:0}.login-subtitle{color:var(--color-text-muted);margin:0 0 var(--space-3)}.login-card input{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.login-error,.form-error{color:var(--color-danger);font-size:.9rem;margin:0}.form-message{color:var(--color-primary-dark);font-size:.9rem;margin:0}.app-layout{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:10}.app-header h1{font-size:1.2rem;margin:0}.logout-btn{background:none;border:none;color:var(--color-text-muted);cursor:pointer}.app-content{flex:1;padding:var(--space-4);padding-bottom:calc(var(--bottom-nav-height) + var(--space-6));max-width:720px;width:100%;margin:0 auto}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:var(--bottom-nav-height);background:var(--color-surface);border-top:1px solid var(--color-border);display:flex;padding-bottom:env(safe-area-inset-bottom)}.bottom-nav-item{flex:1;border:none;background:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--color-text-muted);font-size:.75rem;cursor:pointer}.bottom-nav-item.active{color:var(--color-primary)}.bottom-nav-icon{font-size:1.3rem}.period-switcher{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-4)}.period-tabs{display:flex;background:var(--color-surface);border-radius:var(--radius-md);padding:4px;box-shadow:var(--shadow-sm)}.period-tab{flex:1;border:none;background:none;padding:var(--space-2);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-muted)}.period-tab.active{background:var(--color-primary);color:#fff}.period-nav{display:flex;align-items:center;gap:var(--space-2)}.period-nav-btn{flex:0 0 auto;min-width:36px;border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);cursor:pointer;font-size:1.1rem;line-height:1}.period-label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;font-weight:600;text-transform:capitalize;font-size:clamp(.8rem,3vw,.95rem)}.period-today-btn{flex:0 0 auto;width:auto;border:1px solid var(--color-border);background:var(--color-surface);border-radius:999px;padding:4px var(--space-2);font-size:.75rem;cursor:pointer;color:var(--color-text-muted);white-space:nowrap}.period-summary{display:flex;gap:var(--space-3);margin-bottom:var(--space-4)}.period-summary-loading{color:var(--color-text-muted);padding:var(--space-4)}.summary-block{flex:1;background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-4);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--space-1)}.summary-label{font-size:.8rem;color:var(--color-text-muted)}.summary-value{font-size:1.4rem;font-weight:600}.summary-value-pay{color:var(--color-primary-dark)}.export-buttons{display:flex;gap:var(--space-3);margin-bottom:var(--space-4)}.shift-list{display:flex;flex-direction:column;gap:var(--space-2)}.shift-list-empty{color:var(--color-text-muted);text-align:center;padding:var(--space-5)}.shift-item{display:flex;align-items:stretch;gap:var(--space-2);background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.shift-item-main{flex:1;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:2px var(--space-3);text-align:left;background:none;border:none;padding:var(--space-3) var(--space-4);cursor:pointer}.shift-item-delete{border:none;background:none;color:var(--color-text-muted);padding:0 var(--space-3);cursor:pointer;font-size:1.1rem}.shift-item-date{font-weight:600;grid-column:1;grid-row:1}.shift-item-time{color:var(--color-text-muted);font-size:.9rem;grid-column:1;grid-row:2}.shift-item-midnight{color:var(--color-primary)}.shift-item-duration{grid-column:2;grid-row:1;font-weight:600;text-align:right}.shift-item-pay{grid-column:2;grid-row:2;color:var(--color-text-muted);text-align:right;font-size:.9rem}.fab{position:fixed;right:var(--space-4);bottom:calc(var(--bottom-nav-height) + var(--space-4));width:56px;height:56px;border-radius:50%;background:var(--color-primary);color:#fff;border:none;font-size:2rem;line-height:1;box-shadow:var(--shadow-md);cursor:pointer;z-index:20}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:flex-end;z-index:30}.modal-sheet{width:100%;max-height:92vh;overflow-y:auto;background:var(--color-surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:var(--space-5) var(--space-4) calc(var(--space-6) + env(safe-area-inset-bottom))}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.modal-header h2{margin:0;font-size:1.1rem}.modal-close{border:none;background:none;font-size:1.6rem;line-height:1;color:var(--color-text-muted);cursor:pointer;padding:var(--space-1)}.shift-form{display:flex;flex-direction:column;gap:var(--space-4)}.field{display:flex;flex-direction:column;gap:var(--space-1);font-size:.85rem;color:var(--color-text-muted)}.field input{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text)}.field-row{display:flex;gap:var(--space-3)}.field-row .field{flex:1}.duration-preview{margin:0;color:var(--color-primary-dark);font-weight:600}.duration-preview-total{border-top:1px solid var(--color-border);padding-top:var(--space-3)}.range-list{display:flex;flex-direction:column;gap:var(--space-3)}.range-row{display:flex;flex-direction:column;gap:var(--space-1);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border)}.range-row:last-child{border-bottom:none;padding-bottom:0}.range-row .field-row{align-items:flex-end}.range-remove-btn{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-danger);border-radius:var(--radius-sm);width:44px;height:44px;flex:0 0 auto;cursor:pointer;font-size:1.2rem}.add-range-btn{flex:none}.modal-actions{display:flex;gap:var(--space-3);margin-top:var(--space-2)}.btn{flex:1;padding:var(--space-3);border-radius:var(--radius-sm);border:none;cursor:pointer;font-weight:600;text-align:center;text-decoration:none;display:inline-block}.btn-primary{background:var(--color-primary);color:#fff}.btn-secondary{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text)}.btn-danger{background:#fdecea;color:var(--color-danger)}.btn:disabled{opacity:.6;cursor:not-allowed}.settings-page h2{margin-top:0}@media (min-width: 768px){.app-content{padding-bottom:var(--space-6)}.modal-overlay{align-items:center;justify-content:center}.modal-sheet{max-width:480px;border-radius:var(--radius-lg);max-height:88vh}.period-switcher{flex-direction:row;align-items:center;justify-content:space-between}.period-tabs{max-width:320px}.period-nav{max-width:380px}}
