*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%}body{-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}*{box-sizing:border-box}:root{--primary:#f5f0e8;--primary-dark:#ddd8cf;--danger:#a05555;--danger-hover:#8b4949;--success:#5a8f6f;--text:#e8e8e8;--text-light:#a0a0a0;--border:#2a2a2a;--bg:#0f0f0f;--bg-light:#1a1a1a;--bg-card:#1a1a1a}body{color:var(--text);background-color:var(--bg);letter-spacing:.4px;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}#root{width:100%;height:100vh}.app{flex-direction:column;height:100%;display:flex}button{cursor:pointer;border:none;border-radius:8px;padding:8px 16px;font-size:21px;font-weight:500;transition:all .2s}input,textarea,select{background-color:var(--bg-light);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 12px;font-family:inherit;transition:all .2s}input:focus,textarea:focus,select:focus{border-color:var(--text);outline:none;box-shadow:0 0 0 3px #f5f0e81a}.btn-primary{background-color:var(--primary);color:#0f0f0f;border:1px solid var(--primary);font-weight:600}.btn-primary:hover{background-color:var(--primary-dark);border-color:var(--primary-dark);color:#0f0f0f}.btn-primary:disabled{background-color:var(--bg-light);border-color:var(--border);color:var(--text-light);cursor:not-allowed;opacity:.5}.btn-secondary{color:var(--text);border:1px solid var(--border);background-color:#0000}.btn-secondary:hover{background-color:var(--bg-card);border-color:var(--text-light)}.btn-secondary:disabled{color:var(--text-light);cursor:not-allowed;opacity:.5}.btn-danger{background-color:var(--danger);color:#fff;border:1px solid var(--danger)}.btn-danger:hover{background-color:var(--danger-hover);border-color:var(--danger-hover)}.btn-back{color:var(--text);cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:8px 12px;font-size:21.12px;display:flex}.btn-back-icon{opacity:.8;width:27px;height:27px}.btn-back:hover{opacity:.7}.btn-back:hover .btn-back-icon{opacity:1}.btn-clock{background-color:var(--success);color:#fff;border:none;border-radius:8px;padding:8px 16px;font-size:27px;font-weight:600}.btn-clock:hover{opacity:.9}.btn-clock.active{background-color:var(--danger)}.project-tile{background-color:var(--bg-card);border:2px solid var(--border);cursor:pointer;border-radius:12px;flex-direction:column;height:230px;padding:20px;transition:transform .18s,background-color .15s;display:flex;position:relative}.project-tile:hover{transform:scale(1.03)}.project-tile.selected{border-color:var(--primary);background-color:#10b98114}.tile-star{cursor:pointer;opacity:0;background:0 0;border:none;justify-content:center;align-items:center;padding:4px;transition:opacity .15s;display:flex;position:absolute;top:8px;right:8px}.tile-star img{width:23px;height:23px}.tile-star.starred,.project-tile:hover .tile-star{opacity:1}.tile-icon{justify-content:center;align-items:center;min-height:52px;margin-bottom:12px;display:flex}.tile-icon .icon-img{filter:brightness(0)invert();width:52px;height:52px}.tile-content{flex-direction:column;flex:1;gap:6px;min-height:0;display:flex}.tile-content h3{color:var(--text);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:18px;font-weight:600;overflow:hidden}.tile-content p{color:var(--text-light);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:14px;line-height:1.4;display:-webkit-box;overflow:hidden}.tile-content p.no-description{opacity:.35;font-style:italic}.tile-footer{flex-shrink:0;justify-content:space-between;align-items:center;margin-top:auto;display:flex}.tile-time{color:var(--text);white-space:nowrap;font-size:16px;font-weight:600}.tile-badge{color:var(--success);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;background-color:#10b98133;border-radius:6px;padding:3px 7px;font-size:13px;font-weight:600}.icon-selector{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.icon-option{border:2px solid var(--border);cursor:pointer;background-color:#0000;border-radius:8px;justify-content:center;align-items:center;min-height:50px;padding:12px;transition:all .2s;display:flex}.icon-option:hover{border-color:var(--text);background-color:var(--bg-card)}.icon-option.active{border-color:var(--text);background-color:var(--bg-card);box-shadow:0 0 0 1px var(--text)}.icon-option img{filter:brightness(0)invert();width:24px;height:24px}[data-theme=light] .icon-option img{filter:invert()brightness(.1)}.dialog-overlay{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#0000004d;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog{background-color:var(--bg-card);border:1px solid var(--border);border-radius:8px;width:100%;max-width:420px;padding:28px;box-shadow:0 20px 60px #0000004d}.dialog h2{letter-spacing:-.3px;margin:0 0 24px;font-size:30px;font-weight:600}.form-group{margin-bottom:20px}.form-group label{color:var(--text);font-size:21px;font-weight:500;display:block}.form-group input{border:1px solid var(--border);background-color:var(--bg-light);width:100%;color:var(--text);border-radius:8px;padding:10px 12px;font-family:inherit;font-size:21px}.dialog-buttons{justify-content:flex-end;gap:12px;margin-top:28px;display:flex}.dialog-buttons button{flex:1}@property --lucky-angle{syntax:"<angle>";inherits:false;initial-value:0deg}.lucky-row{margin-top:16px;display:flex}.lucky-border-wrap{isolation:isolate;border-radius:10px;flex:1;position:relative}.lucky-border-wrap:before{content:"";background:conic-gradient(from var(--lucky-angle), red, #f80, #ff0, #0f0, #0ff, #08f, #80f, red);z-index:-1;border-radius:10px;animation:2s linear infinite rainbow-river;position:absolute;inset:-2px}.btn-lucky{color:#e0d8f0;cursor:pointer;background:#08050fed;border:none;border-radius:8px;width:100%;position:relative;overflow:hidden}.btn-lucky:after{content:"";background:conic-gradient(from var(--lucky-angle), red, #f80, #ff0, #0f0, #0ff, #08f, #80f, red);filter:blur(32px);opacity:.35;animation:2s linear infinite rainbow-river;position:absolute;inset:-20px}@keyframes rainbow-river{to{--lucky-angle:360deg}}.lucky-border-wrap:after{content:"";background:conic-gradient(from var(--lucky-angle), red, #f80, #ff0, #0f0, #0ff, #08f, #80f, red);filter:blur(14px);opacity:0;z-index:-2;border-radius:12px;transition:opacity .6s;animation:2s linear infinite rainbow-river;position:absolute;inset:-6px}.lucky-border-wrap:hover:after{opacity:.7;transition:opacity .6s}.input-over{box-shadow:none;outline:none;border-color:#ef4444!important}.input-over:focus{outline:none;box-shadow:0 0 0 3px #ef44444d;border-color:#ef4444!important}.field-error{color:#ef4444;margin:6px 0 0;font-size:13px}.field-label-row{justify-content:space-between;align-items:baseline;margin-bottom:8px;display:flex}.field-label-row label{margin-bottom:0}.char-counter{color:var(--text-light);opacity:.5;font-variant-numeric:tabular-nums;font-size:13px;transition:color .2s,opacity .2s}.char-counter.near{opacity:1;color:#eab308}.char-counter.over{opacity:1;color:#ef4444;font-weight:600}.btn-sign-in-provider{border:1px solid var(--border);width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border-radius:8px;margin-bottom:8px;padding:14px 16px;font-size:21px;transition:all .2s;display:block}.btn-sign-in-provider:last-child{margin-bottom:0}.btn-sign-in-provider:hover{background-color:var(--bg-card);border-color:var(--text-light)}.activity-calendar{padding:8px 0 0}.activity-tooltip{background:var(--bg-light);border:1px solid var(--border);border-radius:8px;padding:8px 12px;font-size:13px}.activity-tooltip-date{color:var(--text-light);margin-bottom:2px}.activity-tooltip-time{color:var(--text);font-weight:500}.project-bar-chart{padding:8px 0 0}.project-bar-chart-empty{height:360px;color:var(--text-light);justify-content:center;align-items:center;font-size:15px;display:flex}.project-bar-tooltip{background:var(--bg-light);border:1px solid var(--border);border-radius:8px;padding:8px 12px;font-size:13px}.project-bar-tooltip-name{color:var(--text-light);margin-bottom:2px}.project-bar-tooltip-time{color:var(--text);font-weight:500}@font-face{font-family:CantarellTitle;src:url(/fonts/Cantarell-Bold.otf)format("opentype");font-weight:700;font-style:normal}.dashboard-view{flex-direction:column;height:100%;display:flex;overflow:hidden}.dashboard-header{border-bottom:1px solid var(--border);background-color:var(--bg);flex-shrink:0;justify-content:space-between;align-items:center;padding:24px 32px;display:flex}.dashboard-header h1{letter-spacing:-.5px;margin:0;font-family:CantarellTitle,sans-serif;font-size:42px;font-weight:700}.header-controls{align-items:center;gap:12px;display:flex}.header-controls .btn-primary,.projects-header-actions .btn-primary{font-size:16.8px}.main-content{flex:1;padding:32px;overflow-y:auto}.projects-section{flex-direction:column;gap:40px;width:100%;display:flex}.projects-container{border:1px solid var(--border);border-radius:16px;padding:24px}.projects-title{color:var(--text);margin:0;font-size:21px;font-weight:600}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));align-content:start;gap:32px;display:grid}.empty-state{min-height:200px;color:var(--text-light);grid-column:1/-1;justify-content:center;align-items:center;font-size:24px;display:flex}.projects-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;min-height:42px;margin-bottom:20px;display:flex}.projects-header-left{align-items:center;gap:16px;display:flex}.sort-control{align-items:center;gap:6px;display:flex}.sort-label{color:var(--text-light);white-space:nowrap;font-size:14px}.sort-select{background-color:var(--bg);color:var(--text);border:1px solid var(--border);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23888' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 9px center;background-repeat:no-repeat;border-radius:8px;padding:5px 28px 5px 10px;font-size:14px;transition:border-color .15s}.sort-select:hover{border-color:var(--primary)}.sort-select:focus{border-color:var(--primary);outline:none}.projects-header-actions{align-items:center;gap:8px;display:flex}.analytics-graphs{grid-template-columns:repeat(2,1fr);gap:16px;margin-top:8px;display:grid}.analytics-graph-card{border:1px solid var(--border);border-radius:12px;padding:20px 24px 24px}.analytics-graph-title{color:var(--text-light);margin:0 0 12px;font-size:15px;font-weight:500}.btn-account{justify-content:center;align-items:center;width:42px;height:42px;padding:0;display:flex}.btn-account img{width:24px;height:24px}.btn-auth{height:42px;padding-top:7px;font-size:18.15px}.btn-backup{font-size:18.15px}@media (width<=600px){.analytics-section{display:none}.dashboard-header{flex-direction:column;align-items:center;gap:12px;padding:16px}.header-controls{flex-flow:wrap;justify-content:center;width:100%}.header-controls .btn-account{order:1}.header-controls .btn-auth{order:2}.header-controls .btn-backup{order:3}.main-content{padding:0}.projects-section{gap:0}.projects-container{border-left:none;border-right:none;border-radius:0;padding:12px 16px}.projects-header{flex-direction:column;align-items:stretch;gap:8px}.projects-header-left{flex-direction:row;justify-content:space-between;align-items:center;gap:12px;width:100%}.projects-header-actions{flex-wrap:wrap;justify-content:flex-end}.projects-grid{grid-template-columns:1fr;gap:16px}}.confirm-dialog p{color:var(--text);margin:0 0 20px;font-size:24px}.confirm-dialog .dialog-buttons{justify-content:flex-end;gap:12px;display:flex}.confirm-dialog .dialog-buttons button{flex:1}.color-selector{flex-wrap:wrap;gap:10px;margin-top:6px;display:flex}.color-option{cursor:pointer;opacity:.7;border:2px solid #0000;border-radius:50%;width:36px;height:36px;padding:0;transition:transform .15s,box-shadow .15s,opacity .15s}.color-option:hover{opacity:1;transform:scale(1.12)}.color-option.active{opacity:1;box-shadow:0 0 0 2px var(--bg-card), 0 0 0 4px var(--text);transform:scale(1.12)}.tag-dropdown{position:relative}.btn-tag{border:1px solid var(--border);color:var(--text);opacity:.7;cursor:pointer;white-space:nowrap;background-color:#0000;border-radius:6px;align-items:center;gap:5px;padding:7px 10px;font-size:19.5px;font-weight:500;line-height:normal;transition:background-color .2s,opacity .2s;display:inline-flex}.btn-tag:hover{background-color:var(--bg-light);opacity:1}.btn-tag.has-tag{border-color:var(--text-light)}.tag-dot{border:1.5px solid;border-radius:50%;flex-shrink:0;width:10px;height:10px}.tag-btn-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tag-caret{opacity:.45;margin-left:1px;font-size:.7em}.tag-menu{background-color:var(--bg-card);border:1px solid var(--border);z-index:200;border-radius:8px;width:280px;padding:4px 0;position:absolute;top:calc(100% + 4px);left:0;overflow:hidden;box-shadow:0 8px 24px #0006}.tag-menu-empty{color:var(--text-light);padding:9px 14px;font-size:16px}.tag-menu-row{align-items:stretch;transition:background-color .15s;display:flex}.tag-menu-row:hover{background-color:#ffffff0d}.tag-menu-row.is-selected{box-shadow:inset 0 0 0 1px #f5f0e82e}.tag-menu-item{min-width:0;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:0;flex:1;align-items:center;gap:8px;padding:8px 6px 8px 14px;font-size:18px;display:flex}.tag-edit-btn{width:36px;height:36px;color:var(--text-light);cursor:pointer;opacity:0;pointer-events:none;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;margin:2px 4px;padding:0;font-size:34px;line-height:1;transition:opacity .15s,background-color .15s;display:flex}.tag-menu-row:hover .tag-edit-btn{opacity:.65;pointer-events:auto}.tag-edit-btn:hover{color:var(--text);background-color:#ffffff14;opacity:1!important}.tag-delete-btn{color:#ef4444;cursor:pointer;opacity:0;pointer-events:none;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;margin:2px 4px;padding:0;font-size:34px;line-height:1;transition:opacity .15s,background-color .15s;display:flex}.tag-menu-row:hover .tag-delete-btn{opacity:.65;pointer-events:auto}.tag-delete-btn:hover{background-color:#ef44441f;opacity:1!important}.tag-empty-label{color:var(--text-light);font-style:italic}.tag-menu-divider{background-color:var(--border);height:1px;margin:4px 0}.tag-create-new{width:100%;color:var(--text-light)}.tag-create-new:hover{color:var(--text)}.tag-plus{opacity:.6;text-align:center;flex-shrink:0;width:10px;font-size:16px}.table-container{border:1px solid var(--border);border-radius:8px;flex:1;margin-bottom:16px;overflow-y:auto}.time-log-table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:18.9px}.time-log-table th:first-child{width:16%}.time-log-table th:nth-child(2),.time-log-table th:nth-child(3),.time-log-table th:nth-child(4){width:13%}.time-log-table thead{background-color:var(--bg)}.time-log-table th{z-index:2;text-align:left;text-transform:uppercase;letter-spacing:.08em;color:var(--text-light);border-bottom:2px solid var(--border);border-right:1px solid var(--border);background-color:var(--bg-light);padding:12px;font-size:.75em;font-weight:600;position:sticky;top:0}.time-log-table th:last-child{border-right:none}.time-log-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--text)}.time-log-table th.sortable:hover{background-color:var(--bg-light)}.time-log-table td{border-bottom:1px solid var(--border);border-right:1px solid var(--border);color:var(--text);vertical-align:middle;padding:12px}.time-log-table td:last-child{border-right:none}.time-log-table tr:hover{background-color:var(--bg-light)}.time-log-table .active-row{background-color:#10b98126;font-weight:500}.time-log-table .active-row td{border-right-color:#5d5d5d4d}.time-log-table .active-row .btn-edit{border-color:#a0a0a045}.time-log-table .active-row .btn-tag{border-color:#a0a0a066!important}.time-log-table .active-row .btn-delete{border-color:#ef444478}.empty-cell{text-align:center;color:var(--text-light);padding:32px 12px!important}.actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.btn-edit,.btn-delete{border:1px solid var(--border);color:var(--text);cursor:pointer;white-space:nowrap;background-color:#0000;border-radius:6px;align-items:center;gap:5px;margin-right:0;padding:7px 10px;font-size:19.5px;line-height:normal;display:inline-flex}.btn-edit:hover{background-color:var(--bg-light)}.btn-delete{color:#ef4444;border-color:#ef444466}.btn-delete:hover{background-color:#ef44441a}@media (width<=600px){.btn-action-label{display:none}.table-container{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}.time-log-table th:last-child{text-align:left!important}.time-log-table{table-layout:auto;width:auto;min-width:100%}}.dialog form{flex-direction:column;display:flex}.form-group input[type=date],.form-group input[type=time]{background-color:var(--bg-light);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 12px;font-family:inherit;font-size:21px}.detail-view{flex-direction:column;height:100%;display:flex;overflow:hidden}.detail-header{border-bottom:1px solid var(--border);background-color:var(--bg);justify-content:center;align-items:center;padding:16px 32px;display:flex;position:relative}.btn-back{position:absolute;left:32px}.header-actions{position:absolute;right:32px}.project-info{flex-direction:column;align-items:center;gap:6px;display:flex}.project-title-row{align-items:center;gap:12px;display:flex}.project-icon-img{filter:brightness(0)invert();flex-shrink:0;width:48px;height:48px}[data-theme=light] .project-icon-img{filter:invert()brightness(.1)}.project-info h1{letter-spacing:-.5px;margin:0;font-size:29.4px;font-weight:700}.project-info p{color:var(--text-light);text-align:center;margin:0;font-size:16.898px}.header-actions{align-items:center;gap:12px;display:flex}.header-actions button{font-size:16.8px}.clock-section{background-color:var(--bg);border-bottom:1px solid var(--border);justify-content:center;align-items:center;gap:40px;padding:36px 32px;display:flex}.elapsed{text-align:center}.elapsed-label{color:var(--text-light);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:13.5px;display:block}.elapsed-time{color:var(--text);letter-spacing:-1px;font-size:27px;font-weight:700;display:block}.logs-section{flex-direction:column;flex:1;padding:32px;display:flex;overflow:hidden}.logs-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.logs-header h2{margin:0;font-size:20.25px;font-weight:600}.logs-actions{gap:12px;display:flex}.logs-actions button{font-size:15.75px}.btn-rollback{color:var(--text-light);border:1px solid var(--border);cursor:pointer;background-color:#0000;border-radius:6px;padding:7px 12px;font-size:15.75px;transition:color .2s,border-color .2s}.btn-rollback:hover{color:var(--text);border-color:var(--text-light)}.total-section{border-top:1px solid var(--border);align-items:center;gap:24px;margin-top:16px;padding:16px 0;display:flex}.total-label{color:var(--text);white-space:nowrap;flex-shrink:0;font-size:27px;font-weight:600}.tag-totals-scroll{scrollbar-width:none;flex:1;gap:8px;display:flex;overflow-x:auto}.tag-totals-scroll::-webkit-scrollbar{display:none}.tag-total-card{border:1px solid var(--border);background-color:var(--bg-light);border-radius:8px;flex-direction:column;flex-shrink:0;gap:5px;padding:8px 12px;display:flex}.tag-total-name{color:var(--text);white-space:nowrap;align-items:center;gap:6px;font-size:14px;font-weight:500;display:flex}.tag-total-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.tag-total-time{color:var(--text-light);font-variant-numeric:tabular-nums;font-size:15px;font-weight:600}@media (width<=600px){.detail-view{height:auto;min-height:100%;overflow-y:auto}.detail-header{flex-direction:column;align-items:center;gap:8px;padding:20px 16px}.btn-back{top:20px;left:16px}.project-title-row{flex-direction:column;align-items:center;gap:8px}.header-actions{justify-content:center;position:static}.logs-section{flex:none;overflow:visible}.table-container{height:auto;max-height:50vh;overflow-y:auto}.clock-section{gap:24px;padding:14px 16px}.logs-section{padding:8px 12px}.logs-header{margin-bottom:10px}.total-section{flex-direction:column;align-items:center;gap:12px}.total-label{text-align:center}.tag-totals-scroll{grid-template-columns:1fr 1fr;width:100%;display:grid;overflow-x:visible}}
