/* OstoVirran alkuperäinen sininen ilme, sovitettuna tuotannon näkymiin. */
@font-face{font-family:'OstoVirta Inter';font-style:normal;font-weight:400;src:url('/ov-classic-inter-400.woff2') format('woff2');font-display:swap}
@font-face{font-family:'OstoVirta Inter';font-style:normal;font-weight:700;src:url('/ov-classic-inter-700.woff2') format('woff2');font-display:swap}
@font-face{font-family:'OstoVirta Inter';font-style:normal;font-weight:800;src:url('/ov-classic-inter-800.woff2') format('woff2');font-display:swap}
.ov-classic-ui,.ov-account-page{font-family:'OstoVirta Inter',Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
:root{--ov-ink:#0b1f42;--ov-muted:#64748b;--ov-line:#d9e4f2;--ov-blue:#1465d9;--ov-navy:#071f63;--ov-soft:#eaf4ff;--ov-shadow:0 14px 40px rgba(7,31,99,.075)}
.ov-classic-ui{background:#f4f8fd;color:var(--ov-ink)}
.ov-classic-ui h1,.ov-classic-ui h2,.ov-classic-ui h3{letter-spacing:-.035em}
.ov-classic-ui [hidden]{display:none!important}
.ov-classic-ui button:focus-visible,.ov-classic-ui a:focus-visible,.ov-account-page button:focus-visible,.ov-account-page a:focus-visible{outline:3px solid #21b9ed;outline-offset:3px}
.ov-classic-ui .primary-button{background:linear-gradient(135deg,var(--ov-blue),#0a46b7);color:#fff;border-radius:12px;box-shadow:0 5px 16px #1465d914}
.ov-classic-ui .secondary-button{color:var(--ov-blue);border-color:var(--ov-line);border-radius:12px;background:#fff}
.ov-classic-ui .secondary-button:hover{background:#f3f8ff}
.ov-classic-ui input,.ov-classic-ui select,.ov-classic-ui textarea{border-color:var(--ov-line);border-radius:12px;color:var(--ov-ink)}
.ov-product-brand img{display:block;width:200px;max-width:100%;height:auto}
.ov-classic-ui .login-view,.ov-account-page{background:radial-gradient(circle at 12% 10%,#1dc4f247,transparent 32%),radial-gradient(circle at 92% 88%,#1465d933,transparent 34%),linear-gradient(145deg,#041744,#071f63 52%,#0b3f9b)}
.ov-classic-ui .login-view{min-height:100svh;padding:40px 24px}
.ov-login-layout{width:min(1084px,100%);display:grid;grid-template-columns:1.15fr .84fr;gap:28px;align-items:center}
.ov-login-brand-panel{min-height:580px;display:flex;flex-direction:column;justify-content:center;padding:54px;color:white;border-radius:30px;background:linear-gradient(150deg,#ffffff22,#ffffff09);border:1px solid #ffffff26;box-shadow:0 24px 70px #06123c20}
.ov-login-logo{display:block;width:100%;height:auto;filter:brightness(0) invert(1);margin:0 0 42px}
.ov-login-brand-panel h2{font-size:42px;line-height:1.1;margin:0 0 18px;letter-spacing:-.04em}
.ov-login-brand-panel p{font-size:17px;line-height:1.65;color:#d2dff2;margin:0}
.ov-login-brand-panel ul{display:grid;gap:12px;list-style:none;margin:40px 0 0;padding:0;font-size:14px;font-weight:700;color:#eef4ff}
.ov-login-brand-panel li::before{content:'✓';margin-right:9px;color:#8ae2ef}
.ov-classic-ui .login-card{width:100%;padding:36px;border:1px solid #ffffff99;border-radius:26px;box-shadow:0 24px 70px #00113f25}
.ov-classic-ui .login-card>.brand{display:none}
.ov-classic-ui .login-heading{margin:0 0 28px}
.ov-classic-ui .login-heading h1{font-size:30px;margin:7px 0 0}
.ov-classic-ui .login-heading p{font-size:15px;line-height:1.65;color:var(--ov-muted)}
.ov-classic-ui #login-form{gap:8px}
.ov-classic-ui #login-form label{margin:5px 0 0}
.ov-classic-ui #login-form input{margin-bottom:9px;min-height:50px}
.ov-classic-ui #login-button{min-height:48px;margin-top:8px}
.ov-classic-ui .security-note{font-size:12px;color:var(--ov-muted);margin-top:18px;padding-top:16px}
.ov-classic-ui .app-view{padding:26px 30px 52px 280px;min-height:100vh}
.ov-classic-ui .topbar{width:min(1368px,100%);margin:0 auto 20px;min-height:94px;padding:20px 22px;border:1px solid #e7eefd;border-radius:22px;background:#ffffffed;box-shadow:var(--ov-shadow);position:relative;z-index:2;gap:16px}
.ov-topbar-heading{display:flex;align-items:center;gap:12px;min-width:0}
.ov-classic-ui #ov-page-title{font-size:30px;line-height:1.15;margin:6px 0 0}
.ov-classic-ui #ov-title-company{font-size:11px;letter-spacing:.14em;overflow-wrap:anywhere}
.ov-classic-ui .user-area{gap:14px;flex-shrink:0}
.ov-classic-ui .user-data{border:1px solid #d7e5fb;border-radius:999px;background:#f0f6ff;padding:8px 14px;text-align:right}
.ov-classic-ui .user-data strong{font-size:12px;max-width:240px;overflow-wrap:anywhere}
.ov-classic-ui .user-data span{display:block;font-size:10px;color:var(--ov-muted);margin:0 0 3px}
.ov-menu-button{display:none}
.ov-sidebar{position:fixed;top:0;left:0;bottom:0;width:250px;z-index:40;display:flex;flex-direction:column;overflow-y:auto;background:linear-gradient(180deg,#073493,#146ed5);color:#fff;padding:24px 12px 16px}
.ov-company-themed .ov-sidebar{background:linear-gradient(180deg,color-mix(in srgb,var(--ov-company-accent) 72%,#071b4e),var(--ov-company-accent))}
.ov-company-themed .ov-nav-button[aria-current="page"],.ov-company-themed .ov-nav-button.active{border-left-color:color-mix(in srgb,var(--ov-company-accent) 35%,white);background:color-mix(in srgb,var(--ov-company-accent) 75%,white 25%)}
.ov-classic-ui.ov-company-themed .primary-button,.ov-classic-ui.ov-company-themed .step-number,.ov-classic-ui.ov-company-themed .archive-filter-button.active,.ov-classic-ui.ov-company-themed .settings-actions .primary-button{background:var(--ov-company-accent)!important;color:var(--ov-company-accent-text)!important}
.ov-classic-ui.ov-company-themed :is(input,select,textarea):focus{border-color:var(--ov-company-accent)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--ov-company-accent) 18%,transparent)}
.ov-classic-ui.ov-company-themed .ov-company-banner,.ov-classic-ui.ov-company-themed .ov-industry-card{border-color:color-mix(in srgb,var(--ov-company-accent) 28%,var(--ov-line))}
.ov-sidebar-heading{border-bottom:1px solid #ffffff20;padding:0 4px 24px}
.ov-sidebar #home-button{display:flex;align-items:center;width:100%;gap:12px;text-align:left;color:#fff;border-radius:12px}
.ov-sidebar-company{display:flex;flex-direction:column;gap:5px;min-width:0}
.ov-sidebar #company-name{font-size:16px;overflow-wrap:anywhere;line-height:1.2}
.ov-sidebar #topbar-product-name{font-size:12px;font-weight:400;color:#d4e3ff}
.ov-sidebar #topbar-logo-fallback,.ov-sidebar #topbar-company-logo{width:48px;height:48px;flex:0 0 48px;border-radius:14px;background:#fff;object-fit:contain;padding:6px;margin:0}
.ov-sidebar #topbar-logo-fallback img{width:100%;height:100%;object-fit:contain}
.ov-nav{display:grid;gap:6px;margin-top:20px}
.ov-nav button{width:100%;display:flex;align-items:center;gap:12px;min-height:48px;padding:10px 14px;border:1px solid transparent;border-radius:12px;background:transparent;color:#dce8ff;font-weight:700;text-align:left;font-size:15px}
.ov-nav button>span{font-size:19px;width:20px;text-align:center;flex:0 0 20px}
.ov-nav button:hover,.ov-nav button[aria-current="page"]{background:#ffffff1f;color:#fff;border-color:#ffffff30}
.ov-nav button[aria-current="page"]{box-shadow:inset 3px 0 0 #55c6f3}
.ov-nav #settings-button{background:transparent;color:#dce8ff;border-color:transparent}
.ov-nav #settings-button:hover,.ov-nav #settings-button[aria-current="page"]{background:#ffffff1f;color:#fff}
.ov-sidebar-foot{margin-top:auto;padding:24px 5px 0}
.ov-powered{display:flex;gap:6px;align-items:center;border-top:1px solid #ffffff26;padding:18px 0 10px;font-size:12px;color:#d3e5ff}
.ov-powered img{width:25px;height:25px;filter:brightness(0) invert(1);margin-right:3px}
.ov-powered strong{color:#fff}
.ov-sidebar #logout-button{padding:10px 0;min-height:38px;border:0;background:transparent;color:#fff;font-size:13px;box-shadow:none}
.ov-classic-ui :is(.dashboard,.archive-page,.reporting-page,.settings-page,.purchase-page){width:min(1368px,100%);max-width:1368px;margin:0 auto;padding:0}
.ov-classic-ui .dashboard-heading{margin:0 0 20px}
.ov-company-banner{position:relative;overflow:hidden;background:linear-gradient(120deg,#fff 12%,#e0edfc);border:1px solid var(--ov-line);border-radius:25px;padding:22px;box-shadow:var(--ov-shadow);align-items:center!important}
.ov-company-banner::after{content:'';position:absolute;width:220px;height:220px;right:-65px;top:-105px;border-radius:50%;background:#1465d909;pointer-events:none}
.ov-company-main{display:flex;align-items:center;gap:18px;min-width:0;position:relative;z-index:1}
.ov-company-logo{width:80px;height:80px;flex:0 0 80px;background:#fff;border-radius:21px;box-shadow:0 7px 20px #0b1f4214;display:grid;place-items:center;padding:10px}
.ov-company-logo img{width:100%;height:100%;object-fit:contain}
.ov-company-main h2{font-size:22px;margin:5px 0 0}
.ov-company-main p{font-size:14px;line-height:1.5;margin:6px 0 0!important}
.ov-company-actions{display:flex;flex-direction:column;align-items:flex-end;gap:10px;position:relative;z-index:1;flex:0 0 auto}
.ov-classic-ui .status-pill{padding:5px 9px;font-size:11px;background:#e8f5ed;color:#276544;white-space:nowrap}
.ov-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:18px}
.ov-metric{background:#fff;border:1px solid var(--ov-line);border-radius:24px;padding:23px;box-shadow:var(--ov-shadow);min-height:143px;display:flex;flex-direction:column;align-items:flex-start}
.ov-metric>span{color:var(--ov-muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.045em;line-height:1.4}
.ov-metric strong{font-size:38px;font-weight:800;line-height:1.15;margin:13px 0 6px;letter-spacing:-.04em}
.ov-metric small{font-size:12px;color:var(--ov-muted);line-height:1.4}
.ov-interface-ready .dashboard-grid{display:none}
.ov-recent{margin-top:30px}
.ov-classic-ui .section-heading{align-items:center;margin:0 0 16px;gap:18px}
.ov-classic-ui .section-heading h2{font-size:23px;margin:0}
.ov-classic-ui .section-heading p{font-size:13px;line-height:1.5;color:var(--ov-muted);margin:5px 0 0}
.ov-recent-actions{display:flex;gap:8px;flex-shrink:0}
.ov-recent-table{position:relative;min-width:0;max-width:100%;border:1px solid var(--ov-line);border-radius:20px;overflow:auto;background:#fff}
.ov-recent-table table{width:100%;border-collapse:collapse;font-size:13px;min-width:700px}
.ov-recent-table th{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--ov-muted);background:#fafcfe;text-align:left;padding:15px 16px}
.ov-recent-table td{border-top:1px solid #edf1f6;padding:15px 16px;white-space:nowrap;line-height:1.5}
.ov-recent-table td:nth-child(3){white-space:normal;max-width:260px;overflow-wrap:anywhere}
.ov-recent-table td:nth-child(4){font-weight:800}
.ov-recent-table td:last-child{text-align:right}
.ov-receipt-link{padding:0;border:0;background:none;color:var(--ov-ink);font-weight:800;text-align:left;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:4px;min-height:26px}
.ov-receipt-link:hover{text-decoration-color:currentColor}
.ov-recent-table .archive-status{font-size:10px;min-height:24px;padding:4px 9px;display:inline-flex;align-items:center;background:#e8f4ee;color:#215e45;border:1px solid #cbe6d8;border-radius:999px;font-weight:800}
.ov-recent-table .archive-status.voided{background:#fdf0ed;color:#aa5349;border-color:#f3d5cd}
.ov-recent-table .archive-status.replaced{background:#efedfc;color:#62559a;border-color:#dcd5f7}
.ov-classic-ui .draft-section{margin-top:32px}
.ov-classic-ui .draft-row{grid-template-columns:minmax(160px,1fr) auto auto auto;border-color:var(--ov-line);border-radius:16px;gap:16px}
.ov-classic-ui .draft-meta,.ov-classic-ui .empty-state{color:var(--ov-muted)}
.ov-classic-ui :is(.form-card,.settings-card){border-color:var(--ov-line);border-radius:22px;box-shadow:var(--ov-shadow)}
.ov-classic-ui :is(.archive-page-heading,.reporting-heading,.settings-heading,.purchase-page-heading){margin:28px 0 24px}
.ov-classic-ui :is(.archive-page-heading,.reporting-heading,.settings-heading,.purchase-page-heading) h1{font-size:28px;letter-spacing:-.035em;margin:7px 0 0}
.ov-classic-ui .back-button{margin-bottom:18px;color:var(--ov-blue);font-size:13px}
.ov-classic-ui :is(.archive-page-heading,.reporting-heading,.settings-heading,.purchase-page-heading) p{color:var(--ov-muted);line-height:1.6;font-size:14px}
.ov-classic-ui :is(.archive-row,.report-row,.archive-detail,.report-summary,.archive-summary,.report-controls){border-color:var(--ov-line);border-radius:16px;background:#fff}
.ov-classic-ui .purchase-total-box{background:linear-gradient(135deg,#0b3f9b,#1465d9)}
.ov-classic-ui .settings-actions{padding-bottom:24px}
.ov-classic-ui #ov-devices-card{scroll-margin-top:25px}
.ov-classic-ui :is(.billing-required-view,#company-onboarding-view){background:linear-gradient(145deg,#edf6ff,#f8fbff 48%,#eef7ff);padding:36px 20px;min-height:100svh}
.ov-classic-ui :is(.billing-required-card,.ov-onboarding-card){border:1px solid var(--ov-line);border-radius:28px;box-shadow:0 22px 70px #071f6314}
.ov-classic-ui .billing-required-card>.brand{margin-bottom:30px}
.ov-classic-ui .ov-onboarding-brand img{width:185px}
.ov-classic-ui .ov-onboarding-card input,.ov-classic-ui .ov-onboarding-card select{border-color:var(--ov-line)}
.ov-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.ov-account-page{padding:32px 20px;color:var(--ov-ink);min-height:100svh}
.ov-account-page>.card{border-radius:26px;box-shadow:0 24px 80px #00113f40}
.ov-account-page .brand{margin-bottom:30px}
.ov-account-page input{border-color:var(--ov-line);border-radius:12px}
.ov-account-page form button{background:linear-gradient(135deg,#1465d9,#0a46b7);border-radius:12px}
@media(min-width:901px){.ov-menu-overlay{display:none!important}}
@media(max-width:1200px){.ov-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.ov-company-actions .status-pill{display:none}.ov-company-banner{gap:16px}.ov-classic-ui .user-data strong{max-width:150px}}
@media(max-width:900px){
 .ov-login-layout{grid-template-columns:1fr;max-width:480px}.ov-login-brand-panel{display:none}.ov-classic-ui .login-card>.brand{display:block;margin-bottom:30px}.ov-classic-ui .login-card{padding:32px}
 .ov-classic-ui .app-view{padding:18px 18px 40px}.ov-sidebar{transform:translateX(-100%);transition:transform .18s ease;width:260px}.ov-classic-ui.ov-menu-open .ov-sidebar{transform:translateX(0)}
 .ov-menu-button{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border:1px solid var(--ov-line);border-radius:11px;background:#fff;color:var(--ov-ink);font-size:22px}
 .ov-menu-overlay{position:fixed;inset:0;border:0;border-radius:0;background:#071f6377;z-index:35;padding:0}
 .ov-classic-ui .topbar{padding:17px 18px;min-height:84px;border-radius:19px}.ov-classic-ui #ov-page-title{font-size:25px}.ov-classic-ui #ov-title-company{font-size:10px}
 .ov-classic-ui .user-data{display:none}.ov-classic-ui .topbar .user-area{gap:0}.ov-company-banner{padding:20px}.ov-company-main p{font-size:13px}
}
@media(max-width:600px){
 .ov-classic-ui .login-view{padding:20px 16px}.ov-classic-ui .login-card{padding:28px 24px}.ov-classic-ui .app-view{padding:12px 12px 32px}.ov-classic-ui .topbar{padding:15px 13px;gap:8px;margin-bottom:16px}
 .ov-classic-ui #ov-page-title{font-size:22px}.ov-classic-ui .ov-topbar-new{padding:0 11px;font-size:12px;min-height:40px}.ov-classic-ui #ov-title-company{font-size:9px;letter-spacing:.075em}
 .ov-company-banner{border-radius:20px;flex-direction:column;align-items:stretch!important;padding:18px}.ov-company-logo{width:60px;height:60px;flex-basis:60px;border-radius:17px}.ov-company-main{gap:13px}.ov-company-main h2{font-size:20px}.ov-company-actions{align-items:flex-start}
 .ov-company-actions button{font-size:12px;min-height:38px}.ov-metrics{gap:10px}.ov-metric{padding:17px 15px;border-radius:19px;min-height:133px}.ov-metric>span{font-size:10px}.ov-metric strong{font-size:32px}.ov-metric small{font-size:11px}
 .ov-classic-ui .section-heading{align-items:flex-start;flex-direction:column;gap:12px}.ov-classic-ui .section-heading h2{font-size:22px}.ov-recent-actions{width:100%}.ov-recent-actions button{min-height:40px;font-size:12px}
 .ov-classic-ui .draft-row{grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:16px}.ov-classic-ui .draft-row>div:nth-child(2){display:none}.ov-classic-ui .draft-row button{grid-column:1/-1}
 .ov-classic-ui :is(.form-card,.settings-card){padding:20px 16px;border-radius:19px}.ov-classic-ui .purchase-page-heading{flex-direction:column}.ov-classic-ui .purchase-total-box{width:100%}
 .ov-classic-ui :is(.billing-required-view,#company-onboarding-view){padding:20px 12px}.ov-classic-ui :is(.billing-required-card,.ov-onboarding-card){padding:24px 20px;border-radius:22px}
}
@media(max-width:380px){.ov-classic-ui .ov-topbar-new{display:none}.ov-metric>span{font-size:9px}}
@media(prefers-reduced-motion:reduce){.ov-sidebar{transition:none}}
@media print{.ov-sidebar,.ov-menu-button,.ov-menu-overlay{display:none!important}.ov-classic-ui .app-view{padding:0}}
