/* Workspace layout and components. Palette and typography: theme.css. */
*{margin:0;padding:0;box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:1rem;line-height:1.55;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--font-heading);font-weight:var(--font-heading-weight);line-height:1.25;overflow-wrap:anywhere}
a{color:var(--color-accent-700);text-decoration:none}a:hover{text-decoration:underline}
button,input,select,textarea{font:inherit}button{cursor:pointer}
:where(a,button,select,input,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--color-accent);outline-offset:3px}
.ui-icon{width:19px;height:19px;flex-shrink:0;vertical-align:middle}
.workspace{padding-left:var(--sidebar-width)}
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-width);display:flex;flex-direction:column;background:var(--color-surface);border-right:1px solid var(--color-divider);padding:30px 17px 20px;z-index:30;overflow-y:auto}
.brand{display:flex;align-items:center;gap:11px;color:var(--color-text);padding:0 8px;text-decoration:none!important;min-width:0}
.brand-mark{display:grid;place-items:center;width:39px;height:39px;flex-shrink:0;border-radius:12px;background:var(--color-accent);color:var(--color-on-accent);font-size:1.7rem;font-weight:650;line-height:1}
.brand-copy{min-width:0;display:flex;flex-direction:column;gap:4px}
.wordmark{font-size:1.05rem;font-weight:650;letter-spacing:-.025em;line-height:1.3;overflow-wrap:anywhere}
.brand-logo{width:40px;height:40px;object-fit:contain}
.kicker{font-size:.75rem;color:var(--color-neutral-600);letter-spacing:.035em;line-height:1.5}
.brand .kicker{font-size:.75rem;letter-spacing:0}
.nav-label{font-size:.75rem;color:var(--color-neutral-600);letter-spacing:.1em;margin:38px 12px 12px}
.workspace-nav{display:flex;flex-direction:column;gap:5px}
.nav-link{display:flex;gap:12px;align-items:center;padding:12px;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;color:var(--color-neutral-700);text-decoration:none!important}
.nav-link:hover{background:var(--color-neutral-100);color:var(--color-text)}
.nav-link[aria-current=page]{background:var(--color-accent-100);color:var(--color-accent-700);box-shadow:inset 3px 0 var(--color-accent)}
.nav-separator{height:1px;background:var(--color-divider);margin:22px 12px 13px}
.sidebar-bottom{margin-top:auto;padding:30px 7px 0}.signed-in{display:flex;align-items:center;gap:10px;min-width:0}
.user-avatar{display:grid;place-items:center;width:36px;height:36px;flex-shrink:0;border-radius:50%;background:var(--color-accent-100);color:var(--color-accent-700);font-size:.8125rem;font-weight:600;overflow:hidden}
.user-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.user-copy{min-width:0;font-size:.875rem;overflow-wrap:anywhere}.user-role{display:block;color:var(--color-neutral-600);font-size:.75rem;margin-top:2px}
.logout-link{display:flex;align-items:center;gap:10px;font-size:.8125rem;color:var(--color-neutral-600);margin-top:17px;padding:7px 0}
.workspace-topbar{display:flex;justify-content:space-between;align-items:center;gap:14px;min-height:76px;padding:16px var(--page-gutter);border-bottom:1px solid var(--color-divider);background:var(--color-surface)}
.topbar-start{display:flex;align-items:center;gap:12px;min-width:0}.breadcrumb-label{font-size:.8125rem;color:var(--color-neutral-600)}.breadcrumb-label>span{margin:0 10px;color:var(--color-neutral-400)}.breadcrumb-label strong{font-weight:500;color:var(--color-text)}
.menu-toggle{display:none;background:var(--color-surface);border:1px solid var(--color-divider);border-radius:8px;padding:9px;color:var(--color-text)}
.skip-link{position:fixed;left:-10000px;top:12px;z-index:100;background:var(--color-surface);padding:12px}.skip-link:focus{left:12px}
.page-heading{max-width:var(--page);margin:auto;padding:30px var(--page-gutter) 12px;display:flex;justify-content:space-between;gap:20px}
.eyebrow{font-size:.75rem;letter-spacing:.12em;color:var(--color-accent-700);font-weight:600;margin-bottom:8px}
.page-heading h1{font-size:clamp(1.65rem,2.5vw,2.05rem);letter-spacing:-.035em}.page-description{color:var(--color-neutral-600);font-size:.875rem;margin-top:8px}
.dateline{max-width:var(--page);margin:auto;padding:0 var(--page-gutter) 20px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:7px 20px;color:var(--color-neutral-600);font-size:.75rem}.dateline span:empty{display:none}
.controls{display:flex;align-items:flex-end;flex-wrap:wrap;gap:14px;max-width:calc(var(--page) - 2 * var(--page-gutter));margin:0 var(--page-gutter) 24px;padding:18px;background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft)}
.field{min-width:0}.field>label,.field>span,.builder .field>span{display:block;font-size:.875rem;color:var(--color-neutral-700);margin-bottom:7px}
.input{min-height:42px;min-width:0;max-width:100%;padding:9px 11px;font-size:.875rem;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-neutral-300);border-radius:var(--radius-md);caret-color:var(--color-accent)}
.input:hover{border-color:var(--color-neutral-500)}input[type=checkbox]{accent-color:var(--color-accent);width:17px;height:17px;flex-shrink:0}
.seg{display:flex;flex-wrap:wrap;gap:3px;padding:3px;border-radius:var(--radius-md);background:var(--color-neutral-100);border:1px solid var(--color-divider)}
.seg-opt{padding:8px 10px;border:0;border-radius:5px;background:transparent;font-size:.8125rem;color:var(--color-neutral-700);white-space:nowrap}
.seg-opt.on{background:var(--color-accent);color:var(--color-on-accent)}.seg-opt:not(.on):hover{background:var(--color-neutral-200)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;max-width:100%;padding:10px 15px;border:1px solid transparent;border-radius:var(--radius-md);font-size:.875rem;font-weight:600;line-height:1.35;text-decoration:none!important;text-align:center;background:transparent;color:var(--color-text)}
.btn-primary{background:var(--color-accent);color:var(--color-on-accent)}.btn-primary:hover{background:var(--color-accent-600)}
.btn-secondary{background:var(--color-surface);border-color:var(--color-neutral-300);color:var(--color-neutral-800)}.btn-secondary:hover{background:var(--color-neutral-100);border-color:var(--color-neutral-400)}
.btn[aria-busy=true],.btn:disabled{opacity:.55;cursor:wait;pointer-events:none}.linkish{background:transparent;border:0;padding:6px;color:var(--color-danger);font-size:.875rem;text-decoration:underline}
.status{margin:0 var(--page-gutter) 20px;padding:13px 16px;border-radius:var(--radius-md);background:var(--color-accent-100);color:var(--color-accent-800);font-size:.875rem;overflow-wrap:anywhere}.status[data-kind=error]{background:var(--color-danger-bg);color:var(--color-accent-2-800)}
main{max-width:var(--page);padding:0 var(--page-gutter) 48px;margin:0 auto;min-width:0}
.scope-line{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:20px}.scope-name{font-size:1rem;letter-spacing:0;font-weight:600;margin:0}.scope-prefix{font-size:.875rem;color:var(--color-neutral-600);margin-right:9px}
.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:20px}.summary-card{padding:22px;border:1px solid var(--color-divider);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-soft);min-width:0}
.summary-card .kicker{font-size:.875rem;letter-spacing:0}.summary-value,.total{display:block;font-size:2.5rem;line-height:1.25;font-weight:600;letter-spacing:-.045em;font-variant-numeric:tabular-nums;margin:10px 0}.summary-unit{font-size:1rem;color:var(--color-neutral-600);font-weight:400;letter-spacing:0}.summary-card p,.total-note{font-size:.8125rem;color:var(--color-neutral-600)}
.delta-up{color:var(--color-accent-700)}.delta-down{color:var(--color-danger)}
.overview-insights{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:20px;margin-bottom:20px}.insight-card{padding:22px;border:1px solid var(--color-divider);border-radius:var(--radius-lg);background:var(--color-surface);min-width:0}.insight-card h2{font-size:.9375rem;margin-bottom:16px}
.kapacitet{font-size:.875rem;color:var(--color-neutral-700);display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px}.kapacitet .udeo{font-size:1.6rem;font-weight:600;color:var(--color-text)}.kapacitet .traka{display:block;flex:1;min-width:80px;height:8px;background:var(--color-neutral-200);border-radius:6px;overflow:hidden}.kapacitet .traka span{display:block;height:100%;background:var(--color-accent)}.kapacitet .traka span.preko{background:var(--color-danger)}.kapacitet>span:last-child{flex-basis:100%;font-size:.8125rem}
.overtime-note{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap;color:var(--color-accent-2-800);font-size:.875rem}.overtime-note .amount{font-weight:600}.overtime-note .split{margin:0;font-size:.8125rem}.activity-note{margin-top:12px;font-size:.8125rem;color:var(--color-neutral-600)}
.bars{display:flex;align-items:flex-end;gap:10px;height:150px;overflow-x:auto;padding:0 2px 4px}.bars .col{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px;flex:1 0 38px;max-width:64px;height:100%;min-width:0}.bars .fill{width:75%;flex-shrink:1;min-height:2px;background:var(--color-accent);border-radius:4px 4px 0 0}.bars .v,.bars .l{font-size:.75rem;color:var(--color-neutral-600);white-space:nowrap;font-variant-numeric:tabular-nums}.bars .v{color:var(--color-text)}.bars--tall{height:190px}
section.block{margin-top:20px;padding:24px;background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);min-width:0}.block-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px 20px;margin-bottom:18px}.block-head h2,.h-section{font-size:1.0625rem}.h-section{margin-bottom:18px}.block--tight{margin-top:0!important}
.table-wrap{width:100%;overflow-x:auto;border-radius:var(--radius-sm)}.table{width:100%;border-collapse:collapse;font-size:.875rem}.table th{font-size:.75rem;font-weight:500;text-align:left;white-space:nowrap;padding:12px;color:var(--color-neutral-600);background:var(--color-neutral-100);border-bottom:1px solid var(--color-divider)}.table td{padding:15px 12px;border-bottom:1px solid var(--color-divider);vertical-align:middle;overflow-wrap:anywhere}.table tr:last-child td{border-bottom:0}.table tbody tr[data-row]{cursor:pointer}.table tbody tr:hover{background:var(--color-neutral-100)}.table tbody tr[data-row]:hover{background:var(--color-accent-100)}.table .r{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.table .hours{font-size:.9375rem;font-weight:600}.table .name{font-weight:600;min-width:150px}.table .muted{color:var(--color-neutral-600);font-size:.8125rem}.table .project-link{display:block;color:var(--color-text)}.table .project-link:hover{color:var(--color-accent-700)}
.meter{height:6px;min-width:65px;background:var(--color-neutral-200);display:flex;border-radius:5px;overflow:hidden;margin-bottom:4px}.meter span{display:block;height:100%;background:var(--color-accent)}.meter .seg-zammad{background:var(--src-zammad)}.meter .seg-gitlab{background:var(--src-gitlab)}.meter .seg-calendar{background:var(--src-calendar)}.meter .seg-manual{background:var(--src-manual)}
/* Legenda izvora: čita se uz traku i uz kolonu „Izvor", pa ne sme da bude sitnija od
   ostalog teksta u tabeli. Kvadratić je iste veličine kao tačka u oznaci izvora. */
.izvori{display:flex;gap:10px 26px;flex-wrap:wrap;list-style:none;margin:18px 0 0}.izvori:empty{display:none}.izvori li{display:flex;align-items:center;gap:9px;font-size:.9375rem;color:var(--color-neutral-700)}.izvori i{width:14px;height:14px;border-radius:4px;flex:none}.izvori b{font-weight:600;color:var(--color-text);font-variant-numeric:tabular-nums}
.tag{display:inline-flex;align-items:center;font-size:.75rem;font-weight:500;padding:4px 9px;border-radius:5px}.tag-neutral{background:var(--color-neutral-200);color:var(--color-neutral-700)}.tag-accent{background:var(--color-accent-100);color:var(--color-accent-800)}.tag-overtime{background:var(--color-danger-bg);color:var(--color-accent-2-800)}.tag-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.table tr.is-overtime td:first-child{box-shadow:inset 3px 0 var(--color-danger)}
.alert{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:20px 0;padding:15px 18px;border-radius:var(--radius-md);background:var(--color-danger-bg);font-size:.875rem;color:var(--color-accent-2-800)}
.split{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:20px;margin-top:20px}.split>.roster,.split>.col-narrow{padding:22px;border:1px solid var(--color-divider);border-radius:var(--radius-lg);background:var(--color-surface)}.roster{min-width:0}.roster-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--color-divider);font-size:.875rem}.roster-row:last-child{border:0}.roster-row .n{width:40%;min-width:0;overflow-wrap:anywhere}.roster-row .track{flex:1;height:6px;border-radius:5px;background:var(--color-neutral-200);overflow:hidden}.roster-row .track span{display:block;height:100%;background:var(--color-accent-500)}.roster-row .h{min-width:60px;text-align:right;font-size:.8125rem;font-variant-numeric:tabular-nums}.note-lg{font-size:.875rem;color:var(--color-neutral-700)}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:.8125rem;color:var(--color-neutral-600);margin:0 0 18px}.crumbs .sep{color:var(--color-neutral-400)}.lede{display:flex;justify-content:space-between;align-items:flex-start;gap:22px;flex-wrap:wrap}.lede>div{min-width:0}.title-project,.title-ticket{font-size:clamp(1.4rem,2.5vw,1.9rem);margin-bottom:12px;letter-spacing:-.025em}.lede--bottom{align-items:flex-end}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:16px;margin-top:24px}.kpi{background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-lg);padding:20px;min-width:0}.kpi .kicker{font-size:.8125rem}.kpi .v{font-size:1.8rem;font-weight:600;letter-spacing:-.03em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.kpi .note{margin-top:7px;color:var(--color-neutral-600);font-size:.8125rem}
/* Ton kartice je samo pomoć oku pri čitanju reda; koja je kartica šta, piše u njoj. */
.kpi--plavi{background:var(--kpi-plavi-bg)}.kpi--ljubicasti{background:var(--kpi-ljubicasti-bg)}.kpi--zeleni{background:var(--kpi-zeleni-bg)}.kpi--zuti{background:var(--kpi-zuti-bg)}.kpi--crveni{background:var(--kpi-crveni-bg)}.kpi--sivi{background:var(--kpi-sivi-bg)}
.budget{padding:20px;background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-lg);margin-top:20px}.budget-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:.875rem;margin-bottom:12px}.budget-track{height:9px;border-radius:5px;overflow:hidden;background:var(--color-neutral-200)}.budget-track span{display:block;height:100%;background:var(--color-accent)}.budget-track .over{background:var(--color-danger)}
.tabs,.section-tabs{display:flex;flex-wrap:wrap;gap:6px;border-bottom:1px solid var(--color-divider);margin-bottom:24px;padding-bottom:10px}.tab,.section-tab{font-size:.875rem;font-weight:500;padding:10px 16px;border:0;border-radius:var(--radius-md);background:transparent;color:var(--color-neutral-700)}.tab.on,.section-tab.on{color:var(--color-accent-700);background:var(--color-accent-100)}.tab:hover,.section-tab:hover{background:var(--color-neutral-200);text-decoration:none}
.team-card{padding:22px 0;border-top:1px solid var(--color-divider)}.team-card:first-child{border-top:0;padding-top:4px}.team-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.team-head h3{font-size:1rem}.member-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(290px,100%),1fr));gap:8px 20px;margin-bottom:18px}.member{display:flex;align-items:center;gap:10px;padding:10px;background:var(--color-neutral-100);border-radius:var(--radius-sm);font-size:.875rem;flex-wrap:wrap}.m-name{flex:1;min-width:90px;overflow-wrap:anywhere}.m-hours{font-size:.75rem;color:var(--color-neutral-600)}.member select{font-size:.8125rem;padding:6px;border:1px solid var(--color-neutral-300);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);max-width:100%}
.builder{max-width:100%}.builder>.field{display:block}.builder .input{width:100%}.builder .btn{margin-top:20px}.picker{display:flex;flex-wrap:wrap;gap:8px 18px;padding:14px;background:var(--color-neutral-100);border:1px solid var(--color-divider);border-radius:var(--radius-md);max-height:320px;overflow-y:auto}.picker label{display:flex;align-items:center;gap:8px;font-size:.875rem;min-width:min(240px,100%);max-width:100%;padding:5px;overflow-wrap:anywhere}.picker .h{color:var(--color-neutral-600);font-size:.75rem;white-space:nowrap}.picker:empty{display:none}
.unos-red{display:flex;align-items:flex-end;flex-wrap:wrap;gap:16px}.unos-red .field{flex:1 1 170px}.unos-red .input{width:100%}.manual-form .unos-red .field{flex-basis:190px}.manual-form .unos-red .field:nth-child(2){flex:0 1 120px}.input--full{width:100%}.input--sati{width:95px}.muted-row td{color:var(--color-neutral-600);background:var(--color-neutral-100)}
.hint,.note-sm{font-size:.8125rem;color:var(--color-neutral-600)}.note{font-size:.875rem;color:var(--color-neutral-700)}.muted{color:var(--color-neutral-600)}code{font-size:.8125rem;background:var(--color-neutral-100);padding:2px 5px;border-radius:4px;overflow-wrap:anywhere}
.empty{max-width:640px;margin:30px auto;padding:40px;text-align:center;background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-lg)}.empty h2{font-size:1.5rem;margin-bottom:14px}.empty p{color:var(--color-neutral-600);margin-bottom:22px}.empty-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.auth-page{min-height:100vh;background:var(--color-bg)}.auth-brand{max-width:1100px;padding:38px var(--page-gutter);margin:auto}.auth-brand .brand{width:max-content;max-width:100%}.auth-brand .wordmark{font-size:1.2rem}.auth-page main{padding-top:4vh}.signin{max-width:520px;margin:0 auto;padding:40px;border:1px solid var(--color-divider);border-radius:18px;background:var(--color-surface);box-shadow:var(--shadow-soft)}.signin h1{font-size:2rem;letter-spacing:-.035em}.signin-lede{margin-top:20px;color:var(--color-neutral-700)}.signin-btn{width:100%;margin-top:28px;padding:14px}.signin-note{margin-top:16px;font-size:.8125rem;color:var(--color-neutral-600)}
.u-mb-1{margin-bottom:var(--space-1)}.u-mb-2{margin-bottom:var(--space-2)}.u-mb-3{margin-bottom:var(--space-3)}.u-mb-4{margin-bottom:var(--space-4)}.u-mt-3{margin-top:var(--space-3)}.u-mt-4{margin-top:var(--space-4)}.u-mt-6{margin-top:var(--space-6)}.u-push-right{margin-left:auto}.u-end{align-self:flex-end}.col-mid{max-width:700px}.c-projekat{width:25%}.c-udeo{width:17%}.c-tiket{width:12%}.c-izvor{width:11%}.c-datum{width:14%}.c-agent{width:22%}.c-vreme{width:20%}.c-check{width:4%}.kicker--accent{color:var(--color-accent-700)}.td-tekst{font-size:.875rem}
[data-overview-mode=projects] .summary-grid,[data-overview-mode=projects] .overview-insights,[data-overview-mode=projects] #ovTeamBox{display:none}
[data-overview-mode=team] .overview-projects,[data-overview-mode=team] .overview-insights,[data-overview-mode=team] .unassigned-card{display:none}
[data-overview-mode=team] .split{grid-template-columns:1fr}
/* Istaknuta grupa u izveštaju: i boja i podebljan red, da se vidi i bez boje. */
.table tbody tr.je-istaknut{background:var(--color-accent-100)}.table tbody tr.je-istaknut td{font-weight:600}#rpGrupe tbody tr{cursor:pointer}
@media(min-width:1750px){.controls{margin-left:auto;margin-right:auto}.status{max-width:calc(var(--page) - 2 * var(--page-gutter));margin-left:auto;margin-right:auto}}
@media(max-width:1180px){:root{--sidebar-width:208px}.summary-card{padding:18px}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-insights{grid-template-columns:1fr 1fr}.controls .u-push-right{margin-left:0}}
@media(max-width:860px){.workspace{padding-left:0}.sidebar{display:none;position:static;width:100%;max-height:none;border-right:0;border-bottom:1px solid var(--color-divider);padding:20px}.menu-open .sidebar{display:flex}.workspace-topbar{min-height:68px}.menu-toggle{display:inline-flex}.workspace-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.nav-separator,.sidebar .nav-label{display:none!important}.sidebar .brand{margin-bottom:20px}.sidebar-bottom{padding-top:18px;display:flex;align-items:center;justify-content:space-between;gap:15px}.logout-link{margin-top:0}.sidebar .nav-link{height:100%}.page-heading{padding-top:24px}.split{grid-template-columns:1fr 1fr}.breadcrumb-label{font-size:.8125rem}.summary-card{padding:18px}}
@media(max-width:600px){:root{--page-gutter:16px}.breadcrumb-label{font-size:.75rem}.breadcrumb-label>span{margin:0 4px}.quick-add{font-size:.8125rem;padding:9px 10px}.quick-add .ui-icon{display:none}.page-description{font-size:.875rem}.page-heading h1{font-size:1.65rem}.controls{padding:14px;gap:12px}.controls>.field{flex:1 1 125px}.controls>.field:first-child{flex-basis:100%}.controls .input{width:100%}.controls .u-push-right{flex-basis:100%}.controls .u-push-right>label{display:none}.controls .u-push-right .btn{width:100%}.seg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.seg-opt{white-space:normal}.summary-grid{grid-template-columns:1fr;gap:10px}.summary-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:16px}.summary-card .summary-value,.summary-card .total{grid-row:1/3;grid-column:2;font-size:2rem;margin:0;align-self:center}.summary-card .kicker{grid-column:1}.summary-card p,.summary-card .total-note{grid-column:1}.overview-insights,.split{grid-template-columns:1fr;gap:14px}.insight-card,section.block{padding:18px}.table{min-width:580px}.kpis{gap:10px}.kpi{padding:15px}.kpi .v{font-size:1.45rem}.title-project,.title-ticket{font-size:1.4rem}.block-head{align-items:flex-start}.tabs,.section-tabs{gap:3px}.tab,.section-tab{padding:10px 11px;font-size:.8125rem}.signin{padding:28px 24px}.signin h1{font-size:1.7rem}.empty{padding:28px 20px}.roster-row .h{min-width:55px}.dateline{gap:5px}.scope-line{margin-top:4px}.status{position:relative}.manual-form .unos-red .field:nth-child(2){flex-basis:110px}.picker label{min-width:100%}.member{align-items:flex-start}}
@media(pointer:coarse){.btn,.nav-link,.tab,.section-tab,.seg-opt,.linkish{min-height:44px}.input{font-size:1rem}input[type=checkbox]{width:20px;height:20px}.picker label{min-height:44px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media print{.sidebar,.workspace-topbar,.controls,.tabs,.section-tabs,.btn,.skip-link,.logout-link{display:none!important}.workspace{padding-left:0}body{background:white}main,.page-heading,.dateline{max-width:none;padding:10px 0}.table-wrap{overflow:visible}.table{min-width:0}section.block,.summary-card,.insight-card,.kpi{box-shadow:none;break-inside:avoid}.overview-insights{grid-template-columns:1fr 1fr}.bars{overflow:visible}}

/* — razgrnute forme („Novi tim od nule") —
   Spisak je ono što se gleda svaki dan; pravljenje novog je redak posao,
   pa stoji sklopljeno da ne guta prostor. */
.razgrni > summary {
  display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap;
  cursor: pointer; list-style: none; padding: var(--space-2) 0;
}
.razgrni > summary::-webkit-details-marker { display: none; }
.razgrni > summary::before {
  content: "＋"; font-size: 15px; line-height: 1;
  color: var(--color-neutral-600);
}
.razgrni[open] > summary::before { content: "－"; }
.razgrni > summary h2 { display: inline; }
.razgrni > summary:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 3px; }
.razgrni .builder { margin-top: var(--space-3); }

/* sklopljena kartica tima: spisak se skenira, uređivanje se otvara po potrebi */
.team-card.razgrni > summary { justify-content: flex-start; }
.team-card.razgrni > summary .uredi {
  margin-left: auto; font-size: 12px; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--color-accent);
}
.team-card.razgrni[open] > summary .uredi { color: var(--color-neutral-600); }

/* dugmad uz naslov odeljka i red za dodavanje osobe u sastav */
.head-actions { display: flex; gap: var(--space-2); flex-wrap: wrap; }
.add-row { display: flex; gap: var(--space-2); align-items: center;
  margin-top: var(--space-3); flex-wrap: wrap; }
.add-row .input { max-width: 280px; }
.member.novi .m-name { color: var(--color-accent-700); }

/* dijalog potvrde */
.potvrda-omot {
  position: fixed; inset: 0; z-index: 100; display: flex;
  align-items: center; justify-content: center; padding: var(--space-4);
  background: color-mix(in srgb, var(--color-text) 45%, transparent);
}
.potvrda {
  background: var(--color-bg); max-width: 460px; width: 100%;
  padding: var(--space-6); border-radius: var(--radius-lg);
  box-shadow: 0 18px 48px color-mix(in srgb, var(--color-text) 30%, transparent);
}
.potvrda h2 { font-size: 22px; margin-bottom: var(--space-2); }
.potvrda p { color: var(--color-neutral-800); }
.potvrda-akcije { display: flex; gap: var(--space-2); justify-content: flex-end;
  margin-top: var(--space-4); }
.btn-danger { background: var(--color-accent-2); color: var(--color-bg); }
.btn-danger:hover { background: var(--color-accent-2-700); }

.kartica-akcije { display: flex; gap: var(--space-2); flex-wrap: wrap;
  margin-top: var(--space-3); }
.kartica-akcije .obrisi-tim, .kartica-akcije .obrisi-projekat {
  margin-left: auto; color: var(--color-accent-2-700);
  border-color: color-mix(in srgb, var(--color-accent-2) 35%, transparent);
}

/* negativno evidentirano vreme - traži pogled, ne ispravlja se samo */
.upozorenje {
  margin-top: var(--space-4); display: flex; align-items: baseline; gap: 12px;
  flex-wrap: wrap; padding: 12px 15px; border-radius: var(--radius-md);
  background: var(--color-accent-2-100); color: var(--color-accent-2-800);
}
.tag-upozorenje { background: var(--color-accent-2); color: var(--color-bg); }
.table tbody tr.is-sumnjivo td { background: var(--color-accent-2-100); }
.table tbody tr.is-sumnjivo .hours { color: var(--color-accent-2-800); font-weight: 600; }

.red-akcije { display: flex; gap: var(--space-2); justify-content: flex-end; }
tr.u-izmeni td { background: var(--color-accent-100); vertical-align: middle; }
tr.u-izmeni .input { width: 100%; max-width: 220px; }

.sumnjivi-spisak { list-style: none; margin: var(--space-2) 0 0; padding: 0;
  display: flex; flex-direction: column; gap: 4px; font-size: 14px; }
.sumnjivi-spisak a { font-variant-numeric: tabular-nums; }

/* akcije nad stavkom: dugmad, ne veze */
.btn-mini { font-family: var(--font-heading); font-size: 12px; line-height: 1;
  padding: 6px 12px; border-radius: var(--radius-md); cursor: pointer;
  border: 1px solid transparent; background: transparent; }
.btn-izmeni { color: var(--color-accent-800);
  background: var(--color-accent-100);
  border-color: color-mix(in srgb, var(--color-accent) 30%, transparent); }
.btn-izmeni:hover { background: var(--color-accent); color: var(--color-bg); }
.btn-obrisi { color: var(--color-accent-2-800);
  background: var(--color-accent-2-100);
  border-color: color-mix(in srgb, var(--color-accent-2) 30%, transparent); }
.btn-obrisi:hover { background: var(--color-accent-2); color: var(--color-bg); }


/* Belit brand / varijanta 3: originalni logo + odvojena oznaka aplikacije. */
.brand.brand-v3{display:flex;flex-direction:column;align-items:stretch;gap:16px;padding:0 8px;width:100%}
.brand-v3 .brand-identity{display:block;min-height:64px}
.brand-v3 .brand-logo{display:block;width:112px;height:auto;max-width:100%;object-fit:contain}
.brand-v3 .brand-fallback{font-size:1.5rem;font-weight:600;color:var(--color-text)}
.brand-v3 .brand-copy{display:flex;flex-direction:row;align-items:center;gap:10px;width:100%;padding:12px;background:var(--color-neutral-100);border:1px solid var(--color-divider);border-radius:var(--radius-md)}
.brand-v3 .brand-copy>.ui-icon{width:19px;height:19px;color:var(--color-accent-700);flex-shrink:0}
.brand-v3 .wordmark{font-size:.9375rem;font-weight:600;line-height:1.35;letter-spacing:-.015em;overflow-wrap:normal}
.brand-v3 #brandKicker{display:none}
.sidebar:has(.brand-v3) .nav-label{margin-top:24px}
.brand-v3:hover .brand-copy{border-color:var(--color-neutral-400)}
.auth-brand .brand.brand-v3{width:min(240px,100%)}
.auth-brand .brand-v3 .brand-logo{width:130px}
.auth-brand .brand-v3 .wordmark{font-size:1rem}
@media(max-width:860px){.sidebar .brand.brand-v3{max-width:240px;margin-bottom:20px;gap:12px}}

/* — tabla planiranja —
   Boja prati prag iz podešavanja, ali nikad nije jedini nosilac značenja:
   ćelija uvek pokazuje broj, preopterećenje i podebljanje, čekanje i šrafuru. */
.plan-kontrole{align-items:flex-end;flex-wrap:wrap;gap:var(--space-3)}
.plan-period{font-family:var(--font-heading);font-weight:var(--font-heading-weight);
  font-size:17px;align-self:center}
.plan-omot{overflow-x:auto;margin-top:var(--space-4)}
.plan-tabla{min-width:760px}
.plan-tabla th.plan-ime,.plan-tabla td.plan-ime{position:sticky;left:0;background:var(--color-surface);
  min-width:230px;z-index:1}
.plan-kol{white-space:nowrap}
.plan-kol b{display:block;font-size:13px}
.plan-kol.moze-klik{cursor:pointer}
.plan-kol.moze-klik:hover{color:var(--color-accent)}
.plan-ukupno{border-left:2px solid var(--color-divider);border-right:2px solid var(--color-divider)}

.plan-celija{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.plan-celija.op-slobodno{background:var(--plan-slobodno-bg);color:var(--plan-slobodno)}
.plan-celija.op-zdravo{background:var(--plan-zdravo-bg);color:var(--plan-zdravo)}
.plan-celija.op-preko{background:var(--plan-preko-bg);color:var(--plan-preko);font-weight:700}
.plan-celija.op-odsustvo{background:var(--plan-odsustvo-bg);color:var(--plan-odsustvo);
  font-size:12px;text-transform:lowercase}
.plan-celija.op-neradni,.plan-kol.op-neradni{color:var(--plan-neradni)}
.plan-celija.je-cekanje{font-style:italic;
  background-image:repeating-linear-gradient(45deg,transparent,transparent 4px,
    color-mix(in srgb,var(--plan-cekanje) 22%,transparent) 4px,
    color-mix(in srgb,var(--plan-cekanje) 22%,transparent) 8px)}

.plan-red{cursor:pointer}
.plan-red.otvoren td{border-bottom:0}
.plan-siri{margin-right:6px}
.plan-podred td{background:var(--color-neutral-100);font-size:13px;padding-top:5px;
  padding-bottom:5px}
.plan-podred .plan-ime{padding-left:var(--space-6)}
.plan-pod{text-align:right;font-variant-numeric:tabular-nums;color:var(--color-neutral-700)}
.plan-odsustvo-red td{color:var(--plan-odsustvo)}

.cip{font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--color-divider);
  background:var(--color-surface);cursor:pointer;margin-left:4px;
  font-variant-numeric:tabular-nums}
.cip:hover{border-color:var(--color-accent);color:var(--color-accent)}
.cip-cekanje{font-style:italic;border-style:dashed}

.legenda{list-style:none;display:flex;flex-wrap:wrap;gap:8px 20px;margin:var(--space-4) 0 0;
  padding:0;font-size:12px;color:var(--color-neutral-700)}
.legenda li{display:flex;align-items:center;gap:7px}
.legenda i{width:14px;height:14px;display:block;border-radius:3px;
  border:1px solid var(--color-divider)}
.legenda i.op-slobodno{background:var(--plan-slobodno-bg)}
.legenda i.op-zdravo{background:var(--plan-zdravo-bg)}
.legenda i.op-preko{background:var(--plan-preko-bg)}
.legenda i.op-odsustvo{background:var(--plan-odsustvo-bg)}
.legenda i.op-neradni{background:var(--color-surface)}
.legenda i.je-cekanje{background-image:repeating-linear-gradient(45deg,transparent,transparent 3px,
  color-mix(in srgb,var(--plan-cekanje) 30%,transparent) 3px,
  color-mix(in srgb,var(--plan-cekanje) 30%,transparent) 6px)}

/* — dijalog zauzeća i dnevni pregled —
   Traka pokazuje svaki radni dan izabranog opsega, obojen istim pragovima kao
   tabla: isti sistem, da se ne uči dvaput. */
.dijalog-omot{position:fixed;inset:0;z-index:120;display:flex;align-items:center;
  justify-content:center;padding:var(--space-4);
  background:color-mix(in srgb,var(--color-text) 45%,transparent);overflow:auto}
.dijalog{background:var(--color-surface);max-width:720px;width:100%;
  padding:var(--space-6);border-radius:var(--radius-lg);
  box-shadow:0 18px 48px color-mix(in srgb,var(--color-text) 30%,transparent)}
.dijalog h2{font-size:22px;margin-bottom:var(--space-4)}
.dijalog-akcije{display:flex;gap:var(--space-2);align-items:center;margin-top:var(--space-6)}
.z-prevod{align-self:flex-end;padding-bottom:9px;font-variant-numeric:tabular-nums}

.pregled-traka{display:flex;gap:2px;flex-wrap:wrap;align-items:flex-end}
.pregled-dan{width:16px;height:34px;border-radius:2px;position:relative;
  background:var(--color-neutral-200)}
.pregled-dan.op-slobodno{background:var(--plan-slobodno-bg);
  border-bottom:3px solid var(--plan-slobodno)}
.pregled-dan.op-zdravo{background:var(--plan-zdravo-bg);
  border-bottom:3px solid var(--plan-zdravo)}
.pregled-dan.op-preko{background:var(--plan-preko-bg);
  border-bottom:3px solid var(--plan-preko)}
.pregled-dan.op-odsustvo{background:var(--plan-odsustvo-bg);
  border-bottom:3px solid var(--plan-odsustvo)}
.pregled-dan.op-neradni{background:transparent;border-bottom:3px solid var(--plan-neradni);
  height:12px}

.max-preko{color:var(--plan-preko);font-weight:700}
.tag-approved{background:var(--plan-zdravo-bg);color:var(--plan-zdravo)}
.tag-pending{background:var(--plan-odsustvo-bg);color:var(--plan-odsustvo);font-style:italic}
.tag-rejected{background:var(--plan-preko-bg);color:var(--plan-preko)}
/* Ćelija tabele sme da prelomi dugačak tekst bilo gde (overflow-wrap:anywhere), ali
   oznaka ne: u uskoj koloni (npr. „uvezeno" u .c-check) išla bi slovo ispod slova.
   Oznaka od više reči se i dalje prelama, samo na razmaku. */
.table td .tag{overflow-wrap:normal}

/* Oznaka izvora u tabeli: tačka nosi istu boju kao traka i legenda, ali naziv je
   uvek ispisan — boja je dopuna, ne jedini nosilac značenja. */
.tag-izvor{gap:7px;background:var(--color-surface);color:var(--color-neutral-700);
  border:1px solid var(--color-divider);white-space:nowrap}
.tag-izvor i{width:10px;height:10px;border-radius:3px;flex:none;background:var(--color-neutral-400)}
.tag-izvor[data-izvor=zammad] i{background:var(--src-zammad)}
.tag-izvor[data-izvor=gitlab] i{background:var(--src-gitlab)}
.tag-izvor[data-izvor=calendar] i{background:var(--src-calendar)}
.tag-izvor[data-izvor=manual] i{background:var(--src-manual)}

/* Planirano naspram evidentiranog: preko plana nosi i boju i deblja slova i znak
   „+", pa se razlika vidi i bez boje. Traka prati isto pravilo kao budžet. */
.ucinak-preko{color:var(--color-danger);font-weight:600}
.ucinak-ispod{color:var(--color-neutral-700)}
.meter span.over{background:var(--color-danger)}

/* — prikaz tima: prvo tim, pa čovek — */
.tim-kartica{border-bottom:1px solid var(--color-divider);padding:var(--space-2) 0}
.tim-kartica > summary{display:flex;align-items:baseline;gap:14px;cursor:pointer;
  list-style:none}
.tim-kartica > summary::-webkit-details-marker{display:none}
.tim-kartica > summary h3{font-family:var(--font-heading);font-size:18px}
.tim-sati{margin-left:auto;font-family:var(--font-heading);font-size:18px;
  font-variant-numeric:tabular-nums}
.clanovi{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:8px;margin:var(--space-3) 0 var(--space-2)}
.clan{display:flex;align-items:center;gap:10px;padding:8px 10px;cursor:pointer;
  background:var(--color-neutral-100);border:1px solid transparent;
  border-radius:var(--radius-md);text-align:left;width:100%}
.clan:hover{border-color:var(--color-accent);background:var(--color-surface)}
.clan-lice{width:30px;height:30px;flex:0 0 30px;border-radius:50%;display:grid;
  place-items:center;overflow:hidden;background:var(--color-neutral-200);
  font-size:12px;font-weight:600;color:var(--color-neutral-700)}
.clan-lice img{width:100%;height:100%;object-fit:cover}
.clan-ime{flex:1;font-size:14px}
.clan-sati{font-variant-numeric:tabular-nums;font-size:14px}

/* upozorenje o zastareloj šemi - stoji iznad svega, jer aplikacija do migracije
   radi samo delimično */
.sema-upozorenje{background:var(--plan-preko-bg);color:var(--plan-preko);
  padding:10px 18px;font-size:14px;display:flex;gap:10px;flex-wrap:wrap;
  border-bottom:2px solid var(--plan-preko)}
