*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#1a1a1a;background:#f5f6f8}.app-layout{display:flex;flex-direction:column;min-height:100vh}.app-layout>header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.25rem;background:#1f2937;color:#fff}.topbar-user{display:flex;align-items:center;gap:.75rem;font-size:.9rem}.topbar-user a{color:#fff;text-decoration:underline}.topbar-user button{border:1px solid #4b5563;background:transparent;color:#fff;padding:.35rem .75rem;border-radius:4px;cursor:pointer}.app-body{display:flex;flex:1}.app-body>nav{width:220px;flex-shrink:0;background:#fff;border-right:1px solid #e2e2e2;padding:1rem 0}.app-body>nav ul{list-style:none;margin:0;padding:0}.app-body>nav a{display:block;padding:.6rem 1.25rem;color:#374151;text-decoration:none}.app-body>nav a.active{background:#eef2ff;color:#4338ca;font-weight:600}.app-body>main{flex:1;padding:1.5rem}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center}.login-form{display:flex;flex-direction:column;gap:.75rem;width:min(320px,100% - 2rem);padding:2rem;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a}.login-form label{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem}.login-form input{padding:.5rem;border:1px solid #d1d5db;border-radius:4px;font-size:1rem}.login-form button{padding:.6rem;border:none;border-radius:4px;background:#4338ca;color:#fff;font-weight:600;cursor:pointer}.login-form button:disabled{opacity:.6;cursor:not-allowed}.login-error{color:#b91c1c;font-size:.85rem;margin:0}.tempo-quick-add{margin-top:1.5rem;max-width:360px}.worklog-form{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem;padding:1rem;background:#fff;border:1px solid #e2e2e2;border-radius:8px}.worklog-form label,.tempo-quick-add label{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem}.worklog-form input,.worklog-form textarea,.tempo-quick-add input{padding:.5rem;border:1px solid #d1d5db;border-radius:4px;font-size:1rem;font-family:inherit}.worklog-form button{align-self:flex-start;padding:.5rem 1rem;border:none;border-radius:4px;background:#4338ca;color:#fff;font-weight:600;cursor:pointer}.worklog-form button:disabled{opacity:.6;cursor:not-allowed}.worklog-form-error{color:#b91c1c;font-size:.85rem;margin:0}.task-search{position:relative}.task-search-hint{margin:.25rem 0 0;font-size:.8rem;color:#6b7280}.task-search-results{list-style:none;margin:.25rem 0 0;padding:0;border:1px solid #d1d5db;border-radius:4px;background:#fff;max-height:220px;overflow-y:auto}.task-search-results li+li{border-top:1px solid #f0f0f0}.task-search-results button{width:100%;text-align:left;padding:.5rem;border:none;background:none;cursor:pointer;font-size:.85rem}.task-search-results button:hover{background:#f3f4f6}.task-search-client{color:#6b7280}.task-search-empty{padding:.5rem;color:#9ca3af;font-size:.85rem}.tempo-selected-task{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .75rem;background:#eef2ff;border-radius:6px;font-size:.9rem}.tempo-selected-task p{margin:0}.page-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.table-scroll{overflow-x:auto}.button-link{display:inline-block;padding:.5rem 1rem;border-radius:4px;background:#4338ca;color:#fff;text-decoration:none;font-weight:600;font-size:.9rem}.data-table{width:100%;border-collapse:collapse;margin-top:1rem;background:#fff}.data-table th,.data-table td{text-align:left;padding:.6rem .75rem;border-bottom:1px solid #e2e2e2}.view-toggle{display:flex;gap:.25rem}.task-list-filters{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:.5rem}.task-list-filters label{display:flex;flex-direction:column;font-size:.8rem;gap:.25rem}.sortable-column{background:none;border:none;padding:0;font:inherit;font-weight:600;cursor:pointer;color:inherit}.export-buttons{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin:.75rem 0;font-size:.85rem}.export-buttons-label{color:#4b5563}.client-fields{display:grid;grid-template-columns:max-content 1fr;gap:.4rem 1rem;margin-top:1rem}.client-fields dt{font-weight:600;color:#4b5563}.client-fields dd{margin:0}.client-prefix{color:#6b7280;font-size:.85em;font-weight:400}.client-form,.settings-form,.user-form{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem;padding:1rem;background:#fff;border:1px solid #e2e2e2;border-radius:8px;max-width:480px}.client-form label,.settings-form label,.user-form label{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem}.client-form input,.client-form select,.settings-form input,.user-form input,.user-form select{padding:.5rem;border:1px solid #d1d5db;border-radius:4px;font-size:1rem;font-family:inherit}.client-form-actions{display:flex;gap:.5rem}.form-error{color:#b91c1c;font-size:.85rem;margin:0}.form-success{color:#15803d;font-size:.85rem;margin:0}.btn-primary,.btn-secondary{align-self:flex-start;padding:.5rem 1rem;border-radius:4px;font-weight:600;font-size:.9rem;cursor:pointer}.btn-primary{border:none;background:#4338ca;color:#fff}.btn-secondary{border:1px solid #d1d5db;background:#fff;color:#374151}.btn-primary:disabled,.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.inline-edit{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.inline-edit input{padding:.35rem .5rem;border:1px solid #d1d5db;border-radius:4px;font-size:.9rem;font-family:inherit}.inline-edit .form-error{flex-basis:100%}.password-edit{margin-top:.5rem}.nav-badge{display:inline-block;margin-left:.5rem;padding:.05rem .45rem;border-radius:999px;background:#dc2626;color:#fff;font-size:.75rem;font-weight:600}.notification-list{list-style:none;margin:1rem 0 0;padding:0;display:flex;flex-direction:column;gap:.5rem}.notification-list li{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.75rem 1rem;background:#fff;border:1px solid #e2e2e2;border-radius:8px}.notification-list li.unread{border-left:3px solid #4338ca}.notification-list li p{margin:.25rem 0;color:#4b5563}.notification-list li time{font-size:.8rem;color:#9ca3af}.notification-list li.empty{justify-content:center;color:#6b7280}.projects-section{margin-top:2rem}.page-header-actions{display:flex;gap:.5rem;flex-wrap:wrap}.kanban-board{display:flex;gap:1rem;overflow-x:auto;padding-bottom:.5rem}.kanban-column{flex:1 0 220px;min-width:220px;background:#f9fafb;border:1px solid #e2e2e2;border-radius:8px;padding:.75rem}.kanban-column-title{display:flex;align-items:center;gap:.4rem;font-size:.85rem;margin:0 0 .75rem;color:#374151}.kanban-column-count{background:#e5e7eb;color:#4b5563;border-radius:999px;padding:0 .5rem;font-size:.75rem}.kanban-column-cards{display:flex;flex-direction:column;gap:.5rem}.kanban-card{background:#fff;border:1px solid #e2e2e2;border-radius:6px;padding:.5rem .6rem;cursor:grab}.kanban-card:active{cursor:grabbing}.kanban-card-code{display:block;color:#4338ca;font-size:.75rem}.kanban-card-name{margin:.2rem 0 .4rem;font-size:.85rem}.kanban-card-meta{display:flex;justify-content:space-between;font-size:.7rem;color:#6b7280}.kanban-empty{color:#9ca3af;font-size:.8rem;margin:0}.tempo-week-nav{display:flex;align-items:center;gap:.75rem;font-size:.9rem}.tempo-week-total{margin:0 0 1rem;color:#4b5563}.tempo-day-total{color:#4338ca;font-weight:600;font-size:.75rem}.tempo-grid-wrapper{margin-top:1rem;background:#fff;border:1px solid #e2e2e2;border-radius:8px;overflow-x:auto}.tempo-header-row,.tempo-grid{display:flex;min-width:640px}.tempo-header-row{border-bottom:1px solid #e2e2e2}.tempo-time-axis-spacer{width:56px;flex-shrink:0}.tempo-day-header{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;padding:.5rem .25rem;font-size:.8rem;border-left:1px solid #f0f0f0}.tempo-time-axis{position:relative;width:56px;flex-shrink:0;border-right:1px solid #e2e2e2}.tempo-hour-label{position:absolute;right:.4rem;transform:translateY(-50%);font-size:.75rem;color:#6b7280}.tempo-days{display:flex;flex:1}.tempo-day-column{display:flex;flex-direction:column;flex:1;min-width:80px;border-left:1px solid #f0f0f0}.tempo-day-track{position:relative}.tempo-hour-line{position:absolute;left:0;right:0;border-top:1px solid #f3f4f6}.tempo-worklog-block{position:absolute;left:4px;right:4px;background:#4338ca;color:#fff;border-radius:4px;padding:.15rem .4rem;font-size:.7rem;cursor:grab;overflow:hidden;line-height:1.2}.tempo-untimed-list{list-style:none;margin:0;padding:.4rem;font-size:.7rem;color:#6b7280}.tempo-untimed-list button{border:none;background:none;padding:0;color:inherit;font:inherit;cursor:pointer;text-align:left}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#11182766;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:20}.modal-panel{background:#fff;border-radius:8px;padding:1.25rem;width:100%;max-width:360px;max-height:90vh;overflow-y:auto}.modal-panel h2{margin-top:0}.modal-actions{display:flex;gap:.5rem}.btn-danger{border:none;background:#b91c1c;color:#fff}.btn-danger:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 768px){.app-layout>header{flex-wrap:wrap;gap:.5rem;padding:.6rem 1rem}.app-body{flex-direction:column}.app-body>nav{width:100%;border-right:none;border-bottom:1px solid #e2e2e2;padding:.4rem 0;overflow-x:auto}.app-body>nav ul{display:flex;gap:.25rem;padding:0 .5rem}.app-body>nav a{padding:.5rem .9rem;white-space:nowrap;border-radius:6px}.app-body>main{padding:1rem}.client-fields{grid-template-columns:1fr}.client-fields dt{margin-top:.5rem}.client-form,.settings-form,.user-form,.worklog-form{max-width:none}}@media (max-width: 480px){.inline-edit{flex-direction:column;align-items:stretch}.notification-list li{flex-direction:column}}
