/* Hallmark · shape: app screen · genre: modern-minimal · theme: brand · redesign: full · nav: left project directory · signature: project ledger and weekly plan · states: existing full, empty, loading and error · axes: light/grotesk-sans/warm · posture: restrained · contrast: reviewed · v2.0.0 */
/* Hallmark · pre-emit critique: P5 H5 E5 S5 R4 V5 · weakest: inherited density, new workspace structure separates navigation from working documents */
/* Hallmark · answered F4 · This stylesheet serves separate staff, customer and document screens. They share one ink primary; panel actions and the floating summary are quiet secondary controls. */
/* Hallmark · answered F7 · Repeated recipes are aliases for light and dark versions of the same controls, and borderless section separators. Form controls deliberately share one accessible geometry across screens. */
@import url('../brand/tokens.css');
.inno-logo,.sq-logo,.qp-logo,.customer-portal .cp-brand>span{background-image:url('/brand/logo.png?v=20261103')}
html,body{overflow-x:clip}html{scrollbar-color:var(--color-muted) var(--color-paper)}::selection{background:var(--color-ink);color:var(--color-paper)}body{font-family:var(--font-body);font-synthesis:none;background:var(--color-paper);color:var(--color-ink)}h1,h2,h3,h4{min-width:0;overflow-wrap:break-word;text-wrap:balance}p{text-wrap:pretty}button,input,select,textarea,summary{font-family:var(--font-body)}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--color-focus)!important;outline-offset:3px}button:disabled,[aria-disabled=true]{cursor:not-allowed;opacity:.5}button[aria-busy=true],form[aria-busy=true]{cursor:progress}
@media screen {
body{font-size:var(--text-sm);line-height:1.6}.theme-dark{background:var(--color-paper);color:var(--color-ink)}
#app>.inno-app-shell{min-height:100dvh}.inno-sidebar{position:fixed;inset:0 auto 0 0;z-index:30;width:232px;display:flex;flex-direction:column;align-items:stretch;gap:0;min-height:0;padding:var(--space-32) var(--space-lg) var(--space-lg);background:var(--color-paper-2);border:0;border-right:1px solid var(--color-rule);box-shadow:none;backdrop-filter:none;flex-wrap:nowrap}.inno-sidebar .inno-logo{width:142px;height:56px;flex:none;margin:0 0 36px;mix-blend-mode:multiply}.theme-dark .inno-sidebar{color:var(--color-ink);background:var(--color-paper-2);border-color:var(--color-rule)}.theme-dark .inno-sidebar .inno-logo{filter:grayscale(1) invert(1);mix-blend-mode:screen;background-color:var(--color-document);border-radius:0}.inno-navigation{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-2xs);overflow:visible;white-space:normal;flex:none;order:initial;height:auto;width:100%;padding:0}.inno-navigation a{display:flex;align-items:center;gap:var(--space-md);min-height:44px;padding:var(--space-sm) var(--space-sm);border:0;border-radius:var(--radius-input);color:var(--color-muted);font-size:var(--text-sm);font-weight:500;line-height:1.4}.inno-navigation a:hover{color:var(--color-ink);background:var(--color-paper-3)}.inno-navigation a.active{background:var(--color-ink);color:var(--color-paper);font-weight:500}.inno-nav-icon{width:19px;height:19px;flex:0 0 19px}.inno-nav-icon svg{display:block;width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.inno-sidebar-bottom{margin-top:auto;padding-top:var(--space-lg);border-top:1px solid var(--color-rule);display:grid;gap:var(--space-md)}.inno-sidebar .identity{max-width:none;margin:0;font-size:var(--text-xs);color:var(--color-muted);display:block;white-space:normal}.inno-sidebar .identity strong{display:block;font-weight:500;font-size:var(--text-sm);color:var(--color-ink);margin-bottom:var(--space-2xs)}.inno-sidebar-tools{display:flex;gap:var(--space-xs)}.inno-sidebar-tools a,.inno-sidebar-tools button{flex:1;display:flex;align-items:center;justify-content:center;min-height:36px;font-size:var(--text-xs);border:1px solid var(--color-rule);color:var(--color-ink);background:var(--color-clear);border-radius:var(--radius-input);padding:var(--space-xs) var(--space-xs)}.inno-mobile-menu,.inno-menu-check{display:none}.inno-app-main{margin-left:232px}.inno-app-main>.page{width:100%;max-width:var(--container);padding:var(--space-28) var(--space-xl) var(--space-56);margin:0 auto}.inno-app-main>.footer{max-width:var(--container);margin:auto;text-align:left;padding:var(--space-20) var(--space-xl);border-top:1px solid var(--color-rule);color:var(--color-muted);font-size:var(--text-xs)}.inno-app-main .banner{margin:0 0 var(--space-28);padding:0 0 var(--space-md);background:var(--color-clear);border:0;border-bottom:1px solid var(--color-rule);color:var(--color-muted);font-size:var(--text-xs);display:flex;gap:var(--space-md);align-items:center;justify-content:space-between;flex-wrap:wrap;border-radius:0}.inno-app-main .banner a{color:var(--color-ink);border-bottom:1px solid var(--color-rule);white-space:nowrap}.inno-app-main .banner .inno-context{display:flex;gap:var(--space-md);align-items:center}.inno-app-main .banner .inno-demo-note{color:var(--color-muted);font-size:var(--text-xs)}.inno-app-shell .assistant{border-radius:var(--radius-input);box-shadow:none;bottom:22px;right:24px;padding:var(--space-xs) var(--space-md);font-size:var(--text-xs)}
.page h1{font-size:var(--text-3xl);line-height:1.25;letter-spacing:-.04em;font-weight:500;margin:0}.page h2{font-size:var(--text-lg);font-weight:500;letter-spacing:-.025em;color:var(--color-ink)}.page h3{font-size:var(--text-md);font-weight:500;letter-spacing:-.02em}.inno-page-heading{gap:var(--space-lg);margin:0 0 var(--space-28);align-items:center}.inno-page-heading .muted{margin-top:var(--space-xs);font-size:var(--text-sm)}.muted,.page .muted,.office-subtitle,.office-notification small,.op-panel small{color:var(--color-muted)}button,.theme-dark button,.primary,.page a.primary{border-radius:var(--radius-input);border-color:var(--color-rule);background:var(--color-surface);color:var(--color-ink);font-size:var(--text-sm);font-weight:500;line-height:1.4;padding:var(--space-sm) var(--space-md);min-height:40px;box-shadow:none;transition:background-color var(--dur-micro) var(--ease-out),border-color var(--dur-micro) var(--ease-out)}button:hover{background:var(--color-paper-3);border-color:var(--color-rule-strong)}button:active{transform:translateY(1px)}button.primary,.theme-dark button.primary,.primary,.page a.primary{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-paper)}button.primary:hover,.primary:hover{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-ink)}button.danger{color:var(--color-error);background:var(--color-error-bg);border-color:var(--color-error-bg)}button.small{font-size:var(--text-xs);padding:var(--space-xs) var(--space-sm);min-height:32px}.actions{gap:var(--space-xs)}.panel,.theme-dark .panel{background:var(--color-clear);border:0;border-top:1px solid var(--color-rule);border-radius:0;padding:var(--space-lg) 0;margin:0 0 var(--space-20);box-shadow:none}.panel .panel{padding:var(--space-lg) 0;margin:0;border:0;background:var(--color-clear)}.panel-head button.primary,.inno-app-shell .assistant{background:var(--color-paper);border-color:var(--color-rule);color:var(--color-ink)}.panel-head button.primary:hover,.inno-app-shell .assistant:hover{background:var(--color-paper-3);border-color:var(--color-rule-strong)}.panel-head{gap:var(--space-md);margin-bottom:var(--space-20)}.panel-head h2{margin:0}.panel-head>a{font-size:var(--text-xs);color:var(--color-muted);text-decoration:underline;text-underline-offset:4px}.cols{gap:var(--space-32)}.stats{gap:0;margin:0 0 var(--space-lg);border-top:1px solid var(--color-rule);border-bottom:1px solid var(--color-rule);background:var(--color-clear);grid-template-columns:repeat(4,minmax(0,1fr))}.stat,.theme-dark .stat{background:var(--color-clear);border:0;border-right:1px solid var(--color-rule);border-radius:0;box-shadow:none;padding:var(--space-lg) var(--space-20)}.stat:first-child{padding-left:0}.stat:last-child{border-right:0}.stat span,.stat small{font-variant-numeric:tabular-nums;font-size:var(--text-xs);color:var(--color-muted);font-weight:400}.stat b,.stat strong{font-size:var(--text-2xl);color:var(--color-ink);font-weight:500;line-height:1.2;margin-top:var(--space-sm);display:block;font-variant-numeric:tabular-nums;letter-spacing:-.035em}.badge{background:var(--color-paper-3);border:0;border-radius:2px;color:var(--color-ink-2);font-weight:500;padding:var(--space-2xs) var(--space-xs);font-size:var(--text-xs)}.badge.green{background:var(--color-success-bg);color:var(--color-success)}.badge.gold{background:var(--color-warning-bg);color:var(--color-warning)}.positive{color:var(--color-success)}.negative,.error{color:var(--color-error)}
.tabs{gap:var(--space-2xs);margin:0 0 var(--space-28);border-bottom:1px solid var(--color-rule);overflow-x:auto;scrollbar-width:thin}.tabs a,.tabs button{padding:var(--space-sm) var(--space-md);border:0;border-bottom:2px solid var(--color-clear);background:var(--color-clear);border-radius:0;color:var(--color-muted);font-size:var(--text-sm)}.tabs a:first-child{padding-left:0}.tabs .active,.theme-dark .tabs .active{color:var(--color-ink);border-color:var(--color-accent);font-weight:600}.toolbar{gap:var(--space-sm);margin:0 0 var(--space-20)}.toolbar input,.toolbar select{max-width:100%;font-size:var(--text-xs);padding:var(--space-xs) var(--space-sm);min-height:38px}.toolbar input[type=search]{flex:1;min-width:200px}input,select,textarea,.theme-dark input,.theme-dark select,.theme-dark textarea{background:var(--color-surface);color:var(--color-ink);border:1px solid var(--color-rule-strong);border-radius:var(--radius-input);padding:var(--space-sm) var(--space-sm);font-size:var(--text-sm);line-height:1.5;accent-color:var(--color-accent)}input::placeholder,textarea::placeholder{color:var(--color-muted)}input:disabled,select:disabled,textarea:disabled{background:var(--color-paper-2);color:var(--color-muted)}input[type=checkbox],input[type=radio]{min-height:0;width:16px;height:16px;padding:0;flex-shrink:0}.form-grid{gap:var(--space-20)}.form-grid label{font-size:var(--text-sm);font-weight:400;gap:var(--space-xs)}.form-grid fieldset{border:1px solid var(--color-rule);border-radius:var(--radius-card);padding:var(--space-md);min-width:0}.form-grid legend{padding:0 var(--space-xs);color:var(--color-muted);font-size:var(--text-sm)}.form-grid label.check-label{gap:var(--space-xs)}.table-wrap{border-top:1px solid var(--color-ink);scrollbar-width:thin}table{font-size:var(--text-sm);color:var(--color-ink);font-variant-numeric:tabular-nums}th,td,.theme-dark th,.theme-dark td{border-color:var(--color-rule);padding:var(--space-md) var(--space-sm)}th,.theme-dark th{background:var(--color-paper-2);color:var(--color-muted);font-size:var(--text-xs);font-weight:500;letter-spacing:0;text-transform:none}tbody tr:hover{background:var(--color-paper-2)}td .actions{flex-wrap:nowrap}td .actions button{min-height:32px;padding:var(--space-xs) var(--space-xs);font-size:var(--text-xs)}.empty{color:var(--color-muted);padding:var(--space-48) var(--space-20);font-size:var(--text-sm)}.project-info{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-lg);margin:0;padding:0;font-size:var(--text-sm)}.project-info dt{font-size:var(--text-xs);color:var(--color-muted);margin-bottom:var(--space-xs)}.project-info dd{color:var(--color-ink);line-height:1.6}.project-info .wide{grid-column:span 2}
.project-brief p span{display:inline-block;margin-left:var(--space-sm)}.cards{display:grid;grid-template-columns:minmax(0,1fr);gap:0;border-top:1px solid var(--color-rule)}.project-card,.theme-dark .project-card{display:grid;grid-template-columns:96px minmax(0,1.65fr) minmax(0,1fr) minmax(0,1fr);align-items:center;gap:var(--space-20);padding:var(--space-lg) 0;border:0;border-bottom:1px solid var(--color-rule);border-radius:0;background:var(--color-clear);box-shadow:none;color:var(--color-ink)}.project-card:hover{background:var(--color-paper-2);transform:none;box-shadow:none;border-color:var(--color-rule)}.project-card>.badge{justify-self:start}.project-card h3{margin:0 0 var(--space-xs);font-size:var(--text-md);font-weight:500}.project-card p{margin:var(--space-2xs) 0;color:var(--color-muted);font-size:var(--text-xs)}.project-card .project-brief{min-width:0}.project-card .project-dates{line-height:1.7}.project-card .project-value{text-align:right;font-size:var(--text-md);font-variant-numeric:tabular-nums}.project-card .project-value small{display:block;color:var(--color-muted);font-size:var(--text-xs);font-weight:400;margin-top:var(--space-2xs)}.project-card:not(:has(.project-brief)){grid-template-columns:96px minmax(0,1fr)}.project-card:not(:has(.project-brief)) p,.project-card:not(:has(.project-brief))>.muted{grid-column:2}.list-row{padding:var(--space-md) 0;gap:var(--space-sm);border-color:var(--color-rule)}.list-row b{font-size:var(--text-sm);font-weight:500}.list-row small{font-size:var(--text-xs);color:var(--color-muted);line-height:1.7}.list-row button.check{width:24px;height:24px;min-height:24px;border-radius:3px;padding:0;border-color:var(--color-rule-strong)}.inno-dashboard{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:var(--space-32);align-items:start}.inno-dashboard-main,.inno-dashboard-aside{min-width:0}.inno-dashboard-aside{border-left:1px solid var(--color-rule);padding-left:var(--space-28)}.inno-dashboard-aside .panel{padding-top:0;border-top:0;margin-bottom:36px}.inno-dashboard-aside .actions{flex-wrap:wrap}.inno-dashboard .project-card{grid-template-columns:80px minmax(0,1fr);gap:var(--space-md)}.inno-dashboard .project-dates{display:none}.inno-dashboard .project-value{grid-column:2;text-align:left;font-size:var(--text-sm)}.inno-dashboard .project-value small{display:inline;margin-left:var(--space-sm)}.inno-dashboard .project-card{padding-block:var(--space-20)}.inno-quick-links{display:flex;gap:0;border-bottom:1px solid var(--color-rule);margin-bottom:var(--space-28)}.inno-quick-links a{padding:var(--space-sm) var(--space-20);border-left:1px solid var(--color-rule);font-size:var(--text-xs);color:var(--color-muted)}.inno-quick-links a:first-child{border-left:0;padding-left:0}.inno-quick-links a:hover{color:var(--color-accent)}.inno-dashboard .calendar-scroll .calendar{min-width:620px}.calendar,.theme-dark .calendar{color:var(--color-ink);border-color:var(--color-rule);border-radius:0;background:var(--color-surface)}.weekdays>div,.theme-dark .weekdays>div{background:var(--color-paper-2);border-color:var(--color-rule);color:var(--color-muted);font-size:var(--text-xs);padding:var(--space-sm) var(--space-2xs)}.day{border-color:var(--color-rule);padding:var(--space-xs);min-height:116px}.day.out,.theme-dark .day.out{background:var(--color-paper-2);color:var(--color-muted)}.day .date{color:var(--color-ink);font-size:var(--text-xs);min-height:28px}.day.today .date{background:var(--color-ink);color:var(--color-paper);border-radius:2px}.event,.theme-dark .event{background:var(--color-paper-3);color:var(--color-ink);font-size:11px;min-height:25px;padding:var(--space-2xs) var(--space-xs);border-radius:2px}.event.color1{background:var(--color-warning-bg);color:var(--color-warning)}.event.color2{background:var(--color-paper-3);color:var(--color-ink-2)}.event.color3{background:var(--color-success-bg);color:var(--color-success)}
dialog{width:calc(100% - 32px);max-width:760px;padding:var(--space-32);border:1px solid var(--color-rule);border-radius:var(--radius-card);background:var(--color-surface);color:var(--color-ink);box-shadow:none;font-size:var(--text-sm)}dialog::backdrop{background:var(--color-overlay);backdrop-filter:none}dialog h2{font-size:var(--text-xl);font-weight:500;letter-spacing:-.03em;margin:0 0 var(--space-lg)}dialog p{line-height:1.75}dialog .muted{color:var(--color-muted)}dialog .form-grid{padding-top:var(--space-xs)}dialog .dialog-actions{border-top:1px solid var(--color-rule);padding-top:var(--space-20);margin-top:var(--space-lg)}#toast{background:var(--color-ink);color:var(--color-paper);border-radius:var(--radius-input);box-shadow:none;font-size:var(--text-sm);z-index:1000}.login-shell{max-width:520px;margin:var(--space-2xl) auto;background:var(--color-surface);border:0;border-top:2px solid var(--color-ink);border-radius:0;padding:var(--space-xl);box-shadow:none}.login-shell .inno-logo{width:156px;height:60px;margin-bottom:36px;mix-blend-mode:multiply}.login-shell h1{font-size:var(--text-2xl);font-weight:500;letter-spacing:-.04em}.login-shell>p{color:var(--color-muted);font-size:var(--text-sm);line-height:1.7}.login-shell .inno-eyebrow{display:none}.login-shell label{font-size:var(--text-sm);margin-block:var(--space-20)}.login-shell input{min-height:46px}.login-shell button{min-height:44px}.login-shell .inno-login-options{border-top:1px solid var(--color-rule);padding-top:var(--space-20);margin-top:var(--space-lg)}.login-shell>a:not(.inno-logo){display:inline-block;margin-top:var(--space-md);color:var(--color-accent);font-size:var(--text-sm)}.file-drop{border:1px dashed var(--color-rule-strong);background:var(--color-paper-2);border-radius:var(--radius-card)}.office-thumb{border-radius:var(--radius-card)}.office-notification,.theme-dark .office-notification,.op-template-row,.op-timeline-row{border-color:var(--color-rule)}.office-folder-list button.active,.office-folder-list .primary{background:var(--color-ink);color:var(--color-paper)}.op-template-list>div,.op-assignees{border-color:var(--color-rule);border-radius:var(--radius-card);background:var(--color-clear)}.op-template-list>div span,.op-assignees small{color:var(--color-muted)}.op-timeline-track button{background:var(--color-success-bg);color:var(--color-success);border-color:var(--color-rule);border-radius:2px}.op-vendor-public{color:var(--color-ink);max-width:1100px}.op-vendor-events article{background:var(--color-surface);border:0;border-top:1px solid var(--color-rule);border-radius:0;box-shadow:none}.op-vendor-events .badge{background:var(--color-paper-3);color:var(--color-ink)}
/* Customer lounge uses the same material, with a quieter reading scale. */
.customer-portal{--cp-ink:var(--color-ink);--cp-muted:var(--color-muted);--cp-green:var(--color-accent);--cp-border:var(--color-rule);--cp-surface:var(--color-paper);font-family:var(--font-body);background:var(--color-paper);color:var(--color-ink);font-size:var(--text-md)}.customer-portal .cp-header{background:var(--color-paper);border-color:var(--color-rule);min-height:108px;padding:var(--space-20) var(--space-xl);max-width:1280px;margin:auto}.customer-portal .cp-brand>span{mix-blend-mode:multiply;background-color:var(--color-document);width:144px}.customer-portal .cp-client-label,.customer-portal .cp-eyebrow,.customer-portal .cp-project-dot{display:none}.customer-portal .cp-refresh,.customer-portal .cp-logout{color:var(--color-ink);background:var(--color-clear);border:1px solid var(--color-rule);border-radius:var(--radius-input);font-size:var(--text-xs);padding:var(--space-xs) var(--space-sm);min-height:36px}.customer-portal .cp-header-right{gap:var(--space-xs)}.customer-portal .cp-project-bar{max-width:1200px;padding:var(--space-32) 0 var(--space-lg)}.customer-portal .cp-project-bar strong{font-size:var(--text-xl);font-weight:500;letter-spacing:-.03em}.customer-portal .cp-project-bar>span{color:var(--color-muted);font-size:var(--text-sm)}.customer-portal .cp-nav{max-width:1200px;margin-bottom:var(--space-xl);border-color:var(--color-rule)}.customer-portal .cp-nav>div{gap:var(--space-28)}.customer-portal .cp-nav button{background:var(--color-clear);border-color:var(--color-clear);border-radius:0;color:var(--color-muted);font-size:var(--text-sm);padding:var(--space-md) 0;font-weight:400}.customer-portal .cp-nav button[aria-selected=true]{border-color:var(--color-accent);color:var(--color-ink);font-weight:500}.customer-portal .cp-nav button>span{color:var(--color-muted);background:var(--color-paper-3);border-radius:2px}.customer-portal .cp-main{max-width:1200px;padding-bottom:var(--space-2xl)}.customer-portal .cp-hero{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:var(--space-2xl);background:var(--color-clear);border:0;border-bottom:1px solid var(--color-rule);border-radius:0;min-height:0;overflow:visible;padding:0 0 var(--space-xl)}.customer-portal .cp-hero-copy{padding:0;background:var(--color-clear)}.customer-portal .cp-hero h1{font-size:36px;line-height:1.35;font-weight:500;color:var(--color-ink);letter-spacing:-.045em;margin:0 0 var(--space-20);max-width:22ch}.customer-portal .cp-hero-copy>p{font-size:var(--text-md);color:var(--color-muted)}.customer-portal .cp-hero-bottom{margin-top:var(--space-28);gap:var(--space-sm)}.customer-portal .cp-hero-bottom>span:first-child{font-size:var(--text-sm);color:var(--color-muted)}.customer-portal .cp-progress{margin:0;padding:0 0 0 36px;background:var(--color-clear);border:0;border-left:1px solid var(--color-rule);border-radius:0;justify-content:flex-start}.customer-portal .cp-progress-label{color:var(--color-muted);font-size:var(--text-sm)}.customer-portal .cp-progress>div:nth-child(2){color:var(--color-ink);margin-top:var(--space-xs)}.customer-portal .cp-progress strong{font-size:64px;font-weight:400;line-height:1.2;letter-spacing:-.05em}.customer-portal .cp-progress>div:nth-child(2)>span{color:var(--color-muted);font-size:var(--text-xl)}.customer-portal .cp-progress-track{background:var(--color-paper-3);height:3px;border-radius:0;margin-block:var(--space-20) var(--space-xs)}.customer-portal .cp-progress-track>span{background:var(--color-accent);border-radius:0}.customer-portal .cp-progress p,.customer-portal .cp-progress small{color:var(--color-muted);font-size:var(--text-xs)}.customer-portal .cp-badge{border:0;background:var(--color-paper-3);color:var(--color-ink-2);border-radius:2px;font-size:var(--text-xs);padding:var(--space-2xs) var(--space-xs)}.customer-portal .cp-badge-done{background:var(--color-success-bg);color:var(--color-success)}.customer-portal .cp-badge-confirmed{background:var(--color-warning-bg);color:var(--color-warning)}.customer-portal .cp-project-meta{background:var(--color-clear);border:0;border-bottom:1px solid var(--color-rule);border-radius:0;margin:0 0 var(--space-xl);padding:var(--space-lg) 0}.customer-portal .cp-project-meta>div{border-color:var(--color-rule)}.customer-portal .cp-project-meta span{color:var(--color-muted);font-size:var(--text-xs)}.customer-portal .cp-project-meta strong{color:var(--color-ink);font-size:var(--text-md);font-weight:500}.customer-portal .cp-columns{gap:var(--space-xl)}.customer-portal .cp-card{background:var(--color-clear);border:0;border-radius:0;padding:0;box-shadow:none}.customer-portal .cp-card-heading{border-bottom:1px solid var(--color-rule);padding-bottom:var(--space-20);margin-bottom:var(--space-md)}.customer-portal .cp-card-heading h2,.customer-portal .cp-card-heading h3,.customer-portal .cp-small-heading{color:var(--color-ink);font-size:var(--text-lg);font-weight:500;letter-spacing:-.02em}.customer-portal .cp-card-heading button{color:var(--color-muted);font-size:var(--text-xs);border:0;background:var(--color-clear)}.customer-portal .cp-section-title{margin-bottom:var(--space-28)}.customer-portal .cp-section-title h2{font-size:var(--text-2xl);color:var(--color-ink);font-weight:500;letter-spacing:-.035em}.customer-portal .cp-section-title p{color:var(--color-muted);font-size:var(--text-sm)}.customer-portal .cp-schedule-list li,.customer-portal .cp-update,.customer-portal .cp-document-list li{border-color:var(--color-rule)}.customer-portal .cp-schedule-date,.customer-portal .cp-schedule-date small,.customer-portal .cp-schedule-copy>span,.customer-portal .cp-update time,.customer-portal .cp-update p,.customer-portal .cp-document-list p{color:var(--color-muted)}.customer-portal .cp-schedule-copy strong,.customer-portal .cp-update h3,.customer-portal .cp-document-list b{color:var(--color-ink);font-size:var(--text-sm);font-weight:500}.customer-portal .cp-update-mark{display:none}.customer-portal .cp-update{grid-template-columns:minmax(0,1fr);padding-block:var(--space-20)}.customer-portal .cp-contact-strip{padding:var(--space-28) 0;margin-top:var(--space-xl);border-top:1px solid var(--color-rule);border-bottom:1px solid var(--color-rule);background:var(--color-clear);border-radius:0}.customer-portal .cp-contact-strip h2{color:var(--color-ink);font-size:var(--text-xl);font-weight:500}.customer-portal .cp-contact-strip p{color:var(--color-muted)}.customer-portal button.cp-button-dark,.customer-portal .cp-button-dark{background:var(--color-ink);border:1px solid var(--color-ink);color:var(--color-paper);border-radius:var(--radius-input);font-size:var(--text-sm);min-height:44px}.customer-portal button.cp-button-dark:hover{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-ink)}.customer-portal input,.customer-portal select,.customer-portal textarea{background:var(--color-surface);color:var(--color-ink);border-color:var(--color-rule-strong);border-radius:var(--radius-input);font-size:var(--text-md)}.customer-portal .cp-request-form label{color:var(--color-ink);font-size:var(--text-sm);font-weight:400}.customer-portal .cp-helper,.customer-portal .cp-footer,.customer-portal .cp-footer p,.customer-portal .cp-footer small{color:var(--color-muted)}.customer-portal .cp-form-feedback{color:var(--color-error)}.customer-portal .cp-footer{color:var(--color-muted);background:var(--color-paper);border-top:1px solid var(--color-rule);padding:var(--space-28) var(--space-xl);text-align:left}.customer-portal .cp-footer>span{font-size:var(--text-sm);font-weight:500;letter-spacing:0;color:var(--color-ink)}.customer-portal .cp-footer p,.customer-portal .cp-footer small{font-size:var(--text-xs)}.customer-portal .cp-calendar,.customer-portal .cp-days,.customer-portal .cp-day,.customer-portal .cp-weekdays{border-color:var(--color-rule)}.customer-portal .cp-day{background:var(--color-surface)}.customer-portal .cp-day-out{background:var(--color-paper-2)}.customer-portal .cp-weekdays{background:var(--color-paper-2);color:var(--color-muted)}.customer-portal .cp-day-event{background:var(--color-paper-3);color:var(--color-ink-2);border-radius:2px}.customer-portal .cp-event-done{background:var(--color-success-bg);color:var(--color-success)}.customer-portal .cp-photo,.customer-portal .cp-photo img{border-radius:var(--radius-card)}.customer-portal .cp-material,.customer-portal .cp-request-card{background:var(--color-clear);border-color:var(--color-rule);border-radius:0;box-shadow:none}.customer-portal .cp-request-reply{background:var(--color-paper-2);border:0;border-left:2px solid var(--color-accent);border-radius:0}.customer-portal .cp-empty{background:var(--color-paper-2);border:0;border-radius:0;color:var(--color-muted)}.customer-portal.cp-login{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,520px);column-gap:var(--space-3xl);align-content:center;align-items:start;max-width:1100px;width:calc(100% - 80px);margin:0 auto;padding:var(--space-2xl) 0;min-height:100dvh;background:var(--color-paper)}.customer-portal.cp-login>.cp-brand{grid-column:1;justify-content:flex-start;align-self:end;margin:0 0 var(--space-28)}.customer-portal.cp-login>.cp-brand>span{width:210px}.customer-portal .cp-login-panel{grid-column:2;grid-row:1/3;max-width:none;width:100%;padding:var(--space-xl) 0 var(--space-xl) var(--space-48);border:0;border-left:1px solid var(--color-rule);border-radius:0;background:var(--color-clear);box-shadow:none;text-align:left}.customer-portal .cp-login-panel h1{font-size:var(--text-2xl);color:var(--color-ink);font-weight:500;letter-spacing:-.035em;line-height:1.4;margin:0 0 var(--space-20)}.customer-portal .cp-login-panel>p{color:var(--color-muted);font-size:var(--text-sm);line-height:1.75}.customer-portal .cp-login-form{margin-top:var(--space-32);text-align:left}.customer-portal .cp-login-form label{font-size:var(--text-sm);color:var(--color-ink)}.customer-portal .cp-login-form input{border-color:var(--color-rule-strong);background:var(--color-surface);font-size:24px;border-radius:var(--radius-input);text-align:center;min-height:60px;color:var(--color-ink);letter-spacing:.16em}.customer-portal .cp-login-help{border-color:var(--color-rule);color:var(--color-muted)}.customer-portal .cp-home-link{grid-column:1;align-self:start;justify-self:start;margin:0;font-size:var(--text-sm);color:var(--color-muted)}.customer-portal .cp-unavailable,.customer-portal.cp-unavailable{background:var(--color-paper);color:var(--color-ink)}
/* The quotation document keeps its paper metrics; only the editor workbench changes. */
body.studio-mode{background:var(--color-paper-3);overflow-x:clip}.estimate-studio{--studio-ink:var(--color-ink);--studio-line:var(--color-rule);--studio-blue:var(--color-accent);--studio-muted:var(--color-muted)}.estimate-studio .studio-topbar{background:var(--color-ink);color:var(--color-paper);border-color:var(--color-ink);box-shadow:none;padding-inline:var(--space-lg)}.estimate-studio .studio-home{color:var(--color-paper);border-color:var(--color-muted);font-size:var(--text-xs)}.estimate-studio .studio-name{font-weight:500;letter-spacing:-.02em;font-size:var(--text-md)}.estimate-studio .studio-save-state{color:var(--color-paper-3)}.estimate-studio .studio-save-state.saved{color:var(--color-success-bg)}.estimate-studio .studio-topbar>button:last-child{background:var(--color-paper);border-color:var(--color-paper);color:var(--color-ink);font-weight:500}.estimate-studio .studio-tools{background:var(--color-surface);border-color:var(--color-rule);justify-content:flex-start;padding-inline:var(--space-lg);box-shadow:none}.estimate-studio button,.estimate-studio summary{border-radius:var(--radius-input);border-color:var(--color-rule);background:var(--color-surface);color:var(--color-ink);font-weight:500}.estimate-studio button:hover,.estimate-studio summary:hover{background:var(--color-paper-3);border-color:var(--color-rule-strong)}.estimate-studio button.primary{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-paper)}.estimate-studio button.primary:hover{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-ink)}.estimate-studio .studio-tools>button:first-child,.estimate-studio .studio-tools>.studio-emphasis,.estimate-studio .studio-menu[open]>summary{background:var(--color-paper-2);border-color:var(--color-rule);color:var(--color-ink)}.estimate-studio .studio-menu>div,.estimate-studio .studio-menu>.studio-menu-items{background:var(--color-surface);border-color:var(--color-rule);border-radius:var(--radius-card);box-shadow:0 8px 24px var(--color-shadow)}.estimate-studio .studio-menu>div>button,.estimate-studio .studio-menu>div>a{color:var(--color-ink);border-radius:var(--radius-input)}.estimate-studio .studio-menu>div>button:hover,.estimate-studio .studio-menu>div>a:hover{background:var(--color-paper-2)}.estimate-studio .studio-panel{background:var(--color-paper-2);border-color:var(--color-rule);box-shadow:none;color:var(--color-ink)}.estimate-studio .studio-panel-head{border-color:var(--color-rule);color:var(--color-ink)}.estimate-studio .studio-panel-head>b{font-weight:500}.estimate-studio .studio-panel-head button{color:var(--color-muted)}.estimate-studio .studio-panel-toggle{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-paper);border-radius:0}.estimate-studio .studio-panel .studio-panel-note{background:var(--color-clear);border:0;border-left:2px solid var(--color-accent);border-radius:0;color:var(--color-muted);font-size:var(--text-xs);padding:var(--space-2xs) 0 var(--space-2xs) var(--space-sm)}.estimate-studio .studio-config-section{border-color:var(--color-rule)}.estimate-studio .studio-config-section>summary{color:var(--color-ink);font-size:var(--text-xs);font-weight:500}.estimate-studio .studio-config-row{border-color:var(--color-rule);border-radius:var(--radius-input);background:var(--color-surface);padding:var(--space-sm)}.estimate-studio .studio-config-row>label,.estimate-studio .studio-config-row select{color:var(--color-ink);background:var(--color-surface)}.estimate-studio .studio-config-row:has(input:checked){background:var(--color-surface);border-color:var(--color-accent)}.estimate-studio .studio-config-options>label{background:var(--color-clear);border-color:var(--color-rule);color:var(--color-muted);border-radius:var(--radius-input)}.estimate-studio .studio-config-options>label:has(input:checked){background:var(--color-paper-3);border-color:var(--color-accent);color:var(--color-ink)}.estimate-studio .studio-config-row input[type=checkbox],.estimate-studio .studio-config-options input[type=checkbox]{accent-color:var(--color-accent)}.estimate-studio .studio-process-select,.estimate-studio .studio-process-editor>label{color:var(--color-muted)}.estimate-studio .studio-process-editor input:not([type=checkbox]),.estimate-studio .studio-process-editor select,.estimate-studio .studio-process-editor textarea,.estimate-studio .studio-process-select select{background:var(--color-surface);color:var(--color-ink);border-color:var(--color-rule-strong);border-radius:var(--radius-input)}.estimate-studio .studio-process-editor small,.estimate-studio .studio-panel .studio-panel-foot,.estimate-studio .studio-zoom-controls,.estimate-studio .studio-font-controls{color:var(--color-muted);border-color:var(--color-rule)}.estimate-studio .studio-process-item[aria-current=true],.estimate-studio .studio-process-item.active{background:var(--color-paper-3)!important;border-color:var(--color-accent)!important}.estimate-studio .studio-font-controls button[aria-pressed=true],.estimate-studio .studio-zoom-controls button[aria-pressed=true]{background:var(--color-ink);color:var(--color-paper);border-color:var(--color-ink)}.estimate-studio .studio-panel-toggle{background:var(--color-ink)!important;color:var(--color-paper)!important;border-color:var(--color-ink)!important;box-shadow:none}.quote-page .qp-page-label{background:var(--color-ink-2);color:var(--color-paper)}.quote-page .qp-page-label span{color:var(--color-paper)}.estimate-studio .studio-sheet-label{background:var(--color-ink-2);color:var(--color-paper);border-radius:0}.estimate-studio .studio-document{box-shadow:0 1px 8px var(--color-shadow)}.studio-document,.quote-page{--color-ink:var(--color-document-ink)}.estimate-studio .studio-document button{color:var(--color-document-ink);background:var(--color-document)}.estimate-studio .studio-document input,.estimate-studio .studio-document select,.estimate-studio .studio-document textarea{color:var(--color-document-ink)}
.customer-portal .cp-request,.customer-portal .cp-material{background:var(--color-clear);border-color:var(--color-rule);border-radius:0;box-shadow:none}.customer-portal .cp-request-kind,.customer-portal .cp-material-category,.customer-portal .cp-material dt,.customer-portal .cp-material dd,.customer-portal .cp-request-heading time,.customer-portal .cp-request>p,.customer-portal .cp-waiting,.customer-portal .cp-direct-contact>span,.customer-portal .cp-direct-contact a{color:var(--color-muted)}.customer-portal .cp-reply{background:var(--color-paper-2);border:0;border-left:2px solid var(--color-accent);border-radius:0;padding:var(--space-md)}.customer-portal .cp-reply>span{color:var(--color-ink);font-size:var(--text-sm);letter-spacing:0}.customer-portal .cp-reply p{color:var(--color-muted);font-size:var(--text-sm)}.customer-portal .cp-empty h3,.customer-portal .cp-empty p{color:var(--color-muted)}.customer-portal .cp-empty>span{display:none}.customer-portal .cp-photo>span,.customer-portal .cp-photo>span>span{color:var(--color-ink);background:var(--color-paper-2)}.customer-portal .cp-day-today>time{background:var(--color-accent);color:var(--color-accent-ink)}.customer-portal .cp-session-feedback{color:var(--color-error);background:var(--color-error-bg);border:0;border-radius:var(--radius-input)}.theme-dark .customer-portal .cp-brand>span,.theme-dark .login-shell .inno-logo{mix-blend-mode:normal}
.shared-quote{--sq-ink:var(--color-document-ink);--sq-line:var(--color-rule);background:var(--color-paper-3);font-family:var(--font-body);color:var(--color-ink)}.sq-toolbar{background:var(--color-paper);color:var(--color-ink);border-bottom-color:var(--color-rule);backdrop-filter:none}.sq-toolbar>div>span,.sq-intro{color:var(--color-muted)}.sq-toolbar .sq-logo{mix-blend-mode:multiply}.sq-intro{text-align:left;font-size:var(--text-sm)}.shared-quote button{background:var(--color-ink);color:var(--color-paper);border-color:var(--color-ink);border-radius:var(--radius-input);padding:var(--space-sm) var(--space-md)}.shared-quote button:hover{background:var(--color-accent);color:var(--color-accent-ink);border-color:var(--color-accent)}.sq-paper{background:var(--color-document);color:var(--color-document-ink);box-shadow:0 1px 8px var(--color-shadow)}.sq-feedback{border:0;border-top:1px solid var(--color-rule);border-radius:0;background:var(--color-paper);padding:var(--space-32);gap:var(--space-32)}.sq-feedback h2{font-weight:500;letter-spacing:-.03em}.sq-eyebrow{display:none}.sq-help,.sq-footer{color:var(--color-muted)}.sq-feedback-form input:not([type=checkbox]),.sq-feedback-form select,.sq-feedback-form textarea{background:var(--color-surface);color:var(--color-ink);border-color:var(--color-rule-strong);border-radius:var(--radius-input)}.sq-record{background:var(--color-paper-2);border:0;border-left:2px solid var(--color-accent);border-radius:0}.sq-message{color:var(--color-ink-2)}

}
@media screen and (min-width:1700px){.inno-sidebar{left:max(0px,calc((100% - 1740px)/2))}.inno-app-main{max-width:1480px;margin-left:max(232px,calc((100% - 1740px)/2 + 232px));margin-right:auto}}
@media screen and (max-width:1180px){.inno-dashboard{grid-template-columns:minmax(0,1fr)}.inno-dashboard-aside{border-left:0;border-top:1px solid var(--color-rule);padding:var(--space-lg) 0 0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-32)}.inno-dashboard .project-card{grid-template-columns:90px minmax(0,1fr) 150px}.inno-dashboard .project-value{grid-column:auto;text-align:right}.inno-dashboard .project-value small{display:block;margin-left:0}.inno-app-main>.page{padding-inline:var(--space-28)}.project-card{grid-template-columns:90px minmax(0,1.5fr) minmax(0,1fr)}.project-card .project-dates{display:none}.customer-portal .cp-project-bar,.customer-portal .cp-main,.customer-portal .cp-nav{max-width:none;margin-inline:var(--space-32)}.customer-portal.cp-login{column-gap:var(--space-48)}.customer-portal .cp-hero{gap:var(--space-32)}}
@media screen and (max-width:960px){.inno-sidebar{position:sticky;inset:0 0 auto;width:100%;padding:var(--space-md) var(--space-20);min-height:76px;display:grid;grid-template-columns:1fr auto;gap:var(--space-sm);border-right:0;border-bottom:1px solid var(--color-rule)}.inno-sidebar .inno-logo{width:120px;height:46px;margin:0}.inno-mobile-menu{display:flex;align-items:center;justify-content:center;border:1px solid var(--color-rule);background:var(--color-clear);color:var(--color-ink);font-size:var(--text-sm);min-height:40px;padding:var(--space-xs) var(--space-md);border-radius:var(--radius-input);cursor:pointer}.inno-mobile-menu:has(input){display:none}.inno-navigation{grid-column:1/-1;display:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2xs);padding-top:var(--space-xs)}.inno-sidebar:has(.inno-menu-check:checked) .inno-navigation{display:grid}.inno-sidebar:has(.inno-menu-check:checked) .inno-sidebar-bottom{display:flex}.inno-menu-check{display:block;position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.inno-menu-check:focus-visible+.inno-mobile-menu{outline:2px solid var(--color-focus);outline-offset:3px}.inno-sidebar-bottom{display:none;grid-column:1/-1;align-items:center;justify-content:space-between;margin:0;padding:var(--space-md) 0 0}.inno-sidebar-tools{min-width:200px}.inno-app-main{margin:0}.inno-app-main>.page{padding:var(--space-lg)}.inno-app-main>.footer{padding:var(--space-20) var(--space-lg)}.project-info{grid-template-columns:repeat(2,minmax(0,1fr))}.project-info .wide{grid-column:span 2}.customer-portal .cp-hero{grid-template-columns:minmax(0,1fr) 240px}.customer-portal .cp-hero h1{font-size:30px}.customer-portal.cp-login{grid-template-columns:minmax(0,1fr);max-width:520px;padding:var(--space-xl) 0;align-content:start;gap:0}.customer-portal.cp-login>.cp-brand{grid-column:1;grid-row:1;margin:0 0 var(--space-xl)}.customer-portal.cp-login>.cp-brand>span{width:160px}.customer-portal .cp-login-panel{grid-column:1;grid-row:2;padding:0;border:0}.customer-portal .cp-home-link{grid-row:3;margin-top:var(--space-28)}}
@media screen and (max-width:650px){.inno-sidebar{padding:var(--space-sm) var(--space-md)}.inno-navigation{grid-template-columns:repeat(2,minmax(0,1fr))}.inno-navigation a{padding:var(--space-sm)}.inno-sidebar-bottom{gap:var(--space-md)}.inno-sidebar-tools{min-width:150px}.inno-app-main>.page{padding:var(--space-20) var(--space-md) var(--space-2xl)}.inno-app-main>.footer{padding:var(--space-20) var(--space-md)}.inno-app-main .banner{margin-bottom:var(--space-lg)}.inno-app-main .banner .inno-context{gap:var(--space-xs)}.inno-demo-note{flex-basis:100%}.page h1{font-size:var(--text-xl)}.inno-page-heading{gap:var(--space-md);margin-bottom:var(--space-lg)}.inno-page-heading>.actions{width:100%;flex-wrap:wrap}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat{padding:var(--space-20) var(--space-md)}.stat:nth-child(2){border-right:0}.stat:nth-child(3){border-top:1px solid var(--color-rule);padding-left:0}.stat:nth-child(4){border-top:1px solid var(--color-rule)}.stat b,.stat strong{font-size:var(--text-xl)}.project-card,.inno-dashboard .project-card{grid-template-columns:72px minmax(0,1fr);gap:var(--space-sm);padding-block:var(--space-20)}.project-card .project-value,.inno-dashboard .project-value{grid-column:2;text-align:left;font-size:var(--text-sm)}.project-card .project-value small,.inno-dashboard .project-value small{display:inline;margin-left:var(--space-sm)}.project-card h3{font-size:var(--text-sm)}.inno-dashboard-aside{display:block}.inno-quick-links{flex-wrap:wrap}.inno-quick-links a{padding:var(--space-sm) var(--space-sm)}.inno-quick-links a:first-child{padding-left:0}.panel{padding:var(--space-20) 0}.panel-head{align-items:flex-start;gap:var(--space-sm)}.cols{gap:var(--space-20)}.tabs a,.tabs button{padding:var(--space-sm) var(--space-sm)}.toolbar{flex-wrap:wrap}.toolbar input[type=search]{flex-basis:100%}.toolbar select{max-width:100%;flex:1 1 130px}.form-grid{grid-template-columns:minmax(0,1fr)}.form-grid .full{grid-column:1/-1}.project-info{gap:var(--space-20)}.project-info .wide{grid-column:1/-1}.login-shell{margin:var(--space-lg) var(--space-md);padding:var(--space-28) var(--space-lg);max-width:none}.login-shell h1{font-size:var(--text-xl)}dialog{padding:var(--space-lg) var(--space-20)}.customer-portal .cp-header{padding:var(--space-20) var(--space-20);min-height:88px}.customer-portal .cp-brand>span{width:124px}.customer-portal .cp-header-right{gap:var(--space-xs)}.customer-portal .cp-refresh,.customer-portal .cp-logout{padding:var(--space-xs) var(--space-xs);font-size:11px}.customer-portal .cp-project-bar,.customer-portal .cp-main,.customer-portal .cp-nav{margin-inline:var(--space-20)}.customer-portal .cp-project-bar{padding:var(--space-28) 0 var(--space-20)}.customer-portal .cp-project-bar strong{font-size:var(--text-lg)}.customer-portal .cp-project-bar>span{display:none}.customer-portal .cp-nav{margin-bottom:var(--space-28)}.customer-portal .cp-nav>div{gap:var(--space-lg)}.customer-portal .cp-hero{grid-template-columns:minmax(0,1fr);gap:var(--space-28);padding-bottom:var(--space-28)}.customer-portal .cp-hero h1{font-size:var(--text-2xl)}.customer-portal .cp-progress{padding:var(--space-lg) 0 0;border:0;border-top:1px solid var(--color-rule)}.customer-portal .cp-progress strong{font-size:48px}.customer-portal .cp-progress-track{margin-block:var(--space-md) var(--space-xs)}.customer-portal .cp-project-meta{padding:var(--space-20) 0;margin-bottom:var(--space-28)}.customer-portal .cp-project-meta strong{font-size:var(--text-sm)}.customer-portal .cp-columns{gap:var(--space-32)}.customer-portal .cp-contact-strip{padding:var(--space-lg) 0}.customer-portal .cp-footer{padding:var(--space-lg) var(--space-20)}.customer-portal.cp-login{width:calc(100% - 48px);padding-block:var(--space-xl);min-height:100dvh}.customer-portal .cp-login-panel h1{font-size:var(--text-xl)}.customer-portal .cp-login-form input{font-size:24px}.estimate-studio .studio-tools{padding-inline:var(--space-sm)}.estimate-studio .studio-topbar{padding-inline:var(--space-sm)}.inno-app-shell .assistant{right:16px;bottom:16px}}
@media print{.inno-sidebar,.inno-quick-links{display:none!important}.inno-app-main{margin:0!important}.inno-app-main>.page{padding:0!important;max-width:none}.inno-dashboard{display:block}.inno-dashboard-aside{border:0;padding:0}.inno-app-shell .assistant{display:none!important}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.login-shell>a.login-back,.customer-portal a.login-back{display:inline-flex;align-items:center;gap:var(--space-xs);min-height:44px;margin:0 0 var(--space-lg);font-size:var(--text-sm);color:var(--color-muted)}
