@font-face{font-family:Inter;src:url(/fonts/Inter-Variable.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}:root{--neuvoa-sininen:#5f62f3;--neuvoa-punainen:#dd2246;--neuvoa-keltainen:#e9e034;--neuvoa-tummavioletti:#000222;--neuvoa-laventeli:#dddef2;--neuvoa-valkoinen:#fff;--sininen-10:#eef;--sininen-20:#d5d6fc;--sininen-40:#abade9;--sininen-80:#7577f5;--punainen-10:#fdedf0;--punainen-20:#f8c0ca;--tumma-80:#0a0d3a;--tumma-60:#1a1f52;--text:var(--neuvoa-tummavioletti);--text-h:var(--neuvoa-sininen);--text-muted:var(--tumma-60);--bg:var(--sininen-10);--surface:var(--neuvoa-valkoinen);--surface-sunken:var(--sininen-10);--border:var(--neuvoa-laventeli);--control-border:var(--tumma-60);--accent:var(--neuvoa-sininen);--accent-contrast:var(--neuvoa-valkoinen);--danger:var(--neuvoa-punainen);--danger-bg:var(--punainen-10);--danger-border:var(--punainen-20);--hover-bg:var(--sininen-10);--badge-open-bg:var(--sininen-20);--badge-open-text:var(--neuvoa-tummavioletti);--badge-done-text:var(--tumma-60);--hard-shadow:2px 2px 0 var(--neuvoa-tummavioletti);font-feature-settings:"cv11", "ss01";color:var(--text);background:var(--bg);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font:16px/1.5 Inter,Helvetica Neue,Helvetica,Arial,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:var(--neuvoa-valkoinen);--text-h:var(--sininen-20);--text-muted:var(--neuvoa-laventeli);--bg:var(--neuvoa-tummavioletti);--surface:var(--tumma-80);--surface-sunken:var(--neuvoa-tummavioletti);--border:var(--tumma-60);--control-border:var(--sininen-40);--danger:#ff8a9e;--danger-bg:#2a0a1a;--danger-border:#6b1630;--hover-bg:var(--tumma-60);--badge-open-bg:var(--sininen-20);--badge-open-text:var(--neuvoa-tummavioletti);--badge-done-text:var(--neuvoa-laventeli);--hard-shadow:2px 2px 0 var(--sininen-40)}}*{box-sizing:border-box}body{background:var(--bg);margin:0}h1{letter-spacing:-.02em;color:var(--text-h);margin:0 0 4px;font-size:28px;font-weight:600;line-height:1.1}h2{letter-spacing:-.01em;color:var(--text-h);margin:0 0 12px;font-size:18px;font-weight:600;line-height:1.3}.topbar{background:var(--neuvoa-tummavioletti);color:var(--neuvoa-valkoinen);border-bottom:1px solid var(--tumma-60)}.topbar-inner{align-items:center;gap:20px;max-width:840px;min-height:64px;margin:0 auto;padding:0 20px;display:flex}.brand{flex-shrink:0;align-items:center;gap:12px;display:flex}.brand-logo{width:auto;height:28px;display:block}.brand-app{border-left:1px solid var(--tumma-60);color:var(--neuvoa-laventeli);padding-left:12px;font-size:15px;font-weight:600}.nav{align-self:stretch;gap:4px;display:flex}.tab-button{color:var(--neuvoa-laventeli);background:0 0;border:none;border-bottom:3px solid #0000;padding:0 12px;font-size:15px;font-weight:600}.tab-button:hover{color:var(--neuvoa-valkoinen)}.tab-button-active{color:var(--neuvoa-valkoinen);border-bottom-color:var(--neuvoa-keltainen)}.topbar-user{align-items:center;gap:12px;min-width:0;margin-left:auto;display:flex}.topbar-name{color:var(--neuvoa-laventeli);white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.btn-link.topbar-logout{color:var(--neuvoa-valkoinen);text-underline-offset:3px;white-space:nowrap;text-decoration:underline}@media (width<=640px){.topbar-inner{flex-wrap:wrap;gap:0 16px;padding-top:12px}.brand-app{display:none}.nav{order:3;width:100%;height:44px;margin-left:-12px}.topbar-name{display:none}}.page{max-width:840px;margin:0 auto;padding:28px 20px 64px}.subtitle{color:var(--text-muted);margin:0 0 20px}.card{background:var(--surface);border:1px solid var(--border);border-radius:16px;margin-bottom:20px;padding:20px 24px}.card>.subtitle{margin-top:-8px;margin-bottom:12px;font-size:14px}@media (width<=640px){.card{padding:16px}}.login{max-width:420px;margin:0 auto;padding:72px 20px}.login-logo{width:220px;max-width:100%;height:auto;margin:0 0 32px;display:block}.login-card{padding:28px}.login-card h1{margin-bottom:8px}label{color:var(--text);margin-bottom:4px;font-size:14px;font-weight:600;display:block}.field{margin-bottom:16px}input,select,textarea{border:1px solid var(--control-border);background:var(--surface);width:100%;color:var(--text);font:inherit;border-radius:8px;padding:8px 12px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}button{font:inherit;cursor:pointer}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.topbar button:focus-visible{outline-color:var(--neuvoa-keltainen)}.btn-primary{background:var(--accent);color:var(--accent-contrast);border:2px solid var(--neuvoa-tummavioletti);box-shadow:var(--hard-shadow);border-radius:8px;padding:8px 18px;font-weight:600;transition:transform .12s ease-out,box-shadow .12s ease-out,background-color .12s ease-out}.btn-primary:hover:not(:disabled){background:var(--sininen-80)}.btn-primary:active:not(:disabled){box-shadow:none;transform:translate(2px,2px)}.btn-primary:disabled{background:var(--sininen-40);color:var(--neuvoa-tummavioletti);box-shadow:none;cursor:default}.btn-link{color:var(--danger);background:0 0;border:none;padding:4px;font-size:14px;font-weight:600}.btn-link:disabled{opacity:.5;cursor:default}.icon-btn{color:var(--text-muted);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:7px;display:inline-flex}.icon-btn:hover:not(:disabled){background:var(--hover-bg);color:var(--text)}.icon-btn:disabled{opacity:.5;cursor:default}.icon-btn-accent{color:var(--accent)}.icon-btn-danger{color:var(--danger)}@media (prefers-color-scheme:dark){.icon-btn-accent{color:var(--sininen-20)}}@media (prefers-reduced-motion:reduce){.btn-primary{transition:none}.btn-primary:active:not(:disabled){transform:none}}.entries-panel{margin-bottom:16px}.edit-row,.add-entry-form{flex-wrap:wrap;align-items:center;gap:8px;padding:10px 0;display:flex}.add-entry-form{border-top:1px solid var(--border);margin-top:4px;padding-top:14px}.edit-row input,.edit-row select,.add-entry-form input,.add-entry-form select{flex:130px;width:auto}.hours-input{flex:0 80px!important}.error{color:var(--text);background:var(--danger-bg);border:1px solid var(--danger-border);border-radius:8px;margin-bottom:14px;padding:8px 12px;font-size:14px}.entry-list{margin:0;padding:0;list-style:none}.entry-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.entry-row:last-child{border-bottom:none}.summary-header{border-bottom:none;padding-top:0}.summary-header h2{margin-bottom:2px}.entry-main{min-width:0}.entry-meta{color:var(--text-muted);font-size:13px}.entry-desc{overflow-wrap:break-word;font-size:15px}.entry-right{flex-shrink:0;align-items:center;gap:10px;display:flex}.hours{font-variant-numeric:tabular-nums;color:var(--text);white-space:nowrap;font-weight:800}.summary-header .hours{font-size:20px}.badge{white-space:nowrap;border:1px solid #0000;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600}.badge-open{background:var(--badge-open-bg);color:var(--badge-open-text)}.badge-invoiced{color:var(--badge-done-text);border-color:currentColor}.empty{color:var(--text-muted);padding:8px 0;font-size:14px}.total{border-top:1px solid var(--border);text-align:right;font-variant-numeric:tabular-nums;margin-top:4px;padding-top:12px;font-size:14px;font-weight:600}.comment-preview{white-space:pre-wrap;background:var(--surface-sunken);border:1px solid var(--border);border-radius:8px;margin:0;padding:10px 12px;font-family:inherit;font-size:13px}
