[hidden]{display:none!important}button,.button{font:inherit}button,a.button,.button{touch-action:manipulation}button:disabled{cursor:wait;opacity:.65}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #75b8e9;outline-offset:2px}.button,button.primary{display:inline-block;padding:10px 14px;background:#126cbd;color:#fff;border:1px solid #126cbd;border-radius:8px;text-decoration:none;font-weight:700}.workspaceTools{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:15px}.workspaceTools>button{border:1px solid #b8d3e7;background:#fff;border-radius:8px;padding:10px;color:#123d68}.exampleToggle{display:flex;align-items:center;gap:7px;font-size:13px;margin-right:auto}.exampleToggle input{width:18px;height:18px}.exampleNotice,.exampleBadge{background:#fff2cc;color:#805600;border-radius:5px;padding:5px;font-weight:750}.exampleBadge{font-size:10px;display:block;width:fit-content;margin-top:5px}.issueStats{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.issueStats button{flex:1;min-width:150px;border:1px solid #d2e1ee;border-radius:9px;padding:12px;background:white;color:#123d68}.issueStats strong{display:block;margin-top:4px;font-size:23px}.metric[data-metric="Valmiit"]{background:#e2f5e9;color:#176139}.metric[data-metric="Odottaa"]{background:#fff3cf;color:#795600}.metric[data-metric="Tulematta"]{background:#f0f2f5;color:#5f6b7a}.objectLink{padding:4px 0;border:0;background:none;font-weight:850;color:#1471b4;text-align:left}.stateBtn{border:1px solid #b5d6ed;border-radius:8px;padding:7px;background:#eaf5ff;color:#15527d;font-weight:700}.stateBtn.ready{background:#e1f5e8;color:#176139}.stateBtn.waiting{background:#fff3cf;color:#795600}.rowNote{display:block;max-width:200px;overflow:hidden;text-overflow:ellipsis;margin-top:5px;color:#5f7384}.photoBtn{min-height:36px}.sectionHead{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.sectionHead h3{margin:0}.productionPanel{padding:20px}.weekly{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:15px 0}.weekly>div{padding:12px;background:#f1f6fa;border-radius:10px}.weekly span{font-size:12px;display:block;color:#5f7384}.weekly b{font-size:20px;display:block;margin-top:5px}.weekBars{display:flex;gap:12px;align-items:end;max-width:500px;margin:20px auto 0}.dayBar{flex:1;text-align:center;font-size:11px}.barTracks{height:75px;display:flex;gap:3px;align-items:end;justify-content:center}.barTracks i{width:18px;background:#cad7e3;border-radius:3px 3px 0 0}.barTracks i:last-child{background:#126cbd}.dayBar span,.dayBar b{display:block;margin-top:3px}.chartCaption{font-size:11px;text-align:center}.loginScreen{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(130deg,#e6f0f8,#f7fbfe)}.loginCard{width:min(420px,100%);background:white;padding:30px;border:1px solid #d5e4ee;border-radius:18px;box-shadow:0 12px 40px #123d6815}.loginCard h1{font-size:34px}.loginCard label{display:block;margin:15px 0 5px;font-weight:700}.loginCard input{width:100%;padding:12px;border:1px solid #b5c9da;border-radius:8px;font:inherit}.loginCard button{width:100%;margin:8px 0 17px}.loginCard small{display:block;text-align:center}.formError{color:#b42318;font-weight:650;white-space:normal;min-height:20px}.contact button{padding:7px;border:1px solid #b8d3e7;border-radius:8px;background:white;color:#123d68;font-size:12px}#notice:not(:empty){position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:1000;padding:13px 20px;background:#143d5e;color:#fff;border-radius:12px;box-shadow:0 6px 25px #102b4b55;max-width:90vw}dialog{border:1px solid #c9dce9;border-radius:16px;padding:23px;color:#102e50;box-shadow:0 18px 70px #0c223a55;max-height:94vh;max-width:96vw;overscroll-behavior:contain}dialog::backdrop{background:#0c243c88}.detailDialog{width:1100px}.formDialog{width:540px}.dialogHead{display:flex;justify-content:space-between;gap:15px;align-items:start}.dialogHead h2{margin:0}.dialogHead p{color:#62798d}.closeDialog{white-space:nowrap;padding:9px;border:1px solid #b5c9da;background:#f4f8fb;border-radius:8px}.detailFacts{display:flex;gap:14px;flex-wrap:wrap;background:#edf5fb;padding:15px;border-radius:10px}.detailFacts span{font-size:12px;color:#587084}.detailFacts b{display:block;font-size:16px;color:#153e60;margin-top:4px}.detailActions{display:flex;gap:9px;flex-wrap:wrap;margin:14px 0}.detailActions button,.detailSection>button{border:1px solid #abc7da;padding:10px 13px;border-radius:8px;background:#eaf4fc;color:#14446b;font-weight:700}.detailActions .primary,.sectionHead .primary{background:#126cbd;color:#fff;border:0;padding:10px 13px;border-radius:8px}.detailSection{border-top:1px solid #dfebf3;padding:18px 0;margin-top:18px}.detailSection h3{margin:0 0 12px}.detailSection textarea{width:100%;resize:vertical;border:1px solid #b5c9da;border-radius:8px;padding:10px;font:inherit}.issueCard{border:1px solid #d5e3ed;background:#f9fcfe;border-radius:12px;padding:15px;margin:16px 0}.issueCard p,.timeline p{overflow-wrap:anywhere}.issueCard select{border:1px solid #a4c7de;border-radius:8px;padding:8px;background:white;font:inherit}.photoGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin:13px 0}.photoGrid figure{margin:0;background:white;border:1px solid #d7e4ee;padding:7px;border-radius:9px}.photoGrid img{width:100%;height:125px;object-fit:cover;border-radius:5px}.photoGrid figcaption{font-size:12px;overflow-wrap:anywhere}.photoGrid small,.timeline small{display:block;color:#5f768a;font-size:11px;margin:6px 0}.timeline p{font-size:13px;border-left:3px solid #d7e5f1;padding-left:10px}.formDialog h2{font-size:23px;margin-top:0}.formDialog label:not(.button){display:block;font-weight:700;margin:14px 0 5px}.formDialog input:not([type=radio]):not([type=file]),.formDialog select,.formDialog textarea{width:100%;border:1px solid #b5c9da;border-radius:8px;font:inherit;padding:10px}.formDialog .radioLabel{display:flex!important;gap:8px;align-items:center;background:#edf5fc;padding:10px;border-radius:8px;font-size:14px}.radioLabel input{width:18px;height:18px;flex-shrink:0}.inherited{font-size:13px;background:#e5f5e9;color:#215d35;padding:9px;border-radius:7px}.fileButton{position:relative;overflow:hidden;margin:0;cursor:pointer;background:#eaf4fc;color:#14446b}.fileButton input{position:absolute;width:1px;height:1px;opacity:0}.fileButton:focus-within{outline:3px solid #75b8e9}.pendingPhotos{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.pendingPhotos>div{display:flex;flex-direction:column;gap:5px;border:1px solid #d6e5ef;border-radius:8px;padding:5px}.pendingPhotos img{width:100%;height:85px;object-fit:cover;border-radius:5px}.pendingPhotos span{font-size:10px;overflow:hidden;text-overflow:ellipsis}.pendingPhotos button{font-size:11px;padding:5px;border:1px solid #d2dfe8;border-radius:5px;background:white}.issueActions{flex-wrap:wrap}.formDialog .issueActions button:last-child{background:#126cbd;color:white}.formDialog small{color:#587084}@media(max-width:750px){.weekly{grid-template-columns:repeat(2,1fr)}dialog{padding:15px}.detailFacts{gap:12px}.detailFacts span{flex-basis:44%}.detailActions>*{flex:1;text-align:center;font-size:13px}.formDialog h2,.dialogHead h2{font-size:20px}.photoGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.contact{display:flex;flex-wrap:wrap;gap:8px}.workspaceTools .exampleToggle{width:100%}.issueStats button{min-width:140px}.productionPanel{padding:14px}}
@media print{.nav,.tools,.workspaceTools,button,.cards,.footer,dialog{display:none!important}body,main{background:white}.tablewrap{overflow:visible}table{min-width:0}th,td{white-space:normal;font-size:8px;padding:4px}.hero{min-height:0;background:white;padding:8px}.metrics{grid-template-columns:repeat(8,1fr)}.metric{padding:4px}.metric b{font-size:18px}.photoGrid{break-inside:avoid}}

/* Unified compact list */
#kohteet .tablewrap table{min-width:650px;width:100%}#kohteet .rowMeta{display:block;margin-top:3px;color:#61778d;font-size:11px}#kohteet .compactNotes{display:flex;align-items:center;gap:6px;flex-wrap:wrap}#kohteet .compactNotes button{white-space:nowrap}#kohteet .rowNote{display:block;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#kohteet th:nth-child(1){min-width:110px}#kohteet th:nth-child(4){min-width:170px}
