:root{--bg:#f6f7f9;--surface:#fff;--surface-2:#f1f3f6;--border:#e3e6eb;--text:#1c2024;--muted:#69707d;--accent:#4f6bed;--accent-hover:#3f58d6;--accent-soft:#eef1fe;--danger:#d93a3f;--danger-soft:#fdecec;--ok:#218358;--ok-soft:#e6f6ee;--warn:#a35200;--warn-soft:#fff3e3;--shadow:0 1px 2px #1018280d;--shadow-pop:0 12px 32px #10182824;--radius:10px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#111317;--surface:#181b20;--surface-2:#20242b;--border:#2c313a;--text:#e9ecf0;--muted:#9198a5;--accent:#7b8ff5;--accent-hover:#93a4f8;--accent-soft:#232a4a;--danger:#ff6b6f;--danger-soft:#3a1d1f;--ok:#4cc38a;--ok-soft:#173326;--warn:#f5a14d;--warn-soft:#3a2a17;--shadow:none;--shadow-pop:0 12px 32px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font:14px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1{letter-spacing:-.01em;margin:0;font-size:22px}h2{margin:0 0 10px;font-size:15px}h3{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 8px;font-size:13px;font-weight:600}a{color:var(--accent)}code,.mono{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:12.5px}.muted{color:var(--muted)}.small{font-size:12.5px}.center{text-align:center}.loading,.empty{text-align:center;color:var(--muted);padding:48px 16px}.shell{grid-template-columns:220px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;gap:16px;height:100vh;padding:18px 12px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:8px;padding:0 8px;font-size:15px;font-weight:700;display:flex}.brand-lg{padding:0;font-size:20px}.brand-long{letter-spacing:.02em;color:var(--muted);overflow-wrap:anywhere;margin-top:-10px;font-size:12px;font-weight:600}.brand-long-side{margin:4px 0 0 28px;font-size:11px;line-height:1.35}@media (width<=760px){.brand-long-side{display:none}}.team-switch{flex-direction:column;gap:2px;padding:0 8px;display:flex}.team-switch select{width:100%;font-weight:600}.team-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}@media (width<=760px){.team-switch{flex-direction:row;order:2;align-items:center;gap:6px}.team-switch>span{display:none}}.brand-sub{font-weight:500}.brand-dot{background:var(--accent);width:12px;height:12px;box-shadow:0 0 0 3px var(--accent-soft);border-radius:50%}.sidebar nav{flex-direction:column;gap:2px;display:flex}.sidebar nav a{color:var(--text);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;text-decoration:none;display:flex}.sidebar nav a:hover{background:var(--surface-2)}.sidebar nav a.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.nav-icon{text-align:center;width:18px}.sidebar-foot{flex-direction:column;gap:10px;margin-top:auto;display:flex}.me{align-items:center;gap:10px;min-width:0;padding:0 4px;display:flex}.me-text{min-width:0}.me-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.avatar{border-radius:50%;flex:none;width:32px;height:32px}.avatar-fallback{background:var(--accent-soft);color:var(--accent);place-items:center;font-weight:700;display:grid}.content{min-width:0}.page{flex-direction:column;gap:16px;max-width:1080px;margin:0 auto;padding:24px 28px 64px;display:flex}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}@media (width<=760px){.shell{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--border);flex-flow:wrap;align-items:center;height:auto;padding:10px 12px;position:static}.sidebar nav{flex-flow:wrap;order:3;width:100%}.sidebar-foot{flex-direction:row;align-items:center;margin:0 0 0 auto}.sidebar-foot .me-text,.sidebar-foot .badge{display:none}.page{padding:16px 16px 48px}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.row{align-items:center;gap:8px;display:flex}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.grow{flex:1;min-width:140px}.stack{flex-direction:column;gap:8px;display:flex}.stack-lg{flex-direction:column;gap:20px;display:flex}.grid-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;display:grid}.btn{height:36px;font:inherit;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-weight:600;text-decoration:none;transition:background-color .12s,border-color .12s,transform 60ms;display:inline-flex}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.55;cursor:default}.btn-sm{height:28px;padding:0 10px;font-size:12.5px}.btn-block{width:100%}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-stop{background:var(--danger);color:#fff}.btn-ghost{background:var(--surface);border-color:var(--border);color:var(--text)}.btn-ghost:hover:not(:disabled){background:var(--surface-2)}.btn-danger-ghost{color:var(--danger);background:0 0;border-color:#0000}.btn-danger-ghost:hover{background:var(--danger-soft)}.btn-oauth{background:var(--surface);border-color:var(--border);height:42px;color:var(--text)}.btn-oauth:hover{background:var(--surface-2)}.icon-btn{width:30px;height:30px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;font-size:12px}.icon-btn:hover{background:var(--surface-2);color:var(--accent)}.input{border:1px solid var(--border);background:var(--surface);height:36px;color:var(--text);font:inherit;border-radius:8px;min-width:0;padding:0 10px}.input:focus,.picker-btn:focus-visible,.btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:#0000}.input-sm{height:30px;padding:0 8px;font-size:13px}.input-bare{background:0 0;border-color:#0000;width:100%;min-width:120px;height:28px;margin-left:-4px;padding:0 4px;font-weight:600}.input-bare:hover{border-color:var(--border)}.w-dur{width:70px}select.input{padding-right:4px}.color{cursor:pointer;background:0 0;border:none;width:32px;height:28px;padding:0}.field{flex-direction:column;flex:1;gap:4px;display:flex}.field>span{color:var(--muted);font-size:12.5px;font-weight:600}.check{cursor:pointer;align-items:center;gap:6px;padding:3px 0;display:flex}.dot{border-radius:50%;flex:none;width:9px;height:9px;display:inline-block}.badge{background:var(--surface-2);color:var(--muted);border-radius:99px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.badge-ok{background:var(--ok-soft);color:var(--ok)}.badge-warn{background:var(--warn-soft);color:var(--warn);text-align:center}.badge-jira{color:#0c66e4;background:#e9f2ff;flex:none;padding:1px 6px;font-size:11px}@media (prefers-color-scheme:dark){.badge-jira{color:#85b8ff;background:#1c2b41}}a.entry-main{text-decoration:none;display:block}.badge-muted{opacity:.8}.alert{background:var(--warn-soft);color:var(--warn);border-radius:8px;padding:10px 12px}.alert-error{background:var(--danger-soft);color:var(--danger)}.segmented{background:var(--surface-2);border-radius:8px;flex-wrap:wrap;gap:2px;padding:3px;display:inline-flex}.segmented button{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 10px;font-size:13px;font-weight:600}.segmented button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.toasts{z-index:100;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:20px;right:20px}.toast{background:var(--text);color:var(--bg);box-shadow:var(--shadow-pop);border-radius:8px;max-width:380px;padding:10px 14px;animation:.18s ease-out toast-in}.toast-error{background:var(--danger);color:#fff}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}}.modal-backdrop{z-index:50;background:#00000059;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{width:min(560px,100%);box-shadow:var(--shadow-pop);flex-direction:column;gap:12px;display:flex}.login-wrap{place-items:center;min-height:100vh;padding:16px;display:grid}.login-card{flex-direction:column;gap:14px;width:min(380px,100%);padding:28px;display:flex}.login-card p{margin:0}.login-form{gap:10px}.login-or{align-items:center;gap:10px;display:flex}.login-or:before,.login-or:after{content:"";border-top:1px solid var(--border);flex:1}.dev-login{border-top:1px dashed var(--border);flex-direction:column;gap:6px;padding-top:12px;display:flex}.picker{flex:0 360px;min-width:0;position:relative}.picker-btn{border:1px solid var(--border);background:var(--surface);width:100%;height:36px;color:var(--text);font:inherit;cursor:pointer;text-align:left;border-radius:8px;align-items:center;gap:8px;padding:0 10px;display:flex}.picker-btn:hover{background:var(--surface-2)}.picker-value{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.caret{color:var(--muted)}.picker-pop{z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:max(100%,420px);max-width:calc(100vw - 32px);box-shadow:var(--shadow-pop);flex-direction:column;gap:6px;padding:8px;display:flex;position:absolute;top:calc(100% + 4px);left:0}.picker-pop .check{color:var(--muted);padding:0 4px}.picker-list{max-height:340px;overflow-y:auto}.picker-group{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;align-items:center;gap:6px;padding:8px 8px 4px;font-size:12px;font-weight:700;display:flex}.picker-opt{cursor:pointer;border-radius:6px;justify-content:space-between;gap:8px;padding:6px 8px 6px 23px;display:flex}.picker-opt.cursor{background:var(--surface-2)}.picker-opt.selected{color:var(--accent);font-weight:600}.picker-opt.done>span:first-child{opacity:.6;text-decoration:line-through}.picker-opt .status{color:var(--muted);white-space:nowrap;font-size:11.5px}.pad{padding:8px}.timerbar{z-index:10;flex-direction:column;gap:10px;display:flex;position:sticky;top:8px}.timerbar.is-running{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.timerbar-main{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.timerbar-sub{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.manual-fields{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.elapsed{font-variant-numeric:tabular-nums;text-align:right;min-width:92px;font-size:20px;font-weight:700}.week-head{justify-content:space-between;padding:0 4px 8px;font-weight:600;display:flex}.day{margin-bottom:10px;padding:0;overflow:hidden}.day-head{background:var(--surface-2);color:var(--muted);justify-content:space-between;padding:8px 14px;font-size:13px;font-weight:600;display:flex}.day-head strong{color:var(--text)}.entry{border-top:1px solid var(--border);align-items:center;gap:12px;padding:4px 8px 4px 6px;display:flex}.entry-main{min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;flex:1;padding:8px}.entry-main:hover{background:var(--surface-2)}.entry-label{align-items:center;gap:8px;min-width:0;display:flex}.entry-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.key{font-weight:700;text-decoration:none}span.key{color:var(--text)}.entry-desc{color:var(--muted)}.entry-time{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:13px}.entry-dur{font-variant-numeric:tabular-nums;text-align:right;min-width:64px;font-weight:700}@media (width<=600px){.entry-time{display:none}}.filters{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.range{flex-direction:column;gap:8px;display:flex}.multi{position:relative}.multi summary{text-overflow:ellipsis;max-width:220px;line-height:34px;list-style:none;display:block;overflow:hidden}.multi summary::-webkit-details-marker{display:none}.multi-pop{z-index:20;min-width:240px;max-height:320px;box-shadow:var(--shadow-pop);padding:8px 12px;position:absolute;top:calc(100% + 4px);right:0;overflow-y:auto}.field .multi-pop,td .multi-pop{left:0;right:auto}.report{flex-direction:column;gap:16px;display:flex}.report-top{flex-wrap:wrap;align-items:stretch;gap:12px;display:flex}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:140px;padding:12px 16px}.stat-value{font-variant-numeric:tabular-nums;font-size:24px;font-weight:700}.report-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.chart{padding:16px 16px 8px}.chart-bars{align-items:flex-end;gap:0;height:160px;display:flex}.chart-col{justify-content:center;align-items:flex-end;height:100%;padding:0 2px;display:flex}.chart-bar{background:var(--accent);border-radius:4px 4px 0 0;width:100%;max-width:40px;min-height:0}.chart-axis{border-top:1px solid var(--border);color:var(--muted);padding-top:4px;font-size:11px;display:flex}.chart-axis>div{text-align:center;white-space:nowrap;overflow:visible}.chart-note{margin:8px 0 0}.chart-axis .weekend{opacity:.6}.breakdown table,.details,.table{border-collapse:collapse;width:100%}@media (width<=760px){:is(.card:has(>.table),.card:has(>.details)){overflow-x:auto}}.breakdown td{border-top:1px solid var(--border);padding:6px 4px}.breakdown tr:first-child td{border-top:none}.bd-label{width:50%;max-width:0}.bd-label .entry-text{display:block}.bd-bar{width:30%}.bar{background:var(--surface-2);border-radius:4px;height:8px;overflow:hidden}.bar>div{border-radius:4px;height:100%}.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.details{margin-top:12px;font-size:13px}.details th,.table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--border);padding:6px 8px;font-size:12px;font-weight:600}.details td,.table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:8px}.details td:nth-child(4){max-width:380px}.table tr:last-child td{border-bottom:none}.input-warn{border-color:var(--warn);width:100%;margin-top:4px}.email-edit{height:22px;font-weight:400}.w-email{min-width:220px}.role-hint{margin:8px 0 0!important}.table tr.inactive{opacity:.5}.actions{text-align:right}.actions .btn{margin:2px 0 2px 4px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip-btn{border:1px dashed var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:8px;padding:8px 12px}.chip-btn:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}.local-project{border-top:1px solid var(--border);margin-top:14px;padding-top:14px}.form-inline p{margin:0 0 10px}.grid-form{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:14px;display:grid}.created-link{border-color:var(--ok);background:var(--ok-soft);flex-direction:column;gap:10px;display:flex}.share-head{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 28px;display:flex}.member-name{padding:3px 0;font-weight:600}.invite-text{resize:vertical;white-space:pre-wrap;height:auto;padding:8px 10px;font-family:inherit}.onboarding ol{flex-direction:column;gap:6px;margin:8px 0 0;padding-left:20px;display:flex}.onboarding li.done{color:var(--muted);text-decoration:line-through}.login-foot{text-align:center;font-size:12px}.legal{max-width:760px}.legal h2{margin-top:18px}.legal p,.legal li{line-height:1.6}.dropzone{border:2px dashed var(--border);cursor:pointer;text-align:center;flex-direction:column;align-items:center;gap:8px;padding:28px 16px;display:flex}.dropzone.over,.dropzone:hover{border-color:var(--accent);background:var(--accent-soft)}.dropzone input[type=file]{max-width:100%}.steps{flex-direction:column;gap:4px;margin:0 0 10px;padding-left:20px;display:flex}.problems{color:var(--warn);margin:4px 0 0;padding-left:16px}a.me{color:inherit;border-radius:8px;padding:6px 4px;text-decoration:none}a.me:hover,a.me.active{background:var(--surface-2)}.avatar{object-fit:cover}.team-logo-side{object-fit:contain;align-self:flex-start;max-width:100%;max-height:56px;margin:0 8px;display:block}@media (width<=760px){.team-logo-side{display:none}}.profile-name{font-size:18px;font-weight:700}.cropper{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.cropper-view{cursor:grab;touch-action:none;background:var(--surface-2);box-shadow:0 0 0 3px var(--accent-soft);border-radius:50%;position:relative;overflow:hidden}.cropper-view:active{cursor:grabbing}.cropper-view img{-webkit-user-select:none;user-select:none;pointer-events:none;max-width:none;position:absolute;top:0;left:0}.member-cell{align-items:center;gap:10px;display:flex}.logo-upload{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.logo-preview{object-fit:contain;background:#fff;border-radius:6px;max-width:200px;max-height:64px;padding:4px}.picker-opt.create{color:var(--accent);border-top:1px dashed var(--border);margin-top:2px;font-weight:600}.badge-task{background:var(--accent-soft);color:var(--accent);flex:none;padding:1px 6px;font-size:11px}.donut-card h3{margin-bottom:12px}.donut-wrap{flex-wrap:wrap;align-items:flex-start;gap:24px;display:flex}.donut{flex:none}.donut-total{fill:var(--text);font-variant-numeric:tabular-nums;font-size:13px;font-weight:700}.legend{flex-direction:column;flex:1;min-width:260px;display:flex}.legend-row{border-bottom:1px solid var(--border);font:inherit;color:inherit;text-align:left;background:0 0;border-top:none;border-left:none;border-right:none;grid-template-columns:auto auto 1fr auto 70px 16px;align-items:center;gap:8px;width:100%;padding:7px 4px;display:grid}.legend>.legend-row:not(.clickable){grid-template-columns:auto 1fr auto 70px}.legend-row.clickable{cursor:pointer;border-radius:6px}.legend-row.clickable:hover,.legend-row.open{background:var(--surface-2)}.legend-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.legend-label .entry-text{display:block}.legend-sub{border-left:2px solid var(--border);flex-direction:column;align-items:flex-start;gap:2px;margin:4px 0 10px 34px;padding-left:10px;display:flex}.legend-sub .legend-row{grid-template-columns:1fr auto 70px;padding:5px 4px;font-size:13px}.legend-sub .btn{margin-top:6px}.filter-chip{align-items:center;gap:6px;display:inline-flex}.print-only{display:none}@page{size:A4;margin:12mm 16mm 18mm;@bottom-left{content:"Höhere Technische Bundeslehranstalt Wien 3 | Rennweg 89b | 1030 Wien | www.htl.rennweg.at";font:8pt Segoe UI,Arial,sans-serif;color:#555;border-top:.5pt solid #bbb;vertical-align:top;padding-top:2mm}@bottom-right{content:"Seite " counter(page) "/" counter(pages);font:8pt Segoe UI,Arial,sans-serif;color:#555;border-top:.5pt solid #bbb;vertical-align:top;padding-top:2mm}}@media print{:root{--bg:#fff;--surface:#fff;--surface-2:#eef0f4;--border:#d0d4da;--text:#000;--muted:#555;--accent:#5a63c8;--shadow:none;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html,body{background:#fff;font:10pt Segoe UI,Calibri,Arial,sans-serif}.sidebar,.share-head,.no-print,.screen-only,.filters,.page-head,.toasts{display:none!important}.shell{display:block}.page{max-width:none;padding:0}.print-only{display:block!important}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-frame{border-collapse:collapse;width:100%}.print-frame>thead>tr>td,.print-frame>tbody>tr>td,.print-frame>tfoot>tr>td{padding:0}.print-head{justify-content:space-between;align-items:flex-end;margin-bottom:4mm;padding-bottom:5mm;display:flex}.print-htl{height:16mm}.print-team{font-size:13pt;font-weight:700}.print-foot-space{height:4mm}.print-section{margin-bottom:7mm}.print-keep{break-inside:avoid}.print-title-row{justify-content:space-between;align-items:flex-start;gap:10mm;margin-bottom:4mm;display:flex}.print-report h1{margin:0 0 2mm;font-size:15pt;font-weight:600}.print-report h2{color:#000;text-transform:none;letter-spacing:0;border-bottom:.5pt solid #bbb;margin:0 0 3mm;padding-bottom:1.5mm;font-size:12pt;font-weight:600}.print-period{color:#555}.print-total{font-size:11pt}.print-team-logo{object-fit:contain;max-width:45mm;max-height:22mm}.print-chart .chart-bars{height:50mm}.print-chart .chart-bar{background:#5a63c8}.print-note{color:#555;font-size:8.5pt}.print-donut-row{align-items:flex-start;gap:8mm;display:flex}.print-legend,.print-breakdown{border-collapse:collapse;flex:1;width:100%;font-size:9pt}.print-legend td,.print-breakdown td,.print-breakdown th{border-bottom:.5pt solid #ccc;padding:1.6mm 1mm}.print-legend tr,.print-breakdown tr{break-inside:avoid}.print-breakdown th{text-align:left;color:#555;font-weight:600}.print-person td{padding-top:3mm;font-weight:700}.print-ticket td:first-child{color:#333;padding-left:6mm}.print-ticket td{color:#333}.donut-total{fill:#000}}.share-team-logo{object-fit:contain;max-width:100px;max-height:28px;margin-left:10px}.older-worklogs{border-top:1px solid var(--border);flex-direction:column;gap:6px;padding-top:10px;display:flex}
