:root{--m-header-height:48px;--m-nav-height:60px}.m-shell{--color-text-sub:#4b5563;--font-size-xs:13px;--font-size-xxs:12px;background:var(--color-page-bg);flex-direction:column;width:100%;max-width:100vw;height:100dvh;display:flex;overflow-x:hidden}.m-header{z-index:10;background:var(--color-panel-bg);border-bottom:1px solid var(--color-border);padding-top:env(safe-area-inset-top,0px);flex-shrink:0;position:sticky;top:0}.m-header-inner{height:var(--m-header-height);grid-template-columns:1fr auto 1fr;align-items:center;gap:4px;padding:0 12px;display:grid}.m-header-title{color:var(--color-text-main);text-align:center;white-space:nowrap;text-overflow:ellipsis;grid-column:2;margin:0;font-size:17px;font-weight:700;overflow:hidden}.m-header-back{color:var(--color-primary);cursor:pointer;background:0 0;border:none;grid-column:1;justify-content:flex-start;align-items:center;gap:2px;min-width:44px;min-height:44px;padding:8px 4px;font-size:16px;font-weight:500;display:flex}.m-header-back:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:4px}.m-header-back:active{opacity:.7}.m-header-identity{min-width:0;max-width:100%;font-size:var(--font-size-xxs);color:var(--color-text-sub);white-space:nowrap;text-overflow:ellipsis;grid-column:3;justify-self:end;overflow:hidden}.m-header-user{grid-column:3;justify-self:end;min-width:0;max-width:100%;position:relative}.m-header-user-btn{background:var(--color-page-bg);border:1px solid var(--color-border);max-width:100%;min-height:32px;color:var(--color-text-main);font-size:var(--font-size-xxs);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:16px;align-items:center;gap:4px;padding:4px 10px;font-weight:500;display:inline-flex}.m-header-user-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:4px}.m-header-user-btn:active{opacity:.7}.m-header-user-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.m-header-user-caret{font-size:var(--font-size-xxs);flex-shrink:0;line-height:1}.m-header-menu{background:var(--color-panel-bg);border:1px solid var(--color-border);min-width:160px;box-shadow:var(--shadow-popover);z-index:20;border-radius:8px;flex-direction:column;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);right:0}.m-header-menu-item{width:100%;min-height:44px;color:var(--color-text-main);font-size:var(--font-size-xs);text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:6px;align-items:center;padding:10px 12px;display:flex}.m-header-menu-item:active{background:var(--color-page-bg)}.m-header-menu-item:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.m-header-menu-item:disabled{opacity:.6;cursor:default}.m-header-menu{max-width:calc(100vw - 24px)}.m-header-menu-identity{flex-direction:column;gap:2px;min-width:0;padding:8px 12px;display:flex}.m-header-menu-identity-name{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-main);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.m-header-menu-identity-email{font-size:var(--font-size-xxs);color:var(--color-text-sub);overflow-wrap:anywhere}.m-header-menu-divider{height:var(--border-width-base);background:var(--color-border);margin:4px 0}.m-header-menu-error{color:var(--color-danger);margin:0 12px 8px;font-size:14px;font-weight:500}.m-content{-webkit-overflow-scrolling:touch;min-height:0;padding-bottom:calc(var(--m-nav-height) + env(safe-area-inset-bottom,0px));flex:1;overflow:hidden auto}.m-content.m-content--no-nav{padding-bottom:env(safe-area-inset-bottom,0px);padding-top:env(safe-area-inset-top,0px)}.m-bottom-nav{background:var(--color-panel-bg);border-top:1px solid var(--color-border);padding-bottom:env(safe-area-inset-bottom,0px);z-index:10;display:flex;position:fixed;bottom:0;left:0;right:0}.m-bottom-nav-item{min-height:var(--m-nav-height);color:var(--color-text-main);font-size:var(--font-size-caption);font-weight:var(--font-weight-bold);-webkit-tap-highlight-color:transparent;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;padding:8px 4px;text-decoration:none;display:flex;position:relative}.m-bottom-nav-item:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.m-bottom-nav-item.is-active{color:var(--color-primary);font-weight:var(--font-weight-bold)}.m-bottom-nav-item.is-active:before{content:"";background:var(--color-primary);border-radius:0 0 3px 3px;height:3px;position:absolute;top:0;left:20%;right:20%}.m-bottom-nav-icon{font-size:22px;line-height:1}.m-state-page{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:260px;padding:48px 24px;display:flex}.m-state-title{color:var(--color-text-main);margin:0;font-size:17px;font-weight:700;line-height:1.5}.m-state-text{color:var(--color-text-sub);margin:0;font-size:15px;line-height:1.6}.m-state-sub{color:var(--color-text-sub);margin:0;font-size:14px;line-height:1.5}.m-btn{cursor:pointer;-webkit-tap-highlight-color:transparent;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;min-height:44px;padding:12px 28px;font-size:15px;font-weight:600;transition:opacity .15s;display:inline-flex}.m-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.m-btn:active{opacity:.75}.m-btn-primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.m-btn-secondary{background:var(--color-panel-bg);color:var(--color-primary);border-color:var(--color-primary)}.m-loading-spinner{border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:36px;height:36px;animation:.75s linear infinite m-spin}@keyframes m-spin{to{transform:rotate(360deg)}}.m-page{box-sizing:border-box;width:100%;max-width:600px;margin:0 auto;padding:24px 16px}.m-placeholder-message{text-align:center;color:var(--color-text-sub);padding:32px 16px;font-size:15px;line-height:1.7}.m-placeholder-message p{margin:0}@media (orientation:landscape){.m-bottom-nav{padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}.m-schedule-pre-header{padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);width:calc(100vw - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px))}}.m-projects-page{box-sizing:border-box;width:100%;max-width:600px;margin:0 auto}.m-search-bar{padding:12px 16px 8px}.m-search-input-wrap{align-items:center;display:flex;position:relative}.m-search-input{border:1px solid var(--color-border);background:var(--color-panel-bg);width:100%;height:40px;color:var(--color-text-main);box-sizing:border-box;-webkit-appearance:none;border-radius:8px;padding:0 36px 0 12px;font-size:16px}.m-search-input:focus{outline:2px solid var(--color-primary);outline-offset:0}.m-search-input::-webkit-search-cancel-button{display:none}.m-search-clear{color:var(--color-text-sub);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;min-width:28px;min-height:28px;padding:4px;font-size:14px;display:flex;position:absolute;right:8px}.m-filters{flex-direction:column;gap:6px;padding:4px 16px 8px;display:flex}.m-filters-label{font-size:var(--font-size-label);color:var(--color-text-main);font-weight:var(--font-weight-semibold)}.m-filters-chips{flex-wrap:wrap;gap:6px;display:flex}.m-chip{border:1px solid var(--color-border);background:var(--color-panel-bg);color:var(--color-text-sub);cursor:pointer;-webkit-tap-highlight-color:transparent;white-space:nowrap;border-radius:16px;align-items:center;gap:4px;min-height:32px;padding:6px 10px;font-size:14px;font-weight:500;display:inline-flex}.m-chip:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.m-chip.is-active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.m-chip-count{opacity:.85;font-size:12px}.m-result-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:6px 16px 4px;display:flex}.m-result-count{color:var(--color-text-sub);font-size:14px;font-weight:500}.m-sort-select{color:var(--color-text-main);background:var(--color-page-bg);border:1px solid var(--color-border);cursor:pointer;border-radius:6px;height:32px;padding:4px 8px;font-size:14px}.m-sort-select:focus{outline:2px solid var(--color-primary);outline-offset:0}.m-project-list{margin:0;padding:0;list-style:none}.m-project-item{border-bottom:1px solid var(--color-border);cursor:pointer;-webkit-tap-highlight-color:transparent;flex-direction:column;gap:4px;padding:12px 16px;display:flex}.m-project-item:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.m-project-item:active{background:var(--color-page-bg)}.m-project-item-row1{align-items:center;gap:8px;min-width:0;display:flex}.m-project-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--color-text-main);flex:1;font-size:17px;font-weight:600;overflow:hidden}.m-project-status-badge{background:var(--color-border);color:var(--color-text-sub);white-space:nowrap;border-radius:10px;flex-shrink:0;padding:2px 8px;font-size:12px;font-weight:600}.m-project-item-row2{min-width:0}.m-project-address{color:var(--color-text-sub);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;display:block;overflow:hidden}.m-load-more{justify-content:center;padding:20px 16px;display:flex}.m-load-more-btn{border:1px solid var(--color-primary);background:var(--color-panel-bg);min-width:200px;color:var(--color-primary);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:8px;min-height:44px;padding:12px 24px;font-size:15px;font-weight:600}.m-load-more-btn:disabled{opacity:.55;cursor:not-allowed}.m-load-more-btn:not(:disabled):focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.m-load-more-btn:not(:disabled):active{opacity:.75}.m-project-detail{width:100%}.m-project-tabs-wrap{border-bottom:1px solid var(--color-border);background:var(--color-panel-bg);z-index:5;align-items:stretch;display:flex;position:sticky;top:0}.m-tabs-arrow{background:var(--color-page-bg);width:36px;min-height:44px;font-size:var(--font-size-page-title);font-weight:var(--font-weight-bold);color:var(--color-primary);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;line-height:1;display:flex}.m-tabs-arrow:not(:disabled):active{background:var(--color-border)}.m-tabs-arrow:disabled{opacity:.25;color:var(--color-text-sub);cursor:default}.m-tabs-arrow:not(:disabled):focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.m-project-tabs-strip{scrollbar-width:none;-webkit-overflow-scrolling:touch;flex:1;align-items:stretch;display:flex;overflow:auto hidden}.m-project-tabs-strip::-webkit-scrollbar{display:none}.m-project-tab{color:var(--color-text-main);font-size:16px;font-weight:var(--font-weight-semibold);cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-bottom:2px solid #0000;flex-shrink:0;min-height:48px;padding:0 10px}.m-project-tab.is-active{color:var(--color-panel-bg);background:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:var(--font-weight-bold)}.m-project-tab:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.m-detail-body{padding-bottom:16px}.m-detail-project-name{color:var(--color-text-main);margin:0;padding:16px 16px 12px;font-size:19px;font-weight:700;line-height:1.4}.m-detail-section{border-top:1px solid var(--color-border);padding:12px 16px}.m-detail-section-title{color:var(--color-text-sub);letter-spacing:.05em;text-transform:uppercase;margin:0 0 8px;font-size:14px;font-weight:600}.m-detail-row{flex-direction:column;gap:2px;margin-bottom:8px;display:flex}.m-detail-row:last-child{margin-bottom:0}.m-detail-label{color:var(--color-text-sub);font-size:14px;font-weight:500}.m-detail-value{color:var(--color-text-main);white-space:pre-wrap;word-break:break-all;margin:0;font-size:17px;font-weight:500;line-height:1.5}.m-detail-value.is-empty{color:var(--color-text-sub);font-size:16px;font-style:italic;font-weight:400}.m-map-scroll-wrap{align-items:center;display:flex}.m-map-arrow{width:28px;min-height:40px;color:var(--color-text-sub);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:18px;display:flex}.m-map-arrow:disabled{opacity:.2;cursor:default}.m-map-arrow:not(:disabled):focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.m-map-buttons{scrollbar-width:none;-webkit-overflow-scrolling:touch;flex:1;gap:8px;padding:2px 0 4px;display:flex;overflow:auto hidden}.m-map-buttons::-webkit-scrollbar{display:none}.m-map-btn{border:1px solid var(--color-primary);color:var(--color-primary);background:var(--color-panel-bg);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:20px;flex-shrink:0;align-items:center;min-height:36px;padding:8px 14px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.m-map-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.m-map-btn:active{opacity:.7}.m-map-btn.is-disabled{border-color:var(--color-border);color:var(--color-text-sub);opacity:.45;cursor:default}.m-schedule-rows{border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.m-schedule-row{border:none;border-bottom:1px solid var(--color-border);background:var(--color-panel-bg);cursor:pointer;-webkit-tap-highlight-color:transparent;align-items:center;gap:12px;width:100%;min-height:52px;padding:12px 16px;display:flex}.m-schedule-row:last-child{border-bottom:none}.m-schedule-row:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.m-schedule-row:active{background:var(--color-page-bg)}.m-schedule-row-label{color:var(--color-text-sub);flex-shrink:0;min-width:70px;font-size:14px;font-weight:500}.m-schedule-row-value{color:var(--color-text-main);text-align:left;flex:1;font-size:17px;font-weight:600}.m-schedule-row-arrow{color:var(--color-text-sub);flex-shrink:0;font-size:18px}.m-members-subtabs{border-bottom:1px solid var(--color-border);background:var(--color-panel-bg);display:flex}.m-members-subtab{color:var(--color-text-sub);cursor:pointer;white-space:nowrap;text-align:center;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;min-height:44px;padding:10px 8px;font-size:15px;font-weight:500}.m-members-subtab.is-active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}.m-members-subtab:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.m-member-list{flex-direction:column;gap:12px;padding:12px 16px;display:flex}.m-member-card{border:1px solid var(--color-border);background:var(--color-panel-bg);border-radius:8px;flex-direction:column;gap:6px;padding:12px;display:flex}.m-member-name{color:var(--color-text-main);margin:0;font-size:16px;font-weight:600}.m-member-company{color:var(--color-text-sub);margin:0;font-size:14px;font-weight:500}.m-phone-link{color:var(--color-primary);align-items:center;gap:4px;min-height:36px;padding:2px 0;font-size:15px;text-decoration:none;display:inline-flex}.m-phone-link:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.m-phone-empty{color:var(--color-text-sub);font-size:15px}.m-member-dates{border-top:1px solid var(--color-border);grid-template-columns:1fr 1fr;gap:12px;margin-top:8px;padding-top:8px;display:grid}.m-member-date-group{flex-direction:column;gap:3px;display:flex}.m-member-date-section-title{color:var(--color-text-sub);letter-spacing:.04em;text-transform:uppercase;margin:0 0 4px;font-size:13px;font-weight:600}.m-member-date-label{color:var(--color-text-sub);margin:0;font-size:12px;font-weight:500}.m-member-date-value{color:var(--color-text-main);margin:0 0 4px;font-size:14px}.m-members-empty{text-align:center;color:var(--color-text-sub);margin:0;padding:32px 0;font-size:14px}.m-tab-placeholder{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:48px 24px;display:flex}.m-schedule-page{height:100%}.m-schedule-scroll{-webkit-overflow-scrolling:touch;height:100%;overflow:auto}.m-schedule-pre-header{background:var(--color-panel-bg);z-index:7;width:100vw;position:sticky;left:0}.m-schedule-pre-header .m-project-tabs-wrap{z-index:auto;position:static}.m-schedule-pre-header .m-header{padding-top:0;position:static}.m-schedule-top-bar{border-bottom:1px solid var(--color-border);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;display:flex}.m-schedule-project-name{color:var(--color-text-main);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:15px;font-weight:600;overflow:hidden}.m-schedule-jump-btns{flex-shrink:0;gap:6px;display:flex}.m-schedule-jump-btn{background:var(--color-panel-bg);border:1px solid var(--color-border);color:var(--color-text-main);cursor:pointer;white-space:nowrap;border-radius:4px;padding:6px 10px;font-size:14px;font-weight:500}.m-schedule-jump-btn:disabled{opacity:.4;cursor:default}.m-schedule-rotor{height:100%}.m-schedule-rotate-btn,.m-schedule-rotate-exit-btn{background:var(--modal-backdrop-bg);width:44px;height:44px;color:var(--color-panel-bg);cursor:pointer;-webkit-tap-highlight-color:transparent;z-index:8;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex}.m-schedule-rotate-btn:focus-visible,.m-schedule-rotate-exit-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.m-schedule-rotate-btn{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.m-schedule-rotate-exit-btn{position:absolute;top:8px;right:8px}.m-schedule-page.is-os-landscape .m-schedule-rotate-exit-btn{position:fixed}.m-schedule-page.is-rotated{z-index:110;background:var(--color-page-bg);width:100dvw;height:100dvh;position:fixed;inset:0}.m-schedule-page.is-rotated .m-schedule-rotor{transform-origin:0 0;box-sizing:border-box;width:100dvh;height:100dvw;padding-left:env(safe-area-inset-top,0px);padding-right:env(safe-area-inset-bottom,0px);padding-top:env(safe-area-inset-right,0px);padding-bottom:env(safe-area-inset-left,0px);position:absolute;top:0;left:0;transform:rotate(90deg)translateY(-100%)}.m-schedule-page.is-rotated .m-schedule-pre-header .m-header,.m-schedule-page.is-rotated .m-schedule-pre-header .m-project-tabs-wrap{display:none}.m-schedule-page.is-rotated .m-schedule-pre-header{width:100%}.m-schedule-page.is-rotated .m-gantt-phase-label{max-width:calc(100vh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 24px);max-width:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 24px)}.m-schedule-page.is-rotated .m-dialog-panel{max-height:80dvw}.m-schedule-page.is-rotated .m-schedule-scroll{overscroll-behavior:contain}.m-dialog-overlay.m-schedule-android-guide{padding:0 16px env(safe-area-inset-bottom,0px);align-items:center}.m-dialog-overlay.m-schedule-android-guide .m-dialog-panel{border-radius:16px;max-width:360px}.m-gantt-inner{position:relative}.m-gantt-month-row,.m-gantt-date-row{background:var(--color-panel-bg);border-bottom:1px solid var(--color-border)}.m-gantt-month-group{border-right:1px solid var(--color-border);box-sizing:border-box;flex-shrink:0;height:100%;position:relative}.m-gantt-month-label{height:100%;color:var(--color-text-main);white-space:nowrap;box-sizing:border-box;align-items:center;max-width:100%;padding-left:6px;padding-right:4px;font-size:12px;font-weight:700;display:inline-flex;position:sticky;left:0;overflow:hidden}.m-gantt-date-cell{border-right:1px solid var(--color-border);box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;gap:2px;height:100%;display:inline-flex}.m-gantt-date-cell.is-holiday .m-gantt-day,.m-gantt-date-cell.is-holiday .m-gantt-weekday{color:var(--color-danger)}.m-gantt-date-cell.is-today{background:color-mix(in srgb, var(--color-primary) 15%, transparent)}.m-gantt-date-cell.is-today .m-gantt-day,.m-gantt-date-cell.is-today .m-gantt-weekday{color:var(--color-primary)}.m-gantt-day{color:var(--color-text-main);font-size:13px;font-weight:700;line-height:1}.m-gantt-weekday{color:var(--color-text-main);font-size:12px;font-weight:500;line-height:1}.m-gantt-body-row{border-bottom:1px solid var(--color-border);background-image:repeating-linear-gradient(to right, transparent 0px, transparent 23px, var(--color-border) 23px, var(--color-border) 24px)}.m-gantt-body-row.is-phase{background-color:var(--color-page-bg)}.m-gantt-body-row.is-task{background-color:var(--color-panel-bg)}.m-gantt-phase-label{box-sizing:border-box;background:var(--color-page-bg);cursor:pointer;-webkit-tap-highlight-color:transparent;align-items:center;gap:4px;max-width:calc(100vw - 24px);padding:0 8px 0 4px;display:flex}.m-gantt-phase-label:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.m-gantt-toggle{text-align:center;width:28px;height:28px;color:var(--color-text-sub);flex-shrink:0;justify-content:center;align-items:center;font-size:16px;line-height:1;display:inline-flex}.m-gantt-phase-name{font-size:15px;font-weight:var(--font-weight-bold);color:var(--color-text-main);white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.m-gantt-phase-label .m-gantt-avatar{width:20px;height:20px;font-size:11px}.m-gantt-bar-label{white-space:nowrap;pointer-events:none;opacity:1;align-items:center;gap:4px;height:100%;display:flex;position:absolute;top:0;left:6px}.m-gantt-bar-name{color:var(--color-text-main);opacity:1;font-size:15px;font-weight:600;line-height:1}.m-gantt-bar-label .m-gantt-avatar{width:18px;height:18px;font-size:11px}.m-gantt-task-nodate{white-space:nowrap;pointer-events:none;align-items:center;gap:4px;height:100%;display:flex;position:absolute;top:0;left:6px}.m-gantt-task-nodate .m-gantt-bar-name,.m-gantt-nodate-hint{color:var(--color-text-sub);font-size:14px;font-weight:500;line-height:1}.m-gantt-task-nodate .m-gantt-avatar{width:18px;height:18px;font-size:11px}.m-gantt-assign-inline{cursor:pointer;pointer-events:auto;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-shrink:0;align-items:center;gap:0;padding:0;display:flex}.m-gantt-no-assign{color:var(--color-text-disabled);padding:0 2px;font-size:13px}.m-gantt-avatar{background:var(--color-primary);width:22px;height:22px;color:var(--color-panel-bg);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:inline-flex}.m-gantt-extra-count{color:var(--color-text-sub);white-space:nowrap;padding-left:1px;font-size:11px;font-weight:600}.m-gantt-today-col{background:var(--color-primary);opacity:.08}.m-gantt-holiday-col{background:var(--color-danger);opacity:.06}.m-gantt-bar{pointer-events:none;overflow:visible}.m-gantt-empty{text-align:center;justify-content:center;align-items:center;padding:48px 24px;display:flex}.m-dialog-overlay{background:var(--modal-backdrop-bg);z-index:100;padding-bottom:env(safe-area-inset-bottom,0px);justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.m-dialog-panel{background:var(--color-panel-bg);width:100%;max-width:480px;max-height:80vh;box-shadow:var(--shadow-popover);border-radius:16px 16px 0 0;padding:20px 16px;overflow-y:auto}.m-dialog-title{color:var(--color-text-main);margin:0 0 12px;font-size:18px;font-weight:700}.m-dialog-subtitle{color:var(--color-text-sub);margin:0 0 8px;font-size:14px;font-weight:500}.m-dialog-empty{color:var(--color-text-sub);margin:0 0 16px;font-size:15px}.m-dialog-member-list{margin:0 0 16px;padding:0;list-style:none}.m-dialog-member-name{color:var(--color-text-main);border-bottom:1px solid var(--color-border);padding:8px 0;font-size:16px}.m-dialog-member-name:last-child{border-bottom:none}.m-dialog-close{width:100%;margin-top:8px}.m-dialog-current-value{color:var(--color-text-sub);margin:0 0 12px;font-size:14px}.m-dialog-field-label{color:var(--color-text-sub);margin-bottom:6px;font-size:14px;font-weight:500;display:block}.m-dialog-date-input{border:1px solid var(--color-border);background:var(--color-panel-bg);width:100%;color:var(--color-text-main);box-sizing:border-box;border-radius:8px;margin-bottom:12px;padding:10px 12px;font-size:16px;display:block}.m-dialog-textarea{border:1px solid var(--color-border);background:var(--color-panel-bg);width:100%;color:var(--color-text-main);box-sizing:border-box;resize:vertical;border-radius:8px;min-height:96px;margin-bottom:12px;padding:10px 12px;font-family:inherit;font-size:16px;display:block}.m-dialog-error{color:var(--color-danger);margin:0 0 12px;font-size:14px;font-weight:500}.m-dialog-confirm-date{color:var(--color-text-main);text-align:center;margin:0 0 8px;font-size:19px;font-weight:700}.m-dialog-confirm-msg{color:var(--color-text-main);margin:0 0 16px;font-size:16px;line-height:1.5}.m-dialog-actions{gap:10px;display:flex}.m-dialog-actions .m-btn{flex:1}.m-actuals-panel{flex-direction:column;gap:12px;padding:12px;display:flex}.m-actual-card{background:var(--color-panel-bg);border:1px solid var(--color-border);border-radius:10px;padding:14px}.m-actual-card-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.m-actual-project-name{color:var(--color-text-main);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:16px;font-weight:700;overflow:hidden}.m-actual-company-name{color:var(--color-text-sub);text-overflow:ellipsis;white-space:nowrap;margin:0 0 10px;font-size:14px;font-weight:600;overflow:hidden}.m-actual-status-badge{border:1px solid var(--color-border);color:var(--color-text-sub);background:var(--color-page-bg);white-space:nowrap;border-radius:20px;flex-shrink:0;padding:3px 8px;font-size:12px;font-weight:600}.m-actual-status-badge--neutral{background:var(--status-neutral-soft-bg);border-color:var(--status-neutral-soft-border);color:var(--status-neutral-soft-text)}.m-actual-status-badge--tentative{background:var(--status-tentative-soft-bg);border-color:var(--status-tentative-soft-border);color:var(--status-tentative-soft-text)}.m-actual-status-badge--reported{background:var(--status-reported-soft-bg);border-color:var(--status-reported-soft-border);color:var(--status-reported-soft-text)}.m-actual-status-badge--complete{background:var(--status-complete-soft-bg);border-color:var(--status-complete-soft-border);color:var(--status-complete-soft-text)}.m-actual-status-badge--inspected{background:var(--status-inspected-soft-bg);border-color:var(--status-inspected-soft-border);color:var(--status-inspected-soft-text)}.m-actual-status-badge--danger{background:var(--status-danger-bg);border-color:var(--status-danger-border);color:var(--color-danger)}.m-actual-blocking-msg{color:var(--color-danger);background:var(--color-page-bg);border-radius:6px;margin:0 0 10px;padding:8px;font-size:13px}.m-actual-dates{flex-direction:column;gap:2px;margin-bottom:12px;display:flex}.m-actual-date-row{align-items:baseline;gap:8px;padding:6px 0;display:flex}.m-actual-date-label{color:var(--color-text-sub);flex-shrink:0;min-width:72px;font-size:13px}.m-actual-date-value{color:var(--color-text-main);font-size:15px}.m-actual-date-divider{background:var(--color-border);height:1px;margin:4px 0}.m-actual-date-row--emphasis .m-actual-date-value{font-weight:700}.m-actual-date-row--editable{text-align:left;background:var(--color-page-bg);border:1px solid var(--color-border);cursor:pointer;width:100%;font:inherit;border-radius:8px;align-items:baseline;gap:8px;margin:2px 0;padding:10px 12px;display:flex}.m-actual-date-row--editable:active{background:var(--color-border)}.m-actual-date-row--editable .m-actual-date-value{flex:1;min-width:0}.m-actual-date-edit-hint{color:var(--color-primary);flex-shrink:0;font-size:12px;font-weight:600}.m-actual-inspected-badge{color:var(--color-success,var(--color-primary));border:1px solid var(--color-success,var(--color-primary));white-space:nowrap;border-radius:20px;padding:1px 8px;font-size:11px;font-weight:600}.m-actual-error{color:var(--color-danger);margin:0 0 8px;font-size:14px;font-weight:500}.m-actual-confirm-btn,.m-actual-action-btn{width:100%;margin-top:4px}.m-actual-draft-actions{flex-direction:column;gap:8px;margin-top:4px;display:flex}.m-btn-danger{background:var(--color-danger);color:var(--color-panel-bg);border:1px solid var(--color-danger)}.m-actual-next{border:1px solid #0000;border-radius:8px;flex-direction:column;gap:2px;margin-bottom:12px;padding:12px 14px;display:flex}.m-actual-next__title{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);line-height:1.4}.m-actual-next__hint{font-size:var(--font-size-xs);color:var(--color-text-sub);line-height:1.4}.m-actual-next--action{background:var(--status-reported-soft-bg);border-color:var(--status-reported-soft-border)}.m-actual-next--action .m-actual-next__title{color:var(--status-reported-soft-text)}.m-actual-next--waiting{background:var(--status-tentative-soft-bg);border-color:var(--status-tentative-soft-border)}.m-actual-next--waiting .m-actual-next__title{color:var(--status-tentative-soft-text)}.m-actual-next--done{background:var(--status-inspected-soft-bg);border-color:var(--status-inspected-soft-border)}.m-actual-next--done .m-actual-next__title{color:var(--status-inspected-soft-text)}.m-actual-group{margin-bottom:14px}.m-actual-group__label{font-size:var(--font-size-xxs);font-weight:var(--font-weight-semibold);color:var(--color-text-sub);letter-spacing:.06em;margin:0 0 4px}.m-actual-actions{flex-direction:column;gap:8px;display:flex}.m-progress-table{flex-direction:column;display:flex}.m-progress-row{border-bottom:1px solid var(--color-border);align-items:center;gap:10px;padding:10px 0;display:flex}.m-progress-row:last-child{border-bottom:none}.m-progress-item{color:var(--color-text-sub);flex:0 0 64px;font-size:15px}.m-progress-mid{min-width:0;color:var(--color-text-main);flex:1;font-size:15px}.m-progress-action{border:1px solid var(--color-primary);border-radius:var(--radius-button,6px);color:var(--color-primary);cursor:pointer;white-space:nowrap;background:0 0;flex:none;padding:4px 10px;font-size:13px}.m-btn-action-start{background:var(--mobile-action-start-bg);color:var(--button-primary-text);border-color:var(--mobile-action-start-bg)}.m-btn-action-report{background:var(--mobile-action-report-bg);color:var(--button-primary-text);border-color:var(--mobile-action-report-bg)}.m-overall-page{height:100%}.m-overall-scroll{-webkit-overflow-scrolling:touch;height:100%;overflow:auto}.m-overall-pre-header{background:var(--color-panel-bg);z-index:7;width:100vw;position:sticky;left:0}.m-overall-pre-header .m-header{padding-top:0;position:static}.m-overall-filters{background:var(--color-panel-bg);border-bottom:1px solid var(--color-border);-webkit-overflow-scrolling:touch;flex-direction:row;gap:8px;padding:8px 12px;display:flex;overflow-x:auto}.m-overall-filter-chip{border:1px solid var(--color-border);background:var(--color-page-bg);color:var(--color-text-sub);white-space:nowrap;cursor:pointer;border-radius:20px;flex-shrink:0;justify-content:center;align-items:center;padding:4px 12px;font-size:13px;font-weight:500;display:inline-flex}.m-overall-filter-chip.is-active{background:var(--color-primary);color:var(--color-panel-bg);border-color:var(--color-primary)}.m-overall-today-btn{border:1px solid var(--color-primary);background:var(--color-panel-bg);color:var(--color-primary);white-space:nowrap;cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;padding:4px 10px;font-size:13px;font-weight:600;display:inline-flex}.m-overall-inner{position:relative}.m-overall-month-row,.m-overall-date-row{background:var(--color-panel-bg);border-bottom:1px solid var(--color-border)}.m-overall-month-group{border-right:1px solid var(--color-border);box-sizing:border-box;flex-shrink:0;height:100%;position:relative}.m-overall-month-label{height:100%;color:var(--color-text-main);white-space:nowrap;box-sizing:border-box;align-items:center;max-width:100%;padding-left:6px;padding-right:4px;font-size:12px;font-weight:700;display:inline-flex;position:sticky;left:0;overflow:hidden}.m-overall-date-cell{border-right:1px solid var(--color-border);box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;gap:2px;height:100%;display:inline-flex}.m-overall-date-cell.is-holiday .m-overall-day,.m-overall-date-cell.is-holiday .m-overall-weekday{color:var(--color-danger)}.m-overall-date-cell.is-today{background:var(--m-overall-today-cell-bg,#1677ff1f)}.m-overall-date-cell.is-today .m-overall-day,.m-overall-date-cell.is-today .m-overall-weekday{color:var(--m-overall-today-text-color,var(--color-primary));font-weight:700}.m-overall-day{color:var(--color-text-main);font-size:13px;font-weight:700;line-height:1}.m-overall-weekday{color:var(--color-text-main);font-size:12px;font-weight:500;line-height:1}.m-overall-row{border-bottom:1px solid var(--color-border);background-image:repeating-linear-gradient(to right, transparent 0px, transparent calc(var(--m-overall-day-width,24px) - 1px), var(--color-border) calc(var(--m-overall-day-width,24px) - 1px), var(--color-border) var(--m-overall-day-width,24px))}.m-overall-label{box-sizing:border-box;align-items:center;gap:0;max-width:calc(100vw - 24px);padding:0 8px 0 4px;display:flex}.m-overall-label .m-gantt-assign-inline{margin-left:4px}.m-overall-project-label{background:var(--color-table-row-bg,var(--color-panel-bg))}.m-overall-phase-label{background:var(--color-page-bg);padding-left:20px}.m-overall-toggle-btn{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;padding:0;display:inline-flex}.m-overall-toggle-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.m-overall-toggle{color:var(--color-text-main);font-size:16px;line-height:1}.m-overall-name-btn{cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent;background:0 0;border:none;align-items:center;min-width:0;height:100%;padding:0;display:inline-flex}.m-overall-name-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.m-overall-project-name,.m-overall-phase-name{color:var(--color-text-main);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:15px;font-weight:700;overflow:hidden}.m-overall-label .m-gantt-avatar{width:20px;height:20px;font-size:11px}.m-overall-today-col{background:var(--color-primary);opacity:.08}.m-overall-holiday-col{background:var(--color-danger);opacity:.06}.m-overall-bar{pointer-events:none;overflow:visible}.m-overall-bar-label{white-space:nowrap;pointer-events:none;opacity:1;align-items:center;gap:4px;height:100%;display:flex;position:absolute;top:0;left:6px}.m-overall-bar-name{color:var(--color-text-main);opacity:1;font-size:15px;font-weight:600;line-height:1}.m-overall-bar-label .m-gantt-avatar{width:18px;height:18px;font-size:11px}.m-overall-project-row{background-color:var(--color-table-row-bg,var(--color-panel-bg))}.m-overall-phase-row{background-color:var(--color-page-bg)}.m-overall-task-row{background-color:var(--color-panel-bg)}.m-overall-empty{text-align:center;justify-content:center;align-items:center;padding:48px 24px;display:flex}.m-company-info{flex-direction:column;gap:10px;display:flex}.m-company-field{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.m-company-field--stack{flex-direction:column;align-items:stretch;gap:4px}.m-company-field-label{font-size:var(--font-size-xs);color:var(--color-text-sub);flex-shrink:0;padding-top:6px}.m-company-field--stack .m-company-field-label{padding-top:0}.m-company-value-box{background:var(--color-panel-bg);border:1px solid var(--color-border);min-width:0;max-width:100%;color:var(--color-text-main);text-align:right;word-break:break-all;overflow-wrap:anywhere;border-radius:8px;padding:6px 10px;font-size:14px}.m-company-field--stack .m-company-value-box{text-align:left;align-self:flex-start;margin-left:12px}.m-company-value-box.is-empty{color:var(--color-text-sub);font-style:italic}.m-company-chips{flex-wrap:wrap;gap:8px;display:flex}.m-company-chip{background:var(--color-page-bg);border:1px solid var(--color-border);font-size:var(--font-size-xs);color:var(--color-text-main);border-radius:16px;align-items:center;padding:6px 12px;display:inline-flex}.m-company-card-list{flex-direction:column;gap:12px;display:flex}.m-company-card{background:var(--color-panel-bg);border:1px solid var(--color-border);border-radius:8px;padding:12px}.m-company-card-button{text-align:left;cursor:pointer;width:100%;font:inherit;display:block}.m-company-card-title{font-size:17px;font-weight:var(--font-weight-bold);color:var(--color-text-main);margin:0 0 8px}.m-hs-body{font-size:var(--font-size-body);color:var(--color-text-main);white-space:pre-line;margin:0 0 16px;line-height:1.6}.m-hs-os{background:var(--color-page-bg);border:1px solid var(--color-border);border-radius:8px;margin-bottom:10px;padding:10px 12px}.m-hs-os-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-sub);margin-bottom:4px;display:block}.m-hs-os-steps{font-size:var(--font-size-xs);color:var(--color-text-main);white-space:pre-line;margin:0;line-height:1.6}.m-po-preview{padding-bottom:24px}.m-po-preview-bar{padding:12px 16px}.m-po-summary{flex-direction:column;gap:8px;display:flex}.m-po-summary-row{align-items:baseline;gap:10px;display:flex}.m-po-summary-label{color:var(--color-text-sub);flex:0 0 76px;font-size:15px}.m-po-summary-value{min-width:0;color:var(--color-text-main);word-break:break-word;flex:1;font-size:15px}.m-po-preview-actions{flex-direction:column;gap:8px;padding:12px 16px;display:flex}.m-po-preview-actions .m-btn{width:100%}.m-po-rows{flex-direction:column;display:flex}.m-po-row{border-bottom:1px solid var(--color-border);color:var(--color-text-main);padding:10px 0;font-size:15px}.m-po-row:last-child{border-bottom:none}.m-po-row--major{background:var(--color-page-bg);padding-left:8px;padding-right:8px;font-weight:700}.m-po-row--mid{padding-left:12px;font-weight:700}.m-po-row--text{color:var(--color-text-sub);padding-left:20px}.m-po-row--line.is-indented{padding-left:20px}.m-po-line-head{align-items:baseline;gap:8px;display:flex}.m-po-line-no{min-width:1.8em;font-size:var(--font-size-xs);color:var(--color-text-sub);flex:none}.m-po-line-name{word-break:break-word;flex:1;min-width:0;font-weight:600}.m-po-text-name{word-break:break-word}.m-po-line-spec{font-size:var(--font-size-xs);color:var(--color-text-sub);white-space:pre-line;word-break:break-word;margin:4px 0 0;padding-left:1.8em}.m-po-line-figures{flex-wrap:wrap;gap:4px 14px;margin-top:6px;padding-left:1.8em;display:flex}.m-po-figure{font-size:var(--font-size-xs);align-items:baseline;gap:4px;display:inline-flex}.m-po-figure-label{color:var(--color-text-sub)}.m-po-figure-value{color:var(--color-text-main);font-variant-numeric:tabular-nums}.m-po-figure--amount .m-po-figure-value{font-weight:700}.m-po-totals{border-top:1px solid var(--color-border);flex-direction:column;gap:6px;margin-top:12px;padding-top:10px;display:flex}.m-po-total-row{color:var(--color-text-main);justify-content:space-between;gap:12px;font-size:15px;display:flex}.m-po-total-value{font-variant-numeric:tabular-nums}.m-po-total-row--grand{font-size:17px;font-weight:700}.m-print-source{display:none}.m-spec{flex-direction:column;display:flex}.m-spec-toolbar{align-items:center;gap:var(--space-form-gap);padding:var(--space-card-gap) var(--space-sidebar-padding);border-top:var(--border-width-base) solid var(--color-border);flex-wrap:wrap;display:flex}.m-spec-status{font-size:var(--font-size-caption);color:var(--color-text-sub)}.m-spec-pdf-btn{margin-left:auto}.m-spec-pdf-btn:disabled{background:var(--status-disabled-bg);border-color:var(--status-disabled-border);color:var(--color-text-sub);cursor:not-allowed}.m-spec-hint{font-size:var(--font-size-xs);color:var(--color-text-sub);flex-basis:100%}.m-spec-major{padding:var(--space-card-gap) var(--space-sidebar-padding);border-top:var(--border-width-base) solid var(--color-border)}.m-spec-major-title{margin:0 0 var(--space-form-gap);font-size:var(--font-size-body);font-weight:var(--font-weight-bold);color:var(--color-text-main);word-break:break-all}.m-spec-mid{margin-bottom:var(--space-form-gap)}.m-spec-mid-title{margin:var(--space-form-gap) 0;padding-left:var(--space-input-padding-x);border-left:var(--border-width-strong) solid var(--color-border);font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);color:var(--color-text-sub);word-break:break-all}.m-spec-no{margin-right:var(--space-form-gap);color:var(--color-text-sub);font-weight:var(--font-weight-medium)}.m-spec-item{margin-bottom:var(--space-form-gap);padding:var(--space-input-padding-y) var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-panel-bg)}.m-spec-item-head{align-items:baseline;gap:var(--space-form-gap);margin-bottom:var(--space-form-gap);display:flex}.m-spec-item-no{font-size:var(--font-size-xs);color:var(--color-text-sub)}.m-spec-item-name{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--color-text-main);word-break:break-all}.m-spec-rows{column-gap:var(--space-card-gap);row-gap:var(--space-form-gap);grid-template-columns:max-content 1fr;margin:0;display:grid}.m-spec-row{display:contents}.m-spec-row-label{font-size:var(--font-size-caption);color:var(--color-text-sub)}.m-spec-row-value{font-size:var(--font-size-caption);color:var(--color-text-main);white-space:pre-wrap;word-break:break-all;margin:0}.m-spec-row-value.is-empty{color:var(--color-text-sub)}.est-page{gap:var(--space-section-gap);flex-direction:column;display:flex}.est-breadcrumb{font-size:var(--font-size-caption);color:var(--color-text-sub)}.est-breadcrumb a{color:var(--color-primary);cursor:pointer}.est-breadcrumb a:hover{text-decoration:underline}.est-breadcrumb--with-action{justify-content:space-between;align-items:center;display:flex}.est-breadcrumb-action{background:var(--status-primary-bg);border:var(--border-width-base) solid var(--status-primary-border);border-radius:var(--radius-button);color:var(--color-primary);font-size:var(--font-size-caption);cursor:pointer;white-space:nowrap;align-items:center;padding:2px 10px;display:inline-flex}.est-breadcrumb-action:hover{border-color:var(--color-primary)}.est-header{background:var(--color-panel-bg);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);flex-direction:column;gap:12px;padding:16px 20px;display:flex}.est-header-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.est-header-titles{flex-direction:column;gap:6px;min-width:0;display:flex}.est-project-name{font-size:var(--font-size-section-title);font-weight:var(--font-weight-bold);color:var(--color-text-main);margin:0}.est-meta{gap:var(--space-form-gap);flex-direction:column;display:flex}.est-meta-row{font-size:var(--font-size-caption);color:var(--color-text-sub);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.est-meta-row--wide-gap{gap:calc(var(--space-page-x) + var(--space-header-padding-x))}.est-meta-valid-until{align-items:center;gap:var(--space-form-gap);flex-wrap:wrap;flex-shrink:0;display:flex}.est-name-input{width:280px;height:var(--height-input);padding:var(--space-input-padding-y) var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-input);background:var(--color-editable-bg);color:var(--color-text-main);font-size:var(--font-size-caption);flex-shrink:0}.est-name-input:read-only{background:var(--color-readonly-bg);color:var(--color-text-sub)}.est-note-field{gap:var(--space-form-gap);margin-top:var(--space-form-gap);flex-direction:column;display:flex}.est-note-label{font-size:var(--font-size-xs);color:var(--color-text-sub)}.est-note-textarea{width:100%;min-height:calc(var(--height-input) * 2);padding:var(--space-input-padding-y) var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-input);background:var(--color-editable-bg);color:var(--color-text-main);font-family:inherit;font-size:var(--font-size-caption);resize:vertical}.est-note-textarea:disabled{background:var(--color-readonly-bg);color:var(--color-text-sub)}.est-header-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.est-status-badge{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border:var(--border-width-base) solid transparent;white-space:nowrap;border-radius:999px;align-items:center;padding:2px 10px;display:inline-flex}.est-status-badge--draft{background:var(--status-neutral-soft-bg);border-color:var(--status-neutral-soft-border);color:var(--status-neutral-soft-text)}.est-status-badge--submitted{background:var(--status-primary-bg);border-color:var(--status-primary-border);color:var(--color-primary)}.est-status-badge--adopted{background:var(--status-success-bg);border-color:var(--status-success-border);color:var(--color-success)}.est-status-badge--superseded{background:var(--status-disabled-bg);border-color:var(--status-disabled-border);color:var(--color-text-sub)}.est-status-badge--invalid{background:var(--status-danger-bg);border-color:var(--status-danger-border);color:var(--color-danger)}.est-summary-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.est-summary-primary-action{height:var(--height-button-large);justify-content:center;min-width:160px}.est-summary{flex-wrap:wrap;gap:24px;display:flex}.est-summary-item{flex-direction:column;gap:2px;min-width:130px;display:flex}.est-summary-label{font-size:var(--font-size-xs);color:var(--color-text-sub)}.est-summary-value{font-size:var(--font-size-section-title);font-weight:var(--font-weight-bold);color:var(--color-text-main);font-family:var(--font-family-number);font-variant-numeric:tabular-nums;white-space:nowrap}.est-summary-value--primary{color:var(--color-primary)}.est-summary-value--discount,.est-summary-value--negative{color:var(--color-danger)}.est-summary-item--internal{background:var(--status-warning-bg);border-left:var(--border-width-strong) solid var(--status-warning-border);border-radius:var(--radius-small);padding:2px 10px}.est-summary-sub{font-size:var(--font-size-xs);color:var(--color-text-sub)}.est-target-panel{border-top:var(--border-width-base) solid var(--color-border);flex-wrap:wrap;align-items:center;gap:12px;padding-top:10px;display:flex}.est-target-label{font-size:var(--font-size-xs);color:var(--color-text-sub);white-space:nowrap}.est-target-input{width:160px;height:var(--height-input);padding:var(--space-input-padding-y) var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-input);background:var(--color-editable-bg);color:var(--color-text-main);font-size:var(--font-size-caption);font-family:var(--font-family-number);font-variant-numeric:tabular-nums;text-align:right}.est-target-input:disabled{background:var(--color-readonly-bg);color:var(--color-text-sub)}.est-target-required{font-size:var(--font-size-caption);font-weight:var(--font-weight-bold);font-family:var(--font-family-number);font-variant-numeric:tabular-nums;color:var(--color-danger);white-space:nowrap;-webkit-user-select:text;user-select:text}.est-target-divider{border-left:var(--border-width-strong) solid var(--status-danger-border);align-self:stretch}.est-target-note{font-size:var(--font-size-xs);color:var(--color-text-sub);white-space:nowrap}.est-target-unreachable{font-size:var(--font-size-xs);color:var(--color-warning);flex-basis:100%}.est-alert{border-radius:var(--radius-card);font-size:var(--font-size-caption);border:var(--border-width-base) solid transparent;padding:10px 14px}.est-alert--error{background:var(--status-danger-bg);border-color:var(--status-danger-border);color:var(--color-danger)}.est-alert--warning{background:var(--status-warning-bg);border-color:var(--status-warning-border);color:var(--color-warning)}.est-alert--info{background:var(--status-primary-bg);border-color:var(--status-primary-border);color:var(--color-primary)}.est-alert--success{background:var(--status-success-bg);border-color:var(--status-success-border);color:var(--color-success)}.est-alert-title{font-weight:var(--font-weight-semibold);margin:0 0 4px}.est-alert-list{margin:0;padding-left:18px}.est-alert-actions{gap:8px;margin-top:8px;display:flex}.est-table-section{background:var(--color-panel-bg);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);overflow:hidden}.est-table-toolbar{border-bottom:var(--border-width-base) solid var(--color-border);background:var(--color-table-header-bg);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.est-table-toolbar-title{font-size:var(--font-size-caption);font-weight:var(--font-weight-bold);color:var(--color-text-main);margin:0}.est-table-toolbar-actions-right{flex-wrap:wrap;align-items:center;gap:12px;margin-left:auto;display:flex}.est-calc-status{min-width:0;font-size:var(--font-size-xs);color:var(--color-text-sub);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.est-table-wrap{max-height:calc(100vh - 286px);overflow:auto}.est-table{border-collapse:separate;border-spacing:0;width:100%;min-width:1648px;font-size:var(--font-size-table);--est-row-h-1:23pt;--est-row-h-2:29pt;--est-row-h-step:14pt;--est-multiline-line-height:12pt;--est-multiline-padding-y:2pt}.est-table tr.est-row--auto-height{--est-row-height:max(var(--est-row-h-1), calc(var(--est-row-h-2) + (var(--est-line-count,1) - 2) * var(--est-row-h-step)));height:var(--est-row-height)}.est-table th,.est-table td{box-sizing:border-box;border-right:var(--border-width-base) solid var(--table-border-color);border-bottom:var(--border-width-base) solid var(--table-border-color)}.est-table th{background:var(--color-table-header-bg);color:var(--table-header-text);font-weight:var(--font-weight-semibold);text-align:left;padding:4px var(--space-table-cell-x);white-space:nowrap;font-size:var(--font-size-xs)}.est-table td{padding:3px var(--space-table-cell-x);vertical-align:middle}.est-table thead th{z-index:3;position:sticky}.est-table thead tr:first-child th{height:26px;top:0}.est-table thead tr:nth-child(2) th{top:26px}.est-table .est-sticky-1,.est-table .est-sticky-2,.est-table .est-sticky-3{z-index:2;background:var(--color-panel-bg);position:sticky}.est-table .est-sticky-1{width:var(--grid-col-ops-w);min-width:var(--grid-col-ops-w);max-width:var(--grid-col-ops-w);left:0}.est-table .est-sticky-2{left:var(--grid-col-ops-w);width:var(--grid-col-no-w);min-width:var(--grid-col-no-w);max-width:var(--grid-col-no-w)}.est-table .est-sticky-3{left:calc(var(--grid-col-ops-w) + var(--grid-col-no-w));width:var(--est-name-column-width,var(--grid-col-text-w));min-width:var(--est-name-column-width,var(--grid-col-text-w));max-width:var(--est-name-column-width,var(--grid-col-text-w))}.est-th-name-cell{justify-content:space-between;align-items:center;gap:4px;width:100%;display:flex}.est-col-resize-handle{cursor:col-resize;touch-action:none;width:6px;height:100%;position:absolute;top:0;right:0}.est-col-resize-handle--active{background:var(--color-primary)}.est-table--col-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.est-table .est-sticky-head{position:sticky;left:0}.est-table thead th.est-sticky-1,.est-table thead th.est-sticky-2,.est-table thead th.est-sticky-3,.est-table thead th.est-sticky-head{z-index:4;background:var(--color-table-header-bg)}.est-col--spec{width:var(--est-spec-column-width,var(--grid-col-text-w));min-width:var(--est-spec-column-width,var(--grid-col-text-w))}.est-col--qty{min-width:var(--grid-col-qty-w)}.est-col--unit{min-width:var(--grid-col-unit-w);max-width:var(--grid-col-unit-w)}.est-col--price{min-width:84px}.est-col--amount{min-width:108px}.est-col--type{min-width:88px}.est-col--rate{min-width:58px}.est-col--vendor{min-width:150px}.est-col--mrate{min-width:58px}.est-col--spacer{min-width:14px;padding:0}.est-vendor-unset{color:var(--color-text-sub)}.est-text-vendor-add{max-width:100%;font:inherit;color:var(--color-text-sub);cursor:pointer;background:0 0;border:none;padding:0}.est-cell--num{white-space:nowrap}.est-table td.est-no{text-align:left;font-family:var(--font-family-number);font-variant-numeric:tabular-nums;white-space:nowrap}.est-table td.est-no--major{font-weight:var(--font-weight-bold)}.est-table td.est-no--mid{padding-left:calc(var(--space-table-cell-x) + .5em);font-weight:var(--font-weight-medium)}.est-table td.est-no--item{text-align:right;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.est-cell--center,.est-th-group{text-align:center}.est-table th.est-th-group--sale{background:var(--status-primary-bg);color:var(--color-primary)}.est-table th.est-th-group--cost{background:var(--status-warning-bg);color:var(--color-warning);border-left:var(--border-width-strong) solid var(--table-border-color)}.est-table th.est-th-group--profit{background:var(--status-success-bg);color:var(--color-success);border-left:var(--border-width-strong) solid var(--table-border-color)}.est-cell--group-start{border-left:var(--border-width-strong) solid var(--table-border-color)}.est-cell--internal{background:var(--status-warning-bg)}.est-cell--negative{color:var(--color-danger)}.est-cell--ref{color:var(--color-text-sub)}.est-table .est-row--major td{background:var(--grid-row-major-bg);font-weight:var(--font-weight-bold)}.est-table .est-row--mid td,.est-table .est-row--subtotal td{background:var(--color-table-row-hover);color:var(--color-text-main);font-weight:var(--font-weight-medium)}.est-table .est-row--total td{background:var(--status-primary-bg);color:var(--color-text-main);font-weight:var(--font-weight-medium)}.est-table .est-struct-label{text-align:center;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.est-table .est-row--grandtotal td{background:var(--color-selected);color:var(--color-sidebar-text);font-weight:var(--font-weight-bold)}.est-table .est-row--selected td{background:var(--status-danger-bg)}.est-table .est-row--addline td{background:var(--color-panel-bg)}.est-table tr.est-drop-before td{box-shadow:var(--grid-drop-before-shadow)}.est-table tr.est-drop-after td{box-shadow:var(--grid-drop-after-shadow)}.est-addline-indent-1{margin-left:1em}.est-addline-indent-2{margin-left:2em}.est-table td.est-cell--edit{padding:0}.est-input{width:100%;min-width:0;height:30px;padding:3px var(--space-table-cell-x);color:inherit;font:inherit;box-sizing:border-box;background:0 0;border:none;border-radius:0;display:block}.est-input::placeholder{color:var(--input-placeholder-color)}.est-input:focus{outline:var(--border-width-strong) solid var(--input-focus-border-color);outline-offset:calc(-1 * var(--border-width-strong))}.est-input:disabled{background:var(--grid-readonly-bg);color:var(--grid-readonly-text)}.est-input--multiline{height:var(--est-row-height,100%);line-height:var(--est-multiline-line-height);padding-top:var(--est-multiline-padding-y);padding-bottom:var(--est-multiline-padding-y);resize:none;white-space:pre-wrap;word-break:break-word;overflow:hidden}.est-input--indent-1{padding-left:calc(var(--space-table-cell-x) + 1em)}.est-input--indent-2{padding-left:calc(var(--space-table-cell-x) + 2em)}.est-combo{align-items:stretch;height:100%;display:flex;position:relative}.est-combo-input{flex:1;width:0;min-width:0;padding-left:0;padding-right:0}.est-combo-toggle{width:18px;color:var(--color-text-sub);cursor:pointer;font-size:calc(var(--font-size-caption) - 2px);background:0 0;border:none;flex:none;padding:0;line-height:1}.est-combo-toggle:hover{color:var(--color-text-main)}.est-combo-dropdown{max-height:calc(7em + 70px);overflow-y:auto}.est-combo-option{text-align:left}.est-combo-option--current{background:var(--color-table-row-hover);font-weight:var(--font-weight-medium)}.est-select{width:100%;height:30px;color:inherit;font-size:var(--font-size-xs);box-sizing:border-box;background:0 0;border:none;border-radius:0;padding:0 4px;display:block}.est-select:focus{outline:var(--border-width-strong) solid var(--input-focus-border-color);outline-offset:calc(-1 * var(--border-width-strong))}.est-select:disabled{background:var(--color-readonly-bg);color:var(--color-text-sub)}.est-linetype-chip{border-radius:var(--radius-small);font-size:var(--font-size-xxs);font-weight:var(--font-weight-semibold);border:var(--border-width-base) solid transparent;white-space:nowrap;align-items:center;padding:1px 8px;display:inline-flex}.est-linetype-chip--est{background:var(--status-primary-bg);border-color:var(--status-primary-border);color:var(--color-primary)}.est-linetype-chip--option{background:var(--status-warning-bg);border-color:var(--status-warning-border);color:var(--color-warning)}.est-linetype-chip--text{background:var(--status-neutral-soft-bg);border-color:var(--status-neutral-soft-border);color:var(--status-neutral-soft-text)}.est-linetype-chip--cost{background:var(--status-danger-bg);border-color:var(--status-danger-border);color:var(--color-danger)}.est-rowops{white-space:nowrap;gap:2px;display:inline-flex}.est-issue-code{font-size:var(--font-size-xxs);opacity:.8;margin-left:4px}.est-cell--ops{text-align:center}.est-handle-wrap{display:inline-flex;position:relative}.est-drag-handle{border-radius:var(--radius-small);width:22px;height:22px;color:var(--color-text-sub);cursor:grab;font-size:var(--font-size-caption);background:0 0;border:none;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}.est-drag-handle:hover{background:var(--button-icon-hover-bg);color:var(--color-text-main)}.est-drag-handle:active{cursor:grabbing}.est-table td.est-cell--menu-open{z-index:5}.est-menu{z-index:6;background:var(--color-panel-bg);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-popover);min-width:104px;box-shadow:var(--shadow-popover);flex-direction:column;padding:4px;display:flex;position:absolute;top:100%;left:0}.est-menu--portal{z-index:2000;position:fixed}.est-menu button{border-radius:var(--radius-small);width:100%;color:var(--color-text-main);font-size:var(--font-size-caption);text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:5px 10px;display:block}.est-menu button:hover:enabled{background:var(--color-table-row-hover)}.est-menu button:disabled{color:var(--color-text-sub);opacity:.5;cursor:not-allowed}.est-menu .est-menu-danger{color:var(--color-danger)}.est-menu--up{top:auto;bottom:100%}.est-warning-badge{border:var(--border-width-base) solid var(--status-warning-border);background:var(--status-warning-bg);color:var(--color-warning);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;border-radius:999px;align-items:center;gap:4px;padding:3px 12px;display:inline-flex}.est-alert-title-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.est-linklike{color:inherit;font-size:var(--font-size-xs);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.est-breadcrumb-current{color:var(--color-text-main);font-weight:var(--font-weight-medium)}.est-add-btn{border:var(--border-width-base) dashed var(--color-border);border-radius:var(--radius-button);background:var(--color-panel-bg);color:var(--color-text-sub);cursor:pointer;font-size:var(--font-size-xs);white-space:nowrap;align-items:center;gap:4px;padding:2px 10px;display:inline-flex}.est-add-btn:hover:enabled{color:var(--color-primary);border-color:var(--color-primary)}.est-add-btn:disabled{opacity:.4;cursor:not-allowed}.est-add-discount-btn{justify-content:center;min-width:200px}.est-empty{text-align:center;color:var(--color-text-sub);font-size:var(--font-size-caption);padding:32px}.est-note{font-size:var(--font-size-xs);color:var(--color-text-sub);border-top:var(--border-width-base) solid var(--color-border);background:var(--color-readonly-bg);padding:6px 14px}.est-loading{text-align:center;color:var(--loading-text-color);font-size:var(--font-size-caption);padding:48px}.est-fin-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.est-fin-card{background:var(--color-panel-bg);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);flex-direction:column;align-items:flex-start;gap:8px;padding:14px 16px;display:flex}.est-fin-card--disabled{background:var(--color-readonly-bg)}.est-fin-card-head{align-items:center;gap:8px;display:flex}.est-fin-card-title{font-size:var(--font-size-section-title);font-weight:var(--font-weight-bold);color:var(--color-text-main)}.est-fin-card-desc{font-size:var(--font-size-caption);color:var(--color-text-sub);margin:0}.est-fin-card-note{font-size:var(--font-size-xs);color:var(--color-text-sub)}.est-fin-grid--top3{grid-template-columns:repeat(3,minmax(240px,1fr))}.est-fin-card--top{box-sizing:border-box;width:100%;height:100%}.est-fin-card-states{flex-direction:column;width:100%;display:flex}.est-fin-card-state-row{font-size:var(--font-size-caption);justify-content:space-between;gap:8px;padding:2px 0;display:flex}.est-fin-card-state-label{color:var(--color-text-sub);white-space:nowrap}.est-fin-card-state-value{color:var(--color-text-main);font-weight:var(--font-weight-medium);text-align:right;text-overflow:ellipsis;overflow:hidden}.est-fin-card-actions{margin-top:auto;padding-top:4px}.est-fin-card-actions--row{justify-content:space-between;align-items:center;gap:var(--space-button-gap);flex-wrap:wrap;display:flex}.est-fin-card-toggle-group{align-items:flex-start;gap:var(--space-form-gap);flex-direction:column;display:flex}.est-fin-card-toggle-label{font-size:var(--font-size-caption);color:var(--color-text-sub);cursor:pointer;align-items:center;gap:6px;display:flex}.est-fin-card-toggle-label--active{color:var(--color-danger)}.est-fin-card-toggle-label--success{color:var(--color-success)}.est-fin-card-toggle-error{color:var(--color-danger);font-size:var(--font-size-caption);margin-top:4px}.est-fin-card-amount-options{gap:var(--space-button-gap);display:flex}.est-list-toolbar{align-items:center;gap:8px;display:flex}.est-agg-section{background:var(--color-panel-bg);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:12px 14px}.est-agg-title{font-size:var(--font-size-caption);font-weight:var(--font-weight-bold);color:var(--color-text-main);margin:0 0 8px}.est-agg-wrap{overflow-x:auto}.est-agg-table{border-collapse:collapse;width:100%;min-width:960px;font-size:var(--font-size-table)}.est-agg-table th{background:var(--color-table-header-bg);color:var(--table-header-text);font-weight:var(--font-weight-semibold);text-align:left;padding:6px var(--space-table-cell-x);border:var(--border-width-base) solid var(--table-border-color);white-space:nowrap;font-size:var(--font-size-xs)}.est-agg-table td{padding:5px var(--space-table-cell-x);border:var(--border-width-base) solid var(--table-border-color);vertical-align:middle;white-space:nowrap}.est-agg-table .est-agg-row--total td{background:var(--color-readonly-bg);font-weight:var(--font-weight-bold)}.est-empty-actions{justify-content:center}.est-entry-list{flex-direction:column;gap:8px;display:flex}.est-entry-row{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-panel-bg);justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.est-entry-row-main{flex-direction:column;gap:2px;min-width:0;display:flex}.est-entry-name{font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);color:var(--color-text-main)}.est-entry-sub{font-size:var(--font-size-xs);color:var(--color-text-sub)}.est-entry-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.est-entry-toolbar{align-items:center;gap:8px;margin-top:12px;display:flex}.est-entry-empty{font-size:var(--font-size-caption);color:var(--color-text-sub);padding:16px}.est-modal-form{flex-direction:column;gap:12px;display:flex}.est-modal-label{font-size:var(--font-size-caption);color:var(--color-text-main);flex-direction:column;gap:4px;display:flex}.est-modal-input{height:var(--height-input);padding:var(--space-input-padding-y) var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-input);background:var(--color-editable-bg);color:var(--color-text-main);font-size:var(--font-size-caption)}.est-modal-actions{justify-content:flex-end;gap:8px;display:flex}.est-modal-text{font-size:var(--font-size-caption);color:var(--color-text-main);margin:0}.est-list-head{justify-content:space-between;align-items:center;gap:var(--space-card-gap);margin-bottom:var(--space-section-gap);flex-wrap:wrap;display:flex}.est-list-actions{align-items:center;gap:var(--space-button-gap);display:flex}.est-group-list{gap:var(--space-card-gap);flex-direction:column;display:flex}.est-group-block{gap:var(--space-form-gap);padding:var(--space-header-padding-y) var(--space-header-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-panel-bg);box-shadow:var(--shadow-card);flex-direction:column;display:flex}.est-group-head{justify-content:space-between;align-items:flex-start;gap:var(--space-card-gap);flex-wrap:wrap;display:flex}.est-group-head-main{align-items:center;gap:var(--space-form-gap);flex-wrap:wrap;min-width:0;display:flex}.est-group-name{font-size:var(--font-size-caption);font-weight:var(--font-weight-bold);color:var(--color-text-main)}.est-group-versions{font-size:var(--font-size-xs);color:var(--color-text-sub)}.est-group-lost{font-size:var(--font-size-xs);color:var(--color-danger)}.est-group-actions{align-items:center;gap:var(--space-form-gap);flex-shrink:0;display:flex}.est-group-badge--active{background:var(--status-primary-bg);border-color:var(--status-primary-border);color:var(--color-primary)}.est-group-badge--adopted{background:var(--status-success-bg);border-color:var(--status-success-border);color:var(--color-success)}.est-group-badge--lost{background:var(--status-danger-bg);border-color:var(--status-danger-border);color:var(--color-danger)}.est-group-note{padding:var(--space-table-cell-y) 0;font-size:var(--font-size-caption);color:var(--color-text-sub)}.est-ver-wrap{overflow-x:auto}.est-ver-table{border-collapse:collapse;width:100%;font-size:var(--font-size-table)}.est-ver-table th{background:var(--color-table-header-bg);color:var(--table-header-text);font-weight:var(--font-weight-semibold);text-align:left;padding:var(--space-table-cell-y) var(--space-table-cell-x);border:var(--border-width-base) solid var(--table-border-color);white-space:nowrap;font-size:var(--font-size-xs)}.est-ver-table td{padding:var(--space-table-cell-y) var(--space-table-cell-x);border:var(--border-width-base) solid var(--table-border-color);vertical-align:middle;white-space:nowrap}.est-ver-cell--ver{white-space:nowrap}.est-group-block--invalid{opacity:.6}.est-ver-row--invalid td{color:var(--color-text-sub)}.est-import-body{gap:var(--space-form-gap);flex-direction:column;width:560px;max-width:100%;display:flex}.est-import-search-row{gap:8px;display:flex}.est-import-search-input{height:var(--height-input);padding:var(--space-input-padding-y) var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-input);background:var(--color-editable-bg);color:var(--color-text-main);font-size:var(--font-size-caption);flex:1}.est-import-hint{font-size:var(--font-size-xs);color:var(--color-text-sub)}.est-import-results{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);min-height:160px;max-height:calc(100vh - 420px);overflow:auto}.est-import-result-row{text-align:left;width:100%;padding:var(--space-table-cell-y) var(--space-table-cell-x);border:none;border-bottom:var(--border-width-base) solid var(--color-border);background:var(--color-panel-bg);color:var(--color-text-main);cursor:pointer;display:block}.est-import-result-row:last-child{border-bottom:none}.est-import-result-row:hover{background:var(--color-table-row-hover)}.est-import-result-row--selected{background:var(--status-primary-bg);border-color:var(--status-primary-border)}.est-import-result-main{font-size:var(--font-size-caption);font-weight:var(--font-weight-medium)}.est-import-result-sub{font-size:var(--font-size-xs);color:var(--color-text-sub);margin-top:2px}.est-import-tree-wrap{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);min-height:160px;max-height:calc(100vh - 420px);padding:var(--space-table-cell-y) var(--space-table-cell-x);overflow:auto}.est-import-tree-all{padding-bottom:var(--space-table-cell-y);margin-bottom:var(--space-table-cell-y);border-bottom:var(--border-width-base) solid var(--color-border)}.est-import-tree,.est-import-tree-children{margin:0;padding:0;list-style:none}.est-import-tree-children{padding-left:20px}.est-import-tree-row{font-size:var(--font-size-caption);align-items:center;gap:6px;padding:3px 0;display:flex}.est-import-tree-row--major{font-weight:var(--font-weight-bold)}.est-import-tree-row--mid{font-weight:var(--font-weight-medium)}.est-import-checkbox{width:15px;height:15px}.est-import-footer{margin-top:var(--space-form-gap);justify-content:flex-end;gap:8px;display:flex}.est-takeoff-body{max-height:60vh;overflow-y:auto}.est-takeoff-note{margin:0 0 var(--space-card-gap);font-size:var(--font-size-caption);color:var(--color-text-sub);line-height:1.6}.est-takeoff-error{margin:0 0 var(--space-card-gap);font-size:var(--font-size-caption);color:var(--color-danger)}.est-takeoff-list{gap:var(--space-form-gap);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.est-takeoff-row{padding:var(--space-form-gap) var(--space-card-gap);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-input);background:var(--color-panel-bg)}.est-takeoff-label{align-items:center;gap:var(--space-form-gap);cursor:pointer;display:flex}.est-takeoff-name{font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);color:var(--color-text-main)}.est-takeoff-values{gap:var(--space-card-gap);padding-left:var(--space-header-padding-x);font-size:var(--font-size-caption);color:var(--color-text-main);display:flex}.est-takeoff-reason{padding-left:var(--space-header-padding-x);font-size:var(--font-size-xs);color:var(--color-danger)}.est-takeoff-footer{justify-content:flex-end;align-items:center;gap:var(--space-card-gap);margin-top:var(--space-sidebar-padding);flex-wrap:wrap;display:flex}.est-takeoff-footer .est-takeoff-note{margin:0 auto 0 0}.photos-panel{gap:var(--space-section-gap);flex-direction:column;display:flex}.photos-panel__toolbar{align-items:center;gap:var(--space-button-gap);display:flex}.photos-panel__add-cta{border:1px solid var(--color-primary);border-radius:var(--radius-card);background:var(--color-primary);color:#fff;width:100%;min-height:64px;font-size:var(--font-size-section-title);font-weight:var(--font-weight-bold);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:0 20px;display:flex;box-shadow:0 2px 6px #1677ff59}.photos-panel__add-cta:active{filter:brightness(.92)}.photos-panel__add-cta-icon{font-size:24px;line-height:1}.photos-panel--pc .photos-panel__add-cta{width:auto;min-width:260px;min-height:52px}.photos-panel__load-more{padding:var(--space-form-gap) 0;justify-content:center;display:flex}.photo-breadcrumb{font-size:var(--font-size-caption);flex-wrap:wrap;align-items:center;gap:4px;display:flex}.photo-breadcrumb__segment{align-items:center;gap:4px;display:inline-flex}.photo-breadcrumb__separator{color:var(--color-text-sub)}.photo-breadcrumb__link{color:var(--color-primary);font-size:var(--font-size-caption);cursor:pointer;background:0 0;border:none;padding:0}.photo-breadcrumb__current{color:var(--color-text-main);font-weight:var(--font-weight-semibold)}.photo-folder-list{grid-template-columns:repeat(auto-fill, minmax(var(--photo-folder-card-min), 1fr));gap:var(--space-card-gap);display:grid}.photo-folder-list__empty{color:var(--color-text-sub);font-size:var(--font-size-caption);margin:0}.photo-folder-card{padding:var(--space-page-y) var(--space-table-cell-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-panel-bg);box-shadow:var(--shadow-card);cursor:pointer;text-align:center;flex-direction:column;align-items:center;gap:4px;display:flex}.photo-folder-card__icon{font-size:var(--font-size-section-title);line-height:1}.photo-folder-card__label{color:var(--color-text-main);font-size:var(--font-size-body);font-weight:var(--font-weight-semibold)}.photo-folder-card__count{color:var(--color-text-sub);font-size:var(--font-size-caption)}.photo-grid{grid-template-columns:repeat(auto-fill, minmax(var(--photo-grid-thumb-min), 1fr));gap:var(--space-card-gap);display:grid}.photo-grid__empty{color:var(--color-text-sub);font-size:var(--font-size-caption);margin:0}.photo-card{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-panel-bg);box-shadow:var(--shadow-card);cursor:pointer;text-align:left;flex-direction:column;gap:4px;padding:0;display:flex;position:relative;overflow:hidden}.photo-card--selected{outline:var(--border-width-strong) solid var(--color-primary);outline-offset:-2px}.photo-card__checkbox{top:var(--space-table-cell-x);left:var(--space-table-cell-x);z-index:1;border:var(--border-width-base) solid var(--color-border);background:var(--color-panel-bg);color:#fff;width:24px;height:24px;font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute}.photo-card__checkbox--checked{background:var(--color-primary);border-color:var(--color-primary)}.photo-card__thumb-wrap{aspect-ratio:1;background:var(--color-page-bg);width:100%;overflow:hidden}.photo-card__thumb-img{object-fit:cover;width:100%;height:100%;display:block}.photo-card__thumb-fallback{width:100%;height:100%;color:var(--color-text-sub);font-size:var(--font-size-xs);justify-content:center;align-items:center;display:flex}.photo-card__thumb-fallback--error{color:var(--color-danger)}.photo-card__meta{padding:var(--space-table-cell-y) var(--space-table-cell-x);flex-direction:column;gap:2px;display:flex}.photo-card__category{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-main)}.photo-card__company,.photo-card__captured-at{font-size:var(--font-size-xxs);color:var(--color-text-sub)}.photo-upload{gap:var(--space-section-gap);flex-direction:column;display:flex}.photo-upload__notice{margin:0}.photo-upload__category{gap:var(--space-form-gap);border:none;flex-direction:column;margin:0;padding:0;display:flex}.photo-upload__category-legend{font-size:var(--font-size-label);font-weight:var(--font-weight-semibold);color:var(--color-text-main);padding:0}.photo-upload__category-list{gap:var(--space-button-gap);flex-wrap:wrap;display:flex}.photo-upload__category-option{font-size:var(--font-size-body);color:var(--color-text-main);align-items:center;gap:6px;display:inline-flex}.photo-upload__hint{font-size:var(--font-size-caption);color:var(--color-warning);margin:0}.photo-upload__file-input{display:none}.photo-upload__dropzone{align-items:center;gap:var(--space-form-gap);padding:var(--space-page-y) var(--space-page-x);border:var(--border-width-strong) dashed var(--color-border);border-radius:var(--radius-card);text-align:center;cursor:pointer;flex-direction:column;display:flex}.photo-upload__dropzone--active{border-color:var(--color-primary);background:var(--status-primary-bg)}.photo-upload__dropzone--disabled{cursor:not-allowed;color:var(--color-disabled)}.photo-upload__dropzone-text{font-size:var(--font-size-caption);color:var(--color-text-sub);margin:0}.photo-upload__staged{gap:var(--space-form-gap);flex-direction:column;display:flex}.photo-upload__staged-summary{font-size:var(--font-size-caption);color:var(--color-text-sub);margin:0}.photo-upload__staged-grid{grid-template-columns:repeat(auto-fill, minmax(var(--photo-grid-thumb-min), 1fr));gap:var(--space-card-gap);max-height:max(0px,min(320px,100dvh - 430px));display:grid;overflow-y:auto}.photo-upload__staged-item{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-panel-bg);flex-direction:column;display:flex;position:relative;overflow:hidden}.photo-upload__staged-remove{z-index:1;position:absolute;top:4px;right:4px}.photo-upload__staged-thumb-wrap{aspect-ratio:1;background:var(--color-page-bg);width:100%;overflow:hidden}.photo-upload__staged-thumb-img{object-fit:cover;width:100%;height:100%;display:block}.photo-upload__staged-thumb-fallback{width:100%;height:100%;color:var(--color-text-sub);font-size:var(--font-size-xxs);text-align:center;padding:var(--space-table-cell-x);overflow-wrap:anywhere;justify-content:center;align-items:center;display:flex}.photo-upload__staged-name{padding:var(--space-table-cell-y) var(--space-table-cell-x) 0;font-size:var(--font-size-xxs);color:var(--color-text-main);text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.photo-upload__staged-error{padding:0 var(--space-table-cell-x) var(--space-table-cell-y);font-size:var(--font-size-xxs);color:var(--color-danger);margin:0}.photo-upload__progress{gap:var(--space-form-gap);flex-direction:column;display:flex}.photo-upload__file-list{flex-direction:column;gap:4px;max-height:220px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.photo-upload__file-row{align-items:center;gap:var(--space-table-cell-x);padding:var(--space-table-cell-y) var(--space-table-cell-x);border-bottom:var(--border-width-base) solid var(--color-border);font-size:var(--font-size-caption);flex-wrap:wrap;display:flex}.photo-upload__file-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--color-text-main);flex:auto;overflow:hidden}.photo-upload__status{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);border-radius:var(--radius-small);flex:none;padding:2px 8px}.photo-upload__status--pending{background:var(--status-neutral-soft-bg);color:var(--status-neutral-soft-text)}.photo-upload__status--sending,.photo-upload__status--received,.photo-upload__status--processing{background:var(--status-primary-bg);color:var(--color-primary)}.photo-upload__status--success{background:var(--status-success-bg);color:var(--color-success)}.photo-upload__status--failed{background:var(--status-danger-bg);color:var(--color-danger)}.photo-upload__status--resume_needed{background:var(--status-warning-bg);color:var(--color-warning)}.photo-upload__file-error{font-size:var(--font-size-xxs);color:var(--color-danger);flex-basis:100%}.photo-selection-toolbar{gap:var(--space-form-gap);flex-direction:column;display:flex}.photo-selection-toolbar__row{align-items:center;gap:var(--space-button-gap);flex-wrap:wrap;display:flex}.photo-selection-toolbar__count{font-size:var(--font-size-caption);color:var(--color-text-sub)}.photos-panel__filter{align-items:center;gap:var(--space-button-gap);display:inline-flex}.photos-panel__filter-label{font-size:var(--font-size-caption);color:var(--color-text-sub)}.photos-panel__filter-select{max-width:100%}.photos-panel__order{gap:var(--space-button-gap);display:inline-flex}.photo-move__destination-list{gap:var(--space-form-gap);flex-direction:column;max-height:280px;display:flex;overflow-y:auto}.photo-viewer{gap:var(--space-form-gap);flex-direction:column;display:flex}.photo-viewer__image-area{background:var(--color-page-bg);border-radius:var(--radius-card);justify-content:center;align-items:center;min-height:200px;display:flex;position:relative;overflow:hidden}.photo-viewer--pc .photo-viewer__image-area{max-height:60vh}.photo-viewer--mobile .photo-viewer__image-area{flex:auto;max-height:70vh}.photo-viewer__image{object-fit:contain;max-width:100%;max-height:60vh;display:block}.photo-viewer__state{padding:var(--space-page-y);color:var(--color-text-sub);font-size:var(--font-size-caption);text-align:center;margin:0}.photo-viewer__state--error{color:var(--color-danger)}.photo-viewer__fallback{align-items:center;gap:var(--space-form-gap);flex-direction:column;display:flex}.photo-viewer__download-link{text-decoration:none}.photo-viewer__nav{border:var(--border-width-base) solid var(--color-border);background:var(--color-panel-bg);width:36px;height:36px;color:var(--color-text-main);font-size:var(--font-size-section-title);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.photo-viewer__nav:disabled{color:var(--color-disabled);cursor:not-allowed}.photo-viewer__nav--prev{left:var(--space-table-cell-x)}.photo-viewer__nav--next{right:var(--space-table-cell-x)}.photo-viewer__meta{flex-direction:column;gap:4px;margin:0;display:flex}.photo-viewer__meta-row{justify-content:space-between;gap:var(--space-table-cell-x);font-size:var(--font-size-caption);display:flex}.photo-viewer__meta-row dt{color:var(--color-text-sub)}.photo-viewer__meta-row dd{color:var(--color-text-main);text-align:right;overflow-wrap:anywhere;margin:0}.photo-viewer__downloads{align-items:center;gap:var(--space-button-gap);flex-wrap:wrap;display:flex}.photo-viewer__mobile-nav{justify-content:space-between;align-items:center;gap:var(--space-button-gap);display:flex}.photo-viewer__mobile-position{font-size:var(--font-size-caption);color:var(--color-text-sub)}.photo-viewer-sheet{z-index:1000;background:var(--color-panel-bg);padding:var(--space-form-gap) var(--space-table-cell-x);flex-direction:column;display:flex;position:fixed;inset:0;overflow-y:auto}.photo-viewer-sheet__header{justify-content:flex-end;display:flex}.photo-viewer-sheet__close{width:36px;height:36px;color:var(--color-text-main);font-size:var(--font-size-section-title);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.documents-panel{gap:var(--space-section-gap);flex-direction:column;display:flex}.documents-panel__toolbar{align-items:center;gap:var(--space-button-gap);display:flex}.documents-panel__empty{padding:var(--space-page-y) 0;text-align:center;color:var(--color-text-sub);font-size:var(--font-size-caption);margin:0}.documents-panel__load-more{padding:var(--space-form-gap) 0;justify-content:center;display:flex}.document-scope-badge{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);border-radius:var(--radius-small);white-space:nowrap;padding:2px 8px;display:inline-block}.document-scope-badge--all_members{background:var(--status-success-bg);color:var(--color-success)}.document-scope-badge--uploader_company_only{background:var(--status-warning-bg);color:var(--color-warning)}.document-scope-badge--internal_only{background:var(--status-neutral-soft-bg);color:var(--status-neutral-soft-text)}.document-table-wrap{overflow-x:auto}.document-table{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--font-size-table)}.document-table th,.document-table td{box-sizing:border-box;border-bottom:var(--border-width-base) solid var(--table-border-color);padding:var(--space-table-cell-y) var(--space-table-cell-x);text-align:left;vertical-align:middle}.document-table th{background:var(--color-table-header-bg);color:var(--table-header-text);font-weight:var(--font-weight-semibold);font-size:var(--font-size-xs);white-space:nowrap}.document-table__file-link{color:var(--color-primary);font-size:var(--font-size-table);text-align:left;cursor:pointer;background:0 0;border:none;padding:0}.document-table__file-link:disabled{color:var(--color-disabled);cursor:not-allowed}.document-table__file-size{margin-left:var(--space-table-cell-x);font-size:var(--font-size-xxs);color:var(--color-text-sub)}.document-card-list{gap:var(--space-card-gap);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.document-card{padding:var(--space-table-cell-y) var(--space-table-cell-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-panel-bg);box-shadow:var(--shadow-card);flex-direction:column;gap:4px;display:flex}.document-card__file-link{color:var(--color-primary);font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);text-align:left;cursor:pointer;overflow-wrap:anywhere;background:0 0;border:none;align-self:flex-start;padding:0}.document-card__file-link:disabled{color:var(--color-disabled);cursor:not-allowed}.document-card__meta{font-size:var(--font-size-caption);color:var(--color-text-sub);margin:0}.document-card__meta--sub{font-size:var(--font-size-xxs)}.document-upload{gap:var(--space-section-gap);flex-direction:column;display:flex}.document-upload__scope{gap:var(--space-form-gap);border:none;flex-direction:column;margin:0;padding:0;display:flex}.document-upload__scope-legend{font-size:var(--font-size-label);font-weight:var(--font-weight-semibold);color:var(--color-text-main);padding:0}.document-upload__scope-list{gap:var(--space-button-gap);flex-wrap:wrap;display:flex}.document-upload__scope-option{font-size:var(--font-size-body);color:var(--color-text-main);align-items:center;gap:6px;display:inline-flex}.document-upload__hint{font-size:var(--font-size-caption);color:var(--color-warning);margin:0}.document-upload__file-input{display:none}.document-upload__dropzone{align-items:center;gap:var(--space-form-gap);padding:var(--space-page-y) var(--space-page-x);border:var(--border-width-strong) dashed var(--color-border);border-radius:var(--radius-card);text-align:center;cursor:pointer;flex-direction:column;display:flex}.document-upload__dropzone--active{border-color:var(--color-primary);background:var(--status-primary-bg)}.document-upload__dropzone--disabled{cursor:not-allowed;color:var(--color-disabled)}.document-upload__dropzone-text{font-size:var(--font-size-caption);color:var(--color-text-sub);margin:0}.document-upload__staged{gap:var(--space-form-gap);flex-direction:column;display:flex}.document-upload__staged-summary{font-size:var(--font-size-caption);color:var(--color-text-sub);margin:0}.document-upload__staged-list{gap:var(--space-table-cell-y);flex-direction:column;max-height:280px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.document-upload__staged-item{align-items:center;gap:var(--space-table-cell-x);padding:var(--space-table-cell-y) var(--space-table-cell-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-panel-bg);display:flex}.document-upload__staged-thumb{border-radius:var(--radius-small);object-fit:cover;background:var(--color-page-bg);flex:none;width:40px;height:40px}.document-upload__staged-type-badge{border-radius:var(--radius-small);background:var(--color-page-bg);width:40px;height:40px;font-size:var(--font-size-xxs);font-weight:var(--font-weight-semibold);color:var(--color-text-sub);flex:none;justify-content:center;align-items:center;display:flex}.document-upload__staged-info{flex-direction:column;flex:auto;min-width:0;display:flex}.document-upload__staged-name{text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-main);font-size:var(--font-size-caption);overflow:hidden}.document-upload__staged-size{font-size:var(--font-size-xxs);color:var(--color-text-sub)}.document-upload__staged-error{font-size:var(--font-size-xxs);color:var(--color-danger)}.document-upload__staged-remove{flex:none}.document-upload__progress{gap:var(--space-form-gap);flex-direction:column;display:flex}.document-upload__file-list{flex-direction:column;gap:4px;max-height:220px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.document-upload__file-row{align-items:center;gap:var(--space-table-cell-x);padding:var(--space-table-cell-y) var(--space-table-cell-x);border-bottom:var(--border-width-base) solid var(--color-border);font-size:var(--font-size-caption);flex-wrap:wrap;display:flex}.document-upload__file-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--color-text-main);flex:auto;overflow:hidden}.document-upload__status{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);border-radius:var(--radius-small);flex:none;padding:2px 8px}.document-upload__status--pending{background:var(--status-neutral-soft-bg);color:var(--status-neutral-soft-text)}.document-upload__status--sending{background:var(--status-primary-bg);color:var(--color-primary)}.document-upload__status--success{background:var(--status-success-bg);color:var(--color-success)}.document-upload__status--failed{background:var(--status-danger-bg);color:var(--color-danger)}.document-upload__file-error{font-size:var(--font-size-xxs);color:var(--color-danger);flex-basis:100%}.document-table__ops{white-space:nowrap;text-align:center;width:1%}.document-ops-button{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-button);background:var(--color-panel-bg);width:34px;height:30px;color:var(--color-text-main);font-size:var(--font-size-body);font-weight:var(--font-weight-bold);cursor:pointer;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}.document-ops-button:hover{background:var(--color-table-row-hover)}.document-ops-disabled{color:var(--color-text-sub);font-size:var(--font-size-xs);white-space:nowrap;cursor:default}.document-card__ops{justify-content:flex-end;display:flex}.documents-panel__delete-name{color:var(--color-text-sub);font-size:var(--font-size-caption);word-break:break-all;margin:0}.document-viewer{z-index:1000;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.document-viewer__panel{background:var(--color-panel-bg);flex-direction:column;display:flex;overflow:hidden}.document-viewer--pc .document-viewer__panel{border-radius:var(--radius-card);width:min(1100px,96vw);height:92vh;box-shadow:var(--shadow-card)}.document-viewer--mobile .document-viewer__panel{width:100vw;height:100dvh}.document-viewer__header{justify-content:space-between;align-items:center;gap:var(--space-button-gap);padding:var(--space-table-cell-y) var(--space-table-cell-x);border-bottom:var(--border-width-base) solid var(--color-border);display:flex}.document-viewer__title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:var(--font-weight-semibold);font-size:var(--font-size-body);color:var(--color-text-main);overflow:hidden}.document-viewer__pages-info{margin-left:var(--space-table-cell-x);font-weight:400;font-size:var(--font-size-xs);color:var(--color-text-sub)}.document-viewer__actions{gap:var(--space-button-gap);flex-shrink:0;display:flex}.document-viewer__notice{margin:var(--space-table-cell-y) var(--space-table-cell-x) 0;flex-shrink:0}.document-viewer__body{background:var(--color-readonly-bg);-webkit-overflow-scrolling:touch;flex:1;min-height:0;position:relative;overflow:auto}.document-viewer__pages{align-items:center;gap:var(--space-card-gap);padding:var(--space-table-cell-x);flex-direction:column;display:flex}.document-viewer__page{max-width:100%;height:auto;box-shadow:var(--shadow-card);background:#fff;display:block}.document-viewer__image{max-width:100%;max-height:100%;padding:var(--space-table-cell-x);box-sizing:border-box;object-fit:contain;margin:0 auto;display:block}.document-viewer__status{justify-content:center;align-items:center;gap:var(--space-button-gap);padding:var(--space-page-y) var(--space-table-cell-x);text-align:center;flex-direction:column;display:flex;position:absolute;inset:0}.document-viewer__status-text{font-size:var(--font-size-body);color:var(--color-text-main);margin:0}.document-viewer__status-sub{font-size:var(--font-size-caption);color:var(--color-text-sub);margin:0}.document-viewer__status-actions{justify-content:center;gap:var(--space-button-gap);margin-top:var(--space-button-gap);flex-wrap:wrap;display:flex}.document-viewer__spinner{border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite document-viewer-spin}@keyframes document-viewer-spin{to{transform:rotate(360deg)}}.document-ops-caption{margin-left:var(--space-button-gap);color:var(--color-text-sub);font-size:var(--font-size-xs);white-space:nowrap}.documents-panel--mobile .document-ops-caption{display:none}.open-after-save-toggle{align-items:center;gap:var(--space-form-gap);font-size:var(--font-size-caption);color:var(--color-text-sub);cursor:pointer;white-space:nowrap;display:inline-flex}:root{--pop-page-w:297mm;--pop-page-h:210mm;--pop-page-margin-v:10mm;--pop-page-margin-h:6.5mm;--pop-font:"Yu Gothic", "Hiragino Kaku Gothic ProN", "Noto Sans JP", meiryo, sans-serif;--pop-fs-meta:8pt;--pop-fs-title:15pt;--pop-fs-mid:12pt;--pop-fs-colhead:10pt;--pop-fs-item:10pt;--pop-fs-total:12pt;--pop-fs-amount:18pt;--pop-line-height:1.4;--pop-weight-normal:400;--pop-weight-bold:700;--pop-paper:#fff;--pop-ink:#111;--pop-muted:#555;--pop-line:#666;--pop-mid-bg:#ededed;--pop-total-bg:#e3e3e3;--pop-band-bg:#cbe8ff;--pop-gap-sm:4pt;--pop-gap-md:8pt;--pop-gap-lg:16pt;--pop-cell-x:6pt;--pop-cell-y:3pt;--pop-cell-x-num-right:calc(var(--pop-cell-x) * .64);--pop-cell-x-unit:1pt;--pop-border-w:1px;--pop-col-no:calc(2em + var(--pop-cell-x) * 2 + 2px);--pop-col-name:34%;--pop-col-qty:8ch;--pop-col-unit:2.4em;--pop-col-price:12ch;--pop-col-amount:13ch;--pop-watermark:#1111111f;--pop-fs-watermark:72pt}.pop-root{font-family:var(--pop-font);color:var(--pop-ink);line-height:var(--pop-line-height)}.pop-page{box-sizing:border-box;width:var(--pop-page-w);min-height:var(--pop-page-h);padding:var(--pop-page-margin-v) var(--pop-page-margin-h);margin:0 auto var(--pop-gap-lg);background:var(--pop-paper);gap:var(--pop-gap-md);break-after:page;flex-direction:column;display:flex}.pop-page:last-child{break-after:auto}.pop-watermark{pointer-events:none;z-index:0;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:fixed;top:0;left:0}.pop-watermark span{font-size:var(--pop-fs-watermark);font-weight:var(--pop-weight-bold);color:var(--pop-watermark);letter-spacing:.2em;transform:rotate(-24deg)}.pop-cancel-note{width:var(--pop-page-w);box-sizing:border-box;max-width:100%;padding:var(--pop-gap-sm) var(--pop-page-margin-h) 0;background:var(--pop-paper);font-size:var(--pop-fs-item);font-weight:var(--pop-weight-bold);color:var(--color-danger);text-align:center;margin:0 auto}.pop-doc-head{justify-content:space-between;align-items:baseline;gap:var(--pop-gap-md);border-bottom:var(--pop-border-w) solid var(--pop-line);padding-bottom:var(--pop-gap-sm);display:flex}.pop-doc-no,.pop-doc-date{font-size:var(--pop-fs-meta);color:var(--pop-muted);white-space:nowrap}.pop-doc-title{font-size:var(--pop-fs-title);font-weight:var(--pop-weight-bold);text-align:center;flex:1}.pop-addressee{font-size:var(--pop-fs-title);font-weight:var(--pop-weight-bold);border-bottom:var(--pop-border-w) solid var(--pop-line);padding-bottom:var(--pop-gap-sm);min-width:12em;display:inline-block}.pop-headrow{justify-content:flex-end;display:flex}.pop-issuer{font-size:var(--pop-fs-item);text-align:left}.pop-issuer__name{font-size:var(--pop-fs-mid);font-weight:var(--pop-weight-bold)}.pop-kv{gap:var(--pop-gap-sm) var(--pop-gap-md);font-size:var(--pop-fs-item);grid-template-columns:auto 1fr;margin:0;display:grid}.pop-kv dt{color:var(--pop-muted);white-space:nowrap}.pop-kv dd{margin:0}.pop-amount-band{background:var(--pop-band-bg);padding:var(--pop-gap-md) var(--pop-gap-lg)}.pop-amount-main{justify-content:space-between;align-items:baseline;gap:var(--pop-gap-md);display:flex}.pop-amount-label{font-size:var(--pop-fs-mid);font-weight:var(--pop-weight-bold)}.pop-amount-label-sub{font-size:var(--pop-fs-meta);font-weight:var(--pop-weight-normal)}.pop-amount-value{font-size:var(--pop-fs-amount);font-weight:var(--pop-weight-bold);font-variant-numeric:tabular-nums}.pop-amount-sub{margin:var(--pop-gap-sm) 0 0;font-size:var(--pop-fs-meta);color:var(--pop-muted);flex-direction:column;align-items:flex-end;display:flex}.pop-amount-sub div{gap:var(--pop-gap-md);display:flex}.pop-amount-sub dd{font-variant-numeric:tabular-nums;margin:0}.pop-summary-table,.pop-detail-table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:var(--pop-fs-item)}.pop-summary-table th,.pop-summary-table td,.pop-detail-table th,.pop-detail-table td{border:var(--pop-border-w) solid var(--pop-line);padding:var(--pop-cell-y) var(--pop-cell-x);word-break:normal;overflow-wrap:break-word}.pop-summary-table thead th,.pop-detail-table thead th{background:var(--pop-mid-bg);font-weight:var(--pop-weight-bold);font-size:var(--pop-fs-colhead)}.pop-detail-table thead{display:table-header-group}.pop-detail-table tr{break-inside:avoid}.pop-detail-table thead th{text-align:center}.pop-detail-table .pop-c-no{width:var(--pop-col-no);text-align:center;white-space:nowrap}.pop-detail-table .pop-c-name{width:var(--pop-col-name)}.pop-detail-table .pop-c-qty{width:var(--pop-col-qty);text-align:center;white-space:nowrap;font-variant-numeric:tabular-nums}.pop-detail-table tbody .pop-c-qty{text-align:right;padding-right:var(--pop-cell-x-num-right)}.pop-detail-table .pop-c-unit{width:var(--pop-col-unit);text-align:center;white-space:nowrap;padding-left:var(--pop-cell-x-unit);padding-right:var(--pop-cell-x-unit)}.pop-c-amount,.pop-c-price{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;padding-right:var(--pop-cell-x-num-right)}.pop-detail-table .pop-c-price{width:var(--pop-col-price)}.pop-detail-table .pop-c-amount{width:var(--pop-col-amount)}.pop-total-row td{background:var(--pop-total-bg);font-weight:var(--pop-weight-bold);break-before:avoid}.pop-note{font-size:var(--pop-fs-item)}.pop-terms{font-size:var(--pop-fs-meta);color:var(--pop-muted);border-top:var(--pop-border-w) solid var(--pop-line);padding-top:var(--pop-gap-sm)}.pop-terms-title{font-size:var(--pop-fs-item);font-weight:var(--pop-weight-bold);color:var(--pop-ink);margin-bottom:var(--pop-gap-sm)}.pop-terms p{margin:0 0 var(--pop-gap-sm)}.pop-acceptor-block{margin-top:var(--pop-gap-lg);break-inside:avoid}.pop-acceptor-label{font-size:var(--pop-fs-item);color:var(--pop-muted)}.pop-acceptor-line{border-bottom:var(--pop-border-w) solid var(--pop-line);min-height:2.5em;font-size:var(--pop-fs-mid)}.pop-acceptor-hint{font-size:var(--pop-fs-meta);color:var(--pop-muted);text-align:right}.pop-esign-block{margin-top:var(--pop-gap-md);padding:var(--pop-gap-md);border:var(--pop-border-w) dashed var(--pop-line);font-size:var(--pop-fs-meta);color:var(--pop-muted);text-align:center}.pop-stats-line{font-size:var(--pop-fs-meta);color:var(--pop-muted);margin-top:auto}.pop-row--major td{background:var(--pop-mid-bg);font-weight:var(--pop-weight-bold)}.pop-row--mid td{font-weight:var(--pop-weight-bold)}.pop-row--text td{color:var(--pop-muted)}.pop-c-indent-1{padding-left:calc(var(--pop-cell-x) * 3)}.pop-c-indent-2{padding-left:calc(var(--pop-cell-x) * 5)}.pop-toolbar{align-items:center;gap:var(--pop-gap-md);padding:var(--pop-gap-md);background:var(--color-panel-bg);border-bottom:var(--border-width-base) solid var(--color-border);z-index:5;display:flex;position:sticky;top:0}.pop-toolbar__spacer{flex:1}.pop-toolbar__notice{color:var(--color-success);font-size:var(--pop-fs-item);font-weight:var(--pop-weight-bold)}.pop-alert{padding:var(--pop-gap-md);font-size:var(--pop-fs-item);color:var(--color-danger)}.pop-alert--success{color:var(--color-success)}.pop-loading{padding:var(--pop-gap-lg);font-size:var(--pop-fs-item)}.pop-screen{background:var(--color-readonly-bg);padding:var(--pop-gap-lg) 0}.pop-print-root{display:none}@media print{body.pop-printing #root{display:none}body.pop-printing .pop-print-root{display:block}@page po-a4-landscape{size:A4 landscape;margin:var(--pop-page-margin-v) var(--pop-page-margin-h)}.pop-root .pop-page{page:po-a4-landscape}.pop-toolbar{display:none}.pop-screen{background:var(--pop-paper);padding:0}.pop-page{width:auto;min-height:auto;margin:0 auto;padding:0}}.auth-page{min-height:100dvh;padding:24px 16px;padding-top:max(24px, env(safe-area-inset-top,24px));padding-bottom:max(24px, env(safe-area-inset-bottom,24px));background:var(--color-page-bg);justify-content:center;align-items:center;display:flex}.auth-card{background:var(--color-panel-bg);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);width:min(480px,100%);box-shadow:var(--shadow-card);padding:32px 28px}.auth-card__title{font-size:20px;font-weight:var(--font-weight-bold);color:var(--color-text-main);text-align:center;margin:0 0 8px}.auth-card__description{font-size:var(--font-size-caption);color:var(--color-text-sub);text-align:center;margin:0 0 24px;line-height:1.6}.auth-card__actions{flex-direction:column;gap:10px;display:flex}.auth-btn{border-radius:var(--radius-button);width:100%;height:44px;font-size:var(--font-size-button);font-weight:var(--font-weight-medium);cursor:pointer;font-family:var(--font-family-base);white-space:nowrap;border:none;justify-content:center;align-items:center;gap:10px;transition:opacity .15s,box-shadow .15s;display:flex}.auth-btn:disabled{opacity:.5;cursor:not-allowed}.auth-btn--google{color:#3c4043;background:#fff;border:1px solid #dadce0;box-shadow:0 1px 3px #0000001a}.auth-btn--google:hover:not(:disabled){box-shadow:0 2px 6px #00000026}.auth-btn--primary{background:var(--button-primary-bg);color:var(--button-primary-text)}.auth-btn--primary:hover:not(:disabled){opacity:.88}.auth-btn--secondary{background:var(--color-panel-bg);color:var(--color-text-sub);border:1px solid var(--color-border)}.auth-btn--secondary:hover:not(:disabled){background:var(--color-table-row-hover)}.auth-error{background:var(--status-danger-bg);border:var(--border-width-base) solid var(--status-danger-border);border-radius:var(--radius-card);color:var(--color-danger);font-size:var(--font-size-caption);margin-top:16px;padding:10px 14px;line-height:1.5}.auth-loading{text-align:center;color:var(--color-text-sub);font-size:var(--font-size-caption);padding:24px 0}.auth-loading p{margin:0}.auth-loading-spinner{border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:32px;height:32px;margin:0 auto 12px;animation:.8s linear infinite auth-spin}@keyframes auth-spin{to{transform:rotate(360deg)}}.auth-code-label{font-size:var(--font-size-caption);color:var(--color-text-main);font-weight:var(--font-weight-medium);margin-bottom:8px;display:block}.auth-code-input{width:100%;height:52px;font-size:24px;font-weight:var(--font-weight-bold);text-align:center;letter-spacing:.35em;border:2px solid var(--color-border);border-radius:var(--radius-input);background:var(--color-editable-bg);color:var(--color-text-main);font-variant-numeric:tabular-nums;font-family:var(--font-family-number);box-sizing:border-box;padding:0 16px}.auth-code-input:focus{border-color:var(--input-focus-border-color);outline:none}.auth-qr-wrapper{flex-direction:column;align-items:center;gap:14px;margin:20px 0;display:flex}.auth-qr-image{border:1px solid var(--color-border);border-radius:var(--radius-small);width:min(200px,100%);height:auto;display:block}.auth-secret-row{align-items:center;gap:6px;width:100%;display:flex}.auth-secret-text{color:var(--color-text-main);background:var(--color-readonly-bg);border:1px solid var(--color-border);border-radius:var(--radius-input);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;padding:7px 10px;font-family:Courier New,Courier,monospace;font-size:13px;overflow:hidden}.auth-secret-btn{border:1px solid var(--color-border);border-radius:var(--radius-button);background:var(--color-panel-bg);color:var(--color-text-main);cursor:pointer;white-space:nowrap;font-size:12px;font-family:var(--font-family-base);flex-shrink:0;padding:6px 10px}.auth-secret-btn:hover{background:var(--color-table-row-hover)}.auth-setupkey{background:var(--status-primary-bg);border:1px solid var(--status-primary-border);border-radius:var(--radius-card);margin-top:16px;padding:12px 14px}.auth-setupkey__title{font-size:var(--font-size-caption);font-weight:var(--font-weight-bold);color:var(--color-text-main);margin:0 0 6px}.auth-setupkey__desc{font-size:var(--font-size-caption);color:var(--color-text-sub);margin:0 0 12px;line-height:1.6}.auth-setupkey__copied{font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);color:var(--color-success);margin:8px 0 0}.auth-setupkey__note{font-size:var(--font-size-caption);color:var(--color-text-sub);margin:12px 0 0;line-height:1.6}.auth-secret-text--key{white-space:normal;text-overflow:clip;word-break:break-all;-webkit-user-select:all;user-select:all;overflow:visible}.auth-instructions{font-size:var(--font-size-caption);color:var(--color-text-main);background:var(--status-primary-bg);border:1px solid var(--status-primary-border);border-radius:var(--radius-card);margin:0 0 16px;padding:12px 14px;line-height:1.6}.auth-divider{border:none;border-top:1px solid var(--color-border);margin:20px 0}.auth-factor-name{font-size:var(--font-size-caption);color:var(--color-text-sub);text-align:center;margin:0 0 16px}.auth-ready-status{background:var(--status-success-bg);border:1px solid var(--status-success-border);border-radius:var(--radius-card);align-items:center;gap:10px;margin-bottom:16px;padding:14px 16px;display:flex}.auth-ready-status__icon{color:var(--color-success);flex-shrink:0;font-size:18px}.auth-ready-status__text{font-size:var(--font-size-caption);color:var(--color-success);font-weight:var(--font-weight-medium)}.auth-ready-note{font-size:var(--font-size-caption);color:var(--color-text-sub);text-align:center;margin:0 0 24px;line-height:1.7}.auth-config-error-page{background:var(--status-danger-bg);justify-content:center;align-items:center;min-height:100dvh;padding:24px 16px;display:flex}.auth-config-error-card{background:var(--color-panel-bg);border:1px solid var(--color-danger);border-radius:var(--radius-card);text-align:center;width:min(480px,100%);box-shadow:var(--shadow-card);padding:32px 28px}.auth-config-error-card__title{font-size:18px;font-weight:var(--font-weight-bold);color:var(--color-danger);margin:0 0 12px}.auth-config-error-card__message{font-size:var(--font-size-caption);color:var(--color-text-sub);margin:0;line-height:1.6}td.grid-cell--range{box-shadow:var(--grid-sel-range-shadow)}td.grid-cell--anchor{box-shadow:var(--grid-sel-anchor-shadow)}td.grid-cell:not(.grid-cell--editing) :is(input,textarea){caret-color:#0000}td.grid-cell:not(.grid-cell--editing) :is(input,textarea)::selection{color:inherit;background:0 0}td.grid-cell :is(input,textarea,select):focus{outline:none}.est-cell--num,.est-input.est-input--num,.od-cell-trap.od-cell-trap--num{text-align:right;font-family:var(--font-family-number);font-variant-numeric:tabular-nums}.est-text-vendors,.od-text-vendors{align-items:flex-start;gap:var(--space-form-gap);flex-direction:column;display:flex}.est-text-vendor,.od-text-vendor{align-items:center;gap:var(--space-form-gap);display:flex}.est-text-vendor-remove,.od-text-vendor-remove{cursor:pointer;color:var(--color-text-sub);background:0 0;border:none;padding:0}.est-text-vendor-remove:hover:not(:disabled),.od-text-vendor-remove:hover:not(:disabled){color:var(--color-danger)}.xg-table-wrap{max-height:calc(100vh - 286px);overflow:auto}.xg-table{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--font-size-table);--xg-row-h-1:23pt;--xg-row-h-2:29pt;--xg-row-h-step:14pt;--xg-multiline-line-height:12pt;--xg-multiline-padding-y:2pt}.xg-table tr.xg-row--auto-height{--xg-row-height:max(var(--xg-row-h-1), calc(var(--xg-row-h-2) + (var(--xg-line-count,1) - 2) * var(--xg-row-h-step)));height:var(--xg-row-height)}.xg-table th,.xg-table td{box-sizing:border-box;border-right:var(--border-width-base) solid var(--table-border-color);border-bottom:var(--border-width-base) solid var(--table-border-color)}.xg-table th{background:var(--color-table-header-bg);color:var(--table-header-text);font-weight:var(--font-weight-semibold);text-align:left;padding:4px var(--space-table-cell-x);white-space:nowrap;font-size:var(--font-size-xs)}.xg-table td{padding:3px var(--space-table-cell-x);vertical-align:middle}.xg-table thead th{z-index:3;position:sticky}.xg-table thead tr:first-child th{height:26px;top:0}.xg-table thead tr:nth-child(2) th{top:26px}.xg-table .xg-sticky-1,.xg-table .xg-sticky-2,.xg-table .xg-sticky-3{z-index:2;background:var(--color-panel-bg);position:sticky}.xg-table .xg-sticky-1{width:var(--grid-col-ops-w);min-width:var(--grid-col-ops-w);max-width:var(--grid-col-ops-w);left:0}.xg-table .xg-sticky-2{left:var(--grid-col-ops-w);width:var(--grid-col-no-w);min-width:var(--grid-col-no-w);max-width:var(--grid-col-no-w)}.xg-table .xg-sticky-3{left:calc(var(--grid-col-ops-w) + var(--grid-col-no-w));width:var(--xg-name-column-width,var(--grid-col-text-w));min-width:var(--xg-name-column-width,var(--grid-col-text-w));max-width:var(--xg-name-column-width,var(--grid-col-text-w))}.xg-table .xg-sticky-head{position:sticky;left:0}.xg-table thead th.xg-sticky-1,.xg-table thead th.xg-sticky-2,.xg-table thead th.xg-sticky-3,.xg-table thead th.xg-sticky-head{z-index:4;background:var(--color-table-header-bg)}.xg-col-resize-handle{cursor:col-resize;touch-action:none;width:6px;height:100%;position:absolute;top:0;right:0}.xg-col-resize-handle--active{background:var(--color-primary)}.xg-table--col-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.xg-col--spacer{min-width:14px;padding:0}.xg-cell--num{white-space:nowrap;text-align:right;font-family:var(--font-family-number);font-variant-numeric:tabular-nums}.xg-cell--group-start{border-left:var(--border-width-strong) solid var(--table-border-color)}.xg-th-group{text-align:center}.xg-table td.xg-no{text-align:left;font-family:var(--font-family-number);font-variant-numeric:tabular-nums;white-space:nowrap}.xg-table td.xg-no--major{font-weight:var(--font-weight-bold)}.xg-table td.xg-no--mid{padding-left:calc(var(--space-table-cell-x) + .5em);font-weight:var(--font-weight-medium)}.xg-table td.xg-no--item{text-align:right;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.xg-table .xg-row--major td{background:var(--grid-row-major-bg);font-weight:var(--font-weight-bold)}.xg-table .xg-row--mid td,.xg-table .xg-row--subtotal td{background:var(--color-table-row-hover);color:var(--color-text-main);font-weight:var(--font-weight-medium)}.xg-table .xg-row--total td{background:var(--status-primary-bg);color:var(--color-text-main);font-weight:var(--font-weight-medium)}.xg-table .xg-struct-label{text-align:center;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.xg-table .xg-row--grandtotal td{background:var(--color-selected);color:var(--color-sidebar-text);font-weight:var(--font-weight-bold)}.xg-table .xg-row--selected td{background:var(--status-danger-bg)}.xg-table .xg-row--addline td{background:var(--color-panel-bg)}.xg-table tr.xg-drop-before td{box-shadow:var(--grid-drop-before-shadow)}.xg-table tr.xg-drop-after td{box-shadow:var(--grid-drop-after-shadow)}.xg-rowops{white-space:nowrap;gap:2px;display:inline-flex}.xg-addline-indent-1{margin-left:1em}.xg-addline-indent-2{margin-left:2em}.xg-table td.xg-cell--edit{padding:0}.xg-input{width:100%;min-width:0;height:30px;padding:3px var(--space-table-cell-x);color:inherit;font:inherit;box-sizing:border-box;background:0 0;border:none;border-radius:0;display:block}.xg-input::placeholder{color:var(--input-placeholder-color)}.xg-input:focus{outline:var(--border-width-strong) solid var(--input-focus-border-color);outline-offset:calc(-1 * var(--border-width-strong))}.xg-input:disabled,.xg-input:read-only{background:var(--grid-readonly-bg);color:var(--grid-readonly-text)}.xg-input--num{text-align:right;font-family:var(--font-family-number);font-variant-numeric:tabular-nums}select.xg-input{cursor:pointer}.xg-col--qty{min-width:var(--grid-col-qty-w)}.xg-col--unit{min-width:var(--grid-col-unit-w);max-width:var(--grid-col-unit-w)}.xg-col--price{min-width:84px}.xg-col--amount{min-width:108px}.xg-col--type{min-width:88px}.xg-col--rate{min-width:58px}.xg-input--multiline{height:var(--xg-row-height,100%);line-height:var(--xg-multiline-line-height);padding-top:var(--xg-multiline-padding-y);padding-bottom:var(--xg-multiline-padding-y);resize:none;white-space:pre-wrap;word-break:break-word;overflow:hidden}.xg-table td.xg-indent-1 .xg-input,.xg-input--indent-1{padding-left:calc(var(--space-table-cell-x) + 1em)}.xg-table td.xg-indent-2 .xg-input,.xg-input--indent-2{padding-left:calc(var(--space-table-cell-x) + 2em)}.xg-cell--ops{text-align:center}.xg-handle-wrap{display:inline-flex;position:relative}.xg-drag-handle{border-radius:var(--radius-small);width:22px;height:22px;color:var(--color-text-sub);cursor:grab;font-size:var(--font-size-caption);background:0 0;border:none;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}.xg-drag-handle:hover{background:var(--button-icon-hover-bg);color:var(--color-text-main)}.xg-drag-handle:active{cursor:grabbing}.xg-table td.xg-cell--menu-open{z-index:5}.xg-menu{z-index:6;background:var(--color-panel-bg);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-popover);min-width:104px;box-shadow:var(--shadow-popover);flex-direction:column;padding:4px;display:flex;position:absolute;top:100%;left:0}.xg-menu button{border-radius:var(--radius-small);width:100%;color:var(--color-text-main);font-size:var(--font-size-caption);text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:5px 10px;display:block}.xg-menu button:hover:enabled{background:var(--color-table-row-hover)}.xg-menu button:disabled{color:var(--color-text-sub);opacity:.5;cursor:not-allowed}.xg-menu .xg-menu-danger{color:var(--color-danger)}.xg-menu--up{top:auto;bottom:100%}.xg-table td.xg-empty{padding:3px var(--space-table-cell-x)}.spec-tab{gap:var(--space-section-gap);flex-direction:column;display:flex}.spec-tab__header{gap:var(--space-form-gap);flex-direction:column;display:flex}.spec-tab__status-row{align-items:center;gap:var(--space-table-cell-x);font-size:var(--font-size-body);display:flex}.spec-tab__title{font-size:var(--font-size-section-title);font-weight:var(--font-weight-bold);color:var(--color-text-main)}.spec-tab__import-row,.spec-tab__action-row{align-items:center;gap:var(--space-button-gap);flex-wrap:wrap;display:flex}.spec-tab__dirty-hint{font-size:var(--font-size-caption);color:var(--color-warning)}.spec-tab__toggle-group{align-items:center;gap:var(--space-button-gap);flex-flow:wrap;display:flex}.spec-tab__toggle-label{font-size:var(--font-size-caption);color:var(--color-text-sub);cursor:pointer;align-items:center;gap:6px;display:flex}.spec-tab__toggle-label input:disabled{cursor:not-allowed}.spec-tab__toggle-label--success{color:var(--color-success)}.spec-tab__toggle-label--active{color:var(--color-danger)}.spec-table__empty{padding:var(--space-header-padding-x);text-align:center;color:var(--color-text-sub)}.spec-table-toolbar-title-row{align-items:center;gap:var(--space-table-cell-x);display:flex}.spec-row-ops{align-items:center;gap:var(--space-table-cell-x);flex-wrap:wrap;display:flex}.spec-table tbody td.spec-col--unit{padding-left:0;padding-right:0}.spec-table td[data-spec-col] .est-input:not([data-spec-editing]){pointer-events:none}.spec-table td[data-spec-col]:focus{outline:none}.spec-table td[data-spec-col] .est-input[data-spec-editing]:focus{box-shadow:none;outline:none}.est-alert--neutral{background:var(--status-disabled-bg);border-color:var(--status-disabled-border);color:var(--color-text-sub)}.spec-table .est-input:read-only{background:var(--grid-readonly-bg);color:var(--grid-readonly-text)}.spec-tab__pdf-group{align-items:center;gap:var(--space-button-gap);display:flex}.spec-tab__pdf-hint{font-size:var(--font-size-caption);color:var(--color-text-sub)}.spec-table td.spec-cell--order-diff{background:var(--status-danger-bg);outline:var(--border-width-strong) solid var(--status-danger-border);outline-offset:calc(-1 * var(--border-width-strong))}.spec-table td.spec-cell--order-diff .est-input,.spec-table td.spec-cell--order-diff select.est-input{color:var(--color-danger);background:0 0}.spec-table td.spec-cell--order-missing{background:var(--status-warning-bg);outline:var(--border-width-strong) solid var(--status-warning-border);outline-offset:calc(-1 * var(--border-width-strong))}.spec-tab__order-warning{color:var(--status-warning-strong);font-weight:var(--font-weight-bold)}.spec-table tbody td.spec-col--vendor{padding-left:0;padding-right:0}.spec-table td.spec-col--vendor select.est-input{cursor:pointer}.spec-table td.spec-col--vendor select.est-input:disabled{background:var(--grid-readonly-bg);color:var(--grid-readonly-text);cursor:default}.spec-table td[data-spec-col] select.est-input:not([data-spec-editing]){pointer-events:none}.gantt-page{background:var(--color-bg,#f5f5f5);height:100vh;font-family:var(--font-family-base,sans-serif);color:var(--color-text-main,#1a1a1a);flex-direction:column;display:flex;overflow:hidden}.gantt-header{background:var(--color-panel-bg,#fff);border-bottom:1px solid var(--color-border,#e0e0e0);flex-shrink:0;align-items:center;gap:16px;height:52px;padding:0 20px;display:flex;box-shadow:0 1px 3px #0000000f}.gantt-header-back-btn{border:1px solid var(--color-border,#e0e0e0);border-radius:var(--radius-button,4px);background:var(--color-panel-bg,#fff);color:var(--color-text-main,#1a1a1a);cursor:pointer;white-space:nowrap;flex-shrink:0;padding:5px 12px;font-size:13px}.gantt-header-back-btn:hover{background:var(--color-bg,#f5f5f5)}.gantt-header-divider{background:var(--color-border,#e0e0e0);flex-shrink:0;width:1px;height:28px}.gantt-header-project-name{color:var(--color-text-sub,#666);white-space:nowrap;text-overflow:ellipsis;max-width:200px;font-size:13px;overflow:hidden}.gantt-header-schedule-name{font-size:15px;font-weight:var(--font-weight-bold,600);color:var(--color-text-main,#1a1a1a);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.gantt-header-badge{font-size:12px;font-weight:var(--font-weight-medium,500);white-space:nowrap;border-radius:999px;flex-shrink:0;padding:2px 10px}.gantt-header-badge--adopted{color:var(--color-primary,#1a73e8);background:var(--status-primary-bg,#e8f0fe);border:1px solid var(--status-primary-border,#c5d8fb)}.gantt-header-badge--not-adopted{color:var(--color-text-sub,#666);background:var(--color-bg,#f5f5f5);border:1px solid var(--color-border,#e0e0e0)}.gantt-toolbar{background:var(--color-panel-bg,#fff);border-bottom:1px solid var(--color-border,#e0e0e0);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;min-height:44px;padding:0 16px;display:flex}.gantt-toolbar-group{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.gantt-toolbar-dateedit{align-items:center;gap:4px;display:flex}.gantt-toolbar-datelabel{color:var(--color-text-sub);white-space:nowrap}.gantt-toolbar-btn{border:1px solid var(--color-border,#e0e0e0);border-radius:var(--radius-button,4px);background:var(--color-panel-bg,#fff);color:var(--color-text-main,#1a1a1a);cursor:pointer;white-space:nowrap;padding:4px 12px;font-size:12px}.gantt-toolbar-btn:hover{background:var(--color-bg,#f5f5f5)}.gantt-toolbar-sep{background:var(--color-border,#e0e0e0);width:1px;height:20px}.gantt-state-screen{height:100vh;color:var(--color-text-sub,#666);flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:14px;display:flex}.gantt-state-error{color:var(--color-danger,#d32f2f)}.gantt-workspace{flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.gantt-header-area{border-bottom:2px solid var(--color-border,#e0e0e0);background:var(--color-panel-bg,#fff);flex-direction:row;flex-shrink:0;display:flex}.gantt-left-header{border-right:2px solid var(--color-border,#e0e0e0);background:var(--color-panel-bg,#fff);box-sizing:border-box;flex-shrink:0;align-items:flex-end;height:108px;padding:0 12px 4px;display:flex}.gantt-left-header-label{color:var(--color-text-sub,#666);font-size:12px;font-weight:600}.gantt-date-header-scroll{flex:1;overflow:hidden}.gantt-date-header-inner{flex-direction:column;display:flex}.gantt-header-row{flex-direction:row;display:flex}.gantt-header-row--month{border-bottom:1px solid var(--color-border,#e0e0e0)}.gantt-header-cell{color:var(--color-text-main,#333);border-right:1px solid var(--color-border,#e0e0e0);white-space:nowrap;-webkit-user-select:none;user-select:none;box-sizing:border-box;flex-shrink:0;justify-content:center;align-items:center;height:22px;font-size:11px;display:flex;overflow:hidden}.gantt-header-cell--month{background:var(--color-bg,#f9f9f9);justify-content:flex-start;padding-left:0;position:relative;overflow:visible}.gantt-header-cell--month-label{height:100%;color:var(--color-text-main,#333);white-space:nowrap;box-sizing:border-box;align-items:center;max-width:100%;padding-left:6px;font-size:11px;font-weight:600;display:inline-flex;position:sticky;left:0;overflow:hidden}.gantt-header-cell--day,.gantt-header-cell--weekday{background:var(--color-panel-bg,#fff)}.gantt-header-cell--weekday{border-bottom:1px solid var(--color-border,#e0e0e0)}.gantt-header-cell.is-sunday,.gantt-header-cell.is-holiday{color:#e53935;background:#bebec838}.gantt-header-cell.is-today{color:#e65100;background:#fff8e1;font-weight:700}.gantt-content-area{flex-direction:row;flex:1;display:flex;overflow:hidden}.gantt-left-body{border-right:2px solid var(--color-border,#e0e0e0);background:var(--color-panel-bg,#fff);box-sizing:border-box;flex-shrink:0;overflow:hidden}.gantt-left-row{border-bottom:1px solid var(--color-border-light,#f0f0f0);-webkit-user-select:none;user-select:none;box-sizing:border-box;cursor:pointer;align-items:center;gap:4px;display:flex;position:relative;overflow:hidden}.gantt-left-row:hover{background:#f0f4ff}.gantt-left-row--selected{background:#e8f0fe!important}.gantt-left-row--phase{border-top:2px solid var(--color-border,#e0e0e0);border-bottom-color:var(--color-border,#e0e0e0);background:#f7f7f8;font-weight:600}.gantt-left-row--task{background:var(--color-panel-bg,#fff)}.gantt-row-collapse-btn{width:22px;height:22px;color:var(--color-text-sub,#888);cursor:pointer;background:0 0;border:none;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;margin-left:2px;margin-right:2px;padding:0;font-size:12px;line-height:1;display:flex}.gantt-row-collapse-btn:hover{background:var(--color-border,#e0e0e0);color:var(--color-text-main,#333)}.gantt-row-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;overflow:hidden}.gantt-left-row--phase .gantt-row-title{font-size:12px;font-weight:600}.gantt-empty-left{color:var(--color-text-sub,#999);align-items:center;padding:16px 12px;font-size:12px;display:flex}.gantt-grid-wrapper{cursor:grab;-webkit-user-select:none;user-select:none;scrollbar-width:thin;flex:1;position:relative;overflow:auto}.gantt-grid-wrapper--grabbing{cursor:grabbing}.gantt-grid-inner{background-color:#fff;background-image:repeating-linear-gradient(90deg,#0000 0 31px,#d7dde5 31px 32px);min-height:100%;position:relative}.gantt-col-bg{pointer-events:none;position:absolute;top:0;bottom:0}.gantt-col-bg--sunday,.gantt-col-bg--holiday{background:#bebec829}.gantt-marker{pointer-events:none;z-index:10;width:0;position:absolute;top:0;bottom:0}.gantt-marker--today{border-left:2px solid #e53935}.gantt-marker--projectStart{border-left:2px dashed #43a047}.gantt-marker--projectEnd{border-left:2px dashed #f57c00}.gantt-marker--scheduleBaseStart{border-left:2px dashed #7b1fa2}.gantt-marker-label{white-space:nowrap;background:#ffffffe0;border-radius:2px;padding:1px 4px;font-size:10px;font-weight:600;position:absolute;top:3px;left:4px}.gantt-marker--today .gantt-marker-label{color:#e53935}.gantt-marker--projectStart .gantt-marker-label{color:#43a047}.gantt-marker--projectEnd .gantt-marker-label{color:#f57c00}.gantt-marker--scheduleBaseStart .gantt-marker-label{color:#7b1fa2}.gantt-header-row--pinlane{border-bottom:1px solid var(--color-border,#e0e0e0);background:var(--color-panel-bg,#fff);flex-shrink:0;position:relative;overflow:visible}.gantt-pin{pointer-events:none;height:13px;position:absolute}.gantt-pin--today{color:#e53935}.gantt-pin--scheduleBaseStart{color:#0288d1}.gantt-pin--projectStart{color:#43a047}.gantt-pin--projectEnd{color:#f57c00}.gantt-pin-flag-icon{width:12px;height:13px;display:block;position:absolute;top:0;left:-1px}.gantt-pin-flag-icon:before{content:"";background:currentColor;width:2px;position:absolute;top:0;bottom:0;left:0}.gantt-pin-flag-icon:after{content:"";border:4px solid #0000;border-left:7px solid;border-right-width:0;width:0;height:0;position:absolute;top:1px;left:2px}.gantt-pin-label{white-space:nowrap;color:currentColor;background:#ffffffe0;border-radius:2px;padding:0 2px;font-size:9px;font-weight:700;line-height:13px;position:absolute;top:0;left:12px}.gantt-pin--projectStart .gantt-pin-flag-icon:after{background:#43a047;border-width:0;width:9px;height:9px;top:0;box-shadow:0 0 0 1px #43a047}.gantt-pin-start-letter{text-align:center;color:#fff;pointer-events:none;z-index:1;width:9px;font-size:6px;font-weight:900;line-height:9px;position:absolute;top:0;left:1px}.gantt-pin--projectEnd .gantt-pin-flag-icon:after{background:repeating-conic-gradient(#f57c00 0deg 90deg,#fff 90deg 180deg) 0 0/4px 4px;border-width:0;width:9px;height:9px;top:0;box-shadow:0 0 0 1px #f57c00}.gantt-grid-row{box-sizing:border-box;border-bottom:1px solid #d7dde5;position:relative}.gantt-grid-row--phase{background:0 0;border-top:2px solid #d7dde5;border-bottom-color:#d7dde5}.gantt-grid-row--task{background:0 0}.gantt-bar{white-space:nowrap;cursor:pointer;border-radius:3px;min-width:4px;position:absolute;overflow:hidden}.gantt-bar:hover{filter:brightness(1.08)}.gantt-grid-row--selected{background:#e8f0fe73!important}.gantt-bar--task{height:30px;top:3px}.gantt-bar--phase{border-radius:2px;height:10px;padding:0;top:23px}.gantt-bar-label{color:#333;text-overflow:ellipsis;white-space:nowrap;padding:0 5px;font-size:13px;line-height:30px;display:block;overflow:hidden}.gantt-bar--phase .gantt-bar-label{display:none}.gantt-phase-label{text-overflow:ellipsis;white-space:nowrap;color:#333;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:2;padding:0 5px;font-size:13px;line-height:1.2;position:absolute;top:3px;overflow:hidden}.gantt-grid-empty{color:var(--color-text-sub,#999);justify-content:center;align-items:center;padding:32px 16px;font-size:13px;display:flex}.gantt-row-drag-handle{width:14px;height:100%;color:var(--color-text-sub,#888);cursor:grab;-webkit-user-select:none;user-select:none;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;line-height:1;display:flex}.gantt-row-drag-handle:hover{color:var(--color-text-main,#333)}.gantt-row-drag-handle:active{cursor:grabbing}.gantt-left-row--dragging{opacity:.4}.gantt-bar--draggable{cursor:grab}.gantt-grid-wrapper--bar-dragging{cursor:grabbing!important}.gantt-grid-wrapper--bar-dragging .gantt-bar--draggable{cursor:grabbing}.gantt-bar-resize-handle{cursor:ew-resize;z-index:1;background:0 0;width:6px;position:absolute;top:0;bottom:0}.gantt-bar-resize-handle--left{left:0}.gantt-bar-resize-handle--right{right:0}.gantt-bar--draggable:hover .gantt-bar-resize-handle{background:#0000002e}.gantt-left-row--temp{cursor:default}.gantt-left-row--temp:hover{background:inherit}.gantt-temp-input{min-width:0;color:var(--color-text-sub,#999);cursor:text;background:0 0;border:none;outline:none;flex:1;padding:0;font-family:inherit;font-size:12px}.gantt-left-row--phase .gantt-temp-input{font-weight:600}.gantt-temp-input:focus{color:var(--color-text-main,#1a1a1a)}.gantt-temp-input::placeholder{color:#ccc;font-style:italic;font-weight:400}.gantt-grid-row--temp-placeholder{background:0 0}.gantt-edit-panel{z-index:50;background:var(--color-panel-bg,#fff);border-left:1px solid var(--color-border,#e0e0e0);flex-direction:column;width:320px;display:flex;position:absolute;top:0;bottom:0;right:0;overflow:hidden;box-shadow:-3px 0 14px #0000001a}.gantt-panel-header{border-bottom:1px solid var(--color-border,#e0e0e0);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px 8px;display:flex}.gantt-panel-type-label{color:var(--color-text-sub,#666);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;overflow:hidden}.gantt-panel-breadcrumb{color:var(--color-text-sub,#aaa);font-size:11px}.gantt-panel-close-btn{width:24px;height:24px;color:var(--color-text-sub,#888);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;display:flex}.gantt-panel-close-btn:hover{background:var(--color-bg,#f5f5f5);color:var(--color-text-main,#333)}.gantt-panel-header-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.gantt-panel-delete-btn{border:1px solid var(--status-danger-border);background:var(--status-danger-bg);min-height:32px;color:var(--color-danger);cursor:pointer;white-space:nowrap;border-radius:6px;align-items:center;gap:4px;padding:4px 12px;line-height:1;display:inline-flex}.gantt-panel-delete-btn:hover{background:var(--color-danger);color:var(--button-danger-text);border-color:var(--color-danger)}.gantt-panel-delete-btn:focus-visible{outline:2px solid var(--color-danger);outline-offset:2px}.gantt-panel-body{flex-direction:column;flex:1;gap:14px;padding:12px 14px;display:flex;overflow-y:auto}.gantt-panel-field{flex-direction:column;gap:4px;display:flex}.gantt-panel-field--dates{flex-direction:row;gap:12px}.gantt-panel-date-group{flex-direction:column;flex:1;gap:4px;display:flex}.gantt-panel-field--apply,.gantt-panel-field--description{flex-direction:column}.gantt-panel-label{color:var(--color-text-sub,#666);font-size:11px;font-weight:600}.gantt-panel-input{border:1px solid var(--color-border,#e0e0e0);width:100%;color:var(--color-text-main,#1a1a1a);background:var(--color-panel-bg,#fff);box-sizing:border-box;border-radius:4px;padding:6px 8px;font-size:13px}.gantt-panel-input:focus{border-color:var(--color-primary,#1a73e8);outline:none}.gantt-panel-date-value{color:var(--color-text-main,#1a1a1a);border-bottom:1px solid var(--color-border-light,#eee);padding:6px 0;font-size:13px}.gantt-panel-select{border:1px solid var(--color-border,#e0e0e0);width:100%;color:var(--color-text-main,#1a1a1a);background:var(--color-panel-bg,#fff);box-sizing:border-box;cursor:pointer;border-radius:4px;padding:6px 8px;font-size:13px}.gantt-panel-select:focus{border-color:var(--color-primary,#1a73e8);outline:none}.gantt-panel-assignee-placeholder{align-items:center;gap:8px;padding:4px 0;display:flex}.gantt-panel-assignee-circle{border:1.5px dashed var(--color-border,#ccc);border-radius:50%;flex-shrink:0;width:28px;height:28px}.gantt-panel-assignee-text{color:var(--color-text-sub,#aaa);font-size:12px}.gantt-panel-color-row{flex-wrap:wrap;gap:6px;padding:4px 0;display:flex}.gantt-panel-color-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:22px;height:22px;padding:0}.gantt-panel-color-swatch--selected{border-color:var(--color-text-main,#333);box-shadow:0 0 0 2px #00000026}.gantt-panel-color-display{align-items:center;gap:8px;padding:4px 0;display:flex}.gantt-panel-color-dot{border-radius:50%;flex-shrink:0;width:14px;height:14px}.gantt-panel-color-inherited{color:var(--color-text-sub,#aaa);font-size:11px}.gantt-panel-toggle-placeholder{color:var(--color-text-sub,#aaa);padding:4px 0;font-size:12px}.gantt-panel-textarea{border:1px solid var(--color-border,#e0e0e0);width:100%;min-height:72px;color:var(--color-text-main,#1a1a1a);background:var(--color-panel-bg,#fff);resize:vertical;box-sizing:border-box;border-radius:4px;padding:6px 8px;font-family:inherit;font-size:12px}.gantt-panel-textarea:focus{border-color:var(--color-primary,#1a73e8);outline:none}.gantt-save-controls{background:var(--color-panel-bg,#fff);border-bottom:1px solid var(--color-border,#e0e0e0);flex-shrink:0;align-items:center;gap:8px;padding:5px 16px;display:flex}.gantt-save-status{margin-left:4px;font-size:12px}.gantt-save-status--unsaved{color:var(--color-warning,#e65c00)}.gantt-save-status--saving{color:var(--color-text-sub,#888)}.gantt-save-status--saved{color:var(--color-success,#22a559)}.gantt-save-status--error{color:var(--color-danger,#e53935)}.gantt-row-assignee-badges{flex-shrink:1;align-items:center;gap:3px;margin-left:2px;display:flex;overflow:hidden}.gantt-assignee-badge{border-radius:var(--radius-small,4px);background:var(--color-primary,#1677ff);flex-shrink:0;width:27px;height:24px;position:relative;overflow:hidden}.gantt-assignee-badge__primary{font-size:16px;line-height:1;font-weight:var(--font-weight-bold,700);color:var(--button-primary-text,#fff);position:absolute;top:0;left:1px}.gantt-assignee-badge__secondary{font-size:16px;line-height:1;font-weight:var(--font-weight-medium,500);color:var(--button-primary-text,#fff);transform-origin:100% 100%;position:absolute;bottom:0;right:1px;transform:scale(.6)}.gantt-assignee-badge--single{justify-content:center;align-items:center;display:flex}.gantt-assignee-badge--single .gantt-assignee-badge__primary{font-size:17px;position:static}.gantt-panel-assignee-area{border:1.5px dashed var(--color-border,#d0d0d0);cursor:pointer;background:var(--color-panel-bg,#fff);border-radius:6px;flex-wrap:wrap;align-items:center;gap:6px;min-height:36px;padding:8px 10px;transition:border-color .15s,background .15s;display:flex}.gantt-panel-assignee-area:hover{border-color:var(--color-primary,#1a73e8);background:var(--color-bg,#f5f5f5)}.gantt-panel-assignee-empty{color:var(--color-text-sub,#aaa);font-size:12px}.gantt-panel-assignee-chip{background:var(--color-bg,#f0f4ff);border:1px solid var(--color-border,#d0d8f0);color:var(--color-text-main,#1a1a1a);border-radius:12px;align-items:center;gap:4px;padding:2px 8px;font-size:12px;display:inline-flex}.gantt-assignee-provisional{color:#e65c00;background:#fff3e0;border-radius:3px;padding:1px 4px;font-size:9px;font-weight:700;line-height:1.4}.gantt-panel-assignee-edit-hint{color:var(--color-primary,#1a73e8);flex-shrink:0;margin-left:auto;font-size:11px}.gantt-picker-backdrop{z-index:1000;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.gantt-picker-modal{background:var(--color-panel-bg,#fff);border-radius:10px;flex-direction:column;width:min(680px,96vw);height:min(82vh,700px);display:flex;overflow:hidden;box-shadow:0 10px 48px #00000047}.gantt-picker-header{flex-shrink:0;padding:20px 24px 0}.gantt-picker-title-row{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.gantt-picker-title{color:var(--color-text-main,#1a1a1a);font-size:17px;font-weight:700}.gantt-picker-close-btn{width:28px;height:28px;color:var(--color-text-sub,#888);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;display:flex}.gantt-picker-close-btn:hover{background:var(--color-bg,#f5f5f5);color:var(--color-text-main,#333)}.gantt-picker-item-label{color:var(--color-text-sub,#666);white-space:nowrap;text-overflow:ellipsis;margin-bottom:14px;font-size:12px;overflow:hidden}.gantt-picker-modes{gap:8px;margin-bottom:14px;display:flex}.gantt-picker-mode-btn{border:1px solid var(--color-border,#e0e0e0);background:var(--color-panel-bg,#fff);cursor:pointer;color:var(--color-text-main,#1a1a1a);border-radius:20px;padding:7px 16px;font-family:inherit;font-size:13px;transition:background .15s,border-color .15s,color .15s}.gantt-picker-mode-btn:hover{background:var(--color-bg,#f5f5f5)}.gantt-picker-mode-btn--active{background:var(--color-primary,#1a73e8);border-color:var(--color-primary,#1a73e8);color:#fff}.gantt-picker-mode-btn--active:hover{background:var(--color-primary,#1a73e8)}.gantt-picker-search-row{gap:8px;margin-bottom:12px;display:flex}.gantt-picker-search-input{border:1px solid var(--color-border,#e0e0e0);color:var(--color-text-main,#1a1a1a);background:var(--color-panel-bg,#fff);border-radius:6px;outline:none;flex:1;padding:8px 12px;font-family:inherit;font-size:14px}.gantt-picker-search-input:focus{border-color:var(--color-primary,#1a73e8)}.gantt-picker-search-btn{background:var(--color-primary,#1a73e8);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:6px;padding:8px 18px;font-family:inherit;font-size:13px}.gantt-picker-search-btn:disabled{opacity:.4;cursor:default}.gantt-picker-candidates{border-top:1px solid var(--color-border,#e8e8e8);flex:1;padding:0 4px;overflow-y:auto}.gantt-picker-candidate-row{border-bottom:1px solid var(--color-bg,#f5f5f5);cursor:pointer;align-items:center;gap:14px;padding:12px 20px;transition:background .1s;display:flex}.gantt-picker-candidate-row:hover{background:var(--color-bg,#f5f5f5)}.gantt-picker-candidate-check{width:18px;height:18px;accent-color:var(--color-primary,#1a73e8);cursor:pointer;flex-shrink:0}.gantt-picker-candidate-info{flex:1;min-width:0}.gantt-picker-candidate-name{color:var(--color-text-main,#1a1a1a);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.gantt-picker-candidate-sub{color:var(--color-text-sub,#777);white-space:nowrap;text-overflow:ellipsis;margin-top:3px;font-size:12px;overflow:hidden}.gantt-picker-candidate-badges{flex-shrink:0;gap:4px;display:flex}.gantt-picker-badge{color:var(--color-primary,#1a73e8);white-space:nowrap;background:#e3f0ff;border-radius:4px;padding:2px 7px;font-size:11px}.gantt-picker-empty,.gantt-picker-loading{text-align:center;color:var(--color-text-sub,#aaa);padding:48px 24px;font-size:13px}.gantt-picker-error{color:var(--color-danger,#e53935);padding:24px;font-size:13px}.gantt-picker-footer{border-top:1px solid var(--color-border,#e0e0e0);background:var(--color-panel-bg,#fff);flex-shrink:0;align-items:center;gap:10px;padding:16px 24px;display:flex}.gantt-picker-footer-count{color:var(--color-text-sub,#888);flex:1;font-size:13px}.gantt-picker-footer-count--selected{color:var(--color-primary,#1a73e8);font-weight:600}.gantt-toolbar-btn--primary{background:var(--color-primary,#1a73e8);color:#fff;border-color:var(--color-primary,#1a73e8)}.gantt-toolbar-btn--primary:hover{background:#1565c0;border-color:#1565c0}.gantt-picker-work-type-row{margin-top:10px}.gantt-picker-work-type-select{border:1px solid var(--color-border,#e0e0e0);width:100%;color:var(--color-text-main,#1a1a1a);background:var(--color-panel-bg,#fff);cursor:pointer;box-sizing:border-box;border-radius:6px;outline:none;padding:8px 10px;font-family:inherit;font-size:13px}.gantt-picker-work-type-select:focus{border-color:var(--color-primary,#1a73e8)}.gantt-pin--clickable{pointer-events:auto;cursor:grab}.gantt-pin--clickable:hover .gantt-pin-label{text-decoration:underline}.gantt-pin--draggable{pointer-events:auto;cursor:grab}.gantt-pin--drag-ghost{pointer-events:none;opacity:.85;z-index:10}body.gantt-pin-drag-active,body.gantt-pin-drag-active *{cursor:grabbing!important}.gantt-pin-popup{z-index:1000;background:#fff;border:1px solid #bbb;border-radius:6px;min-width:220px;padding:12px;position:fixed;box-shadow:0 4px 16px #0000002e}.gantt-pin-popup-title{color:#333;margin-bottom:8px;font-size:12px;font-weight:700}.gantt-pin-popup-date-input{box-sizing:border-box;border:1px solid #bbb;border-radius:4px;width:100%;margin-bottom:8px;padding:4px 6px;font-size:13px}.gantt-pin-popup-error{color:#e53935;margin-bottom:6px;font-size:11px}.gantt-pin-popup-actions{gap:8px;display:flex}.gantt-pin-popup-btn{cursor:pointer;background:#f5f5f5;border:1px solid #bbb;border-radius:4px;flex:1;padding:4px 8px;font-size:12px}.gantt-pin-popup-btn--save{color:#fff;background:#1976d2;border-color:#1565c0}.gantt-pin-popup-btn--save:disabled{cursor:not-allowed;background:#90caf9;border-color:#90caf9}.gantt-pin-popup-btn--cancel:disabled{opacity:.6;cursor:not-allowed}.gantt-panel-apply-children-btn{width:100%;font-size:13px;font-weight:var(--font-weight-medium,500);color:var(--color-primary,#1a73e8);background:var(--status-primary-bg,#e8f0fe);border:1px solid var(--status-primary-border,#c5d8fb);border-radius:var(--radius-button,4px);cursor:pointer;text-align:center;padding:7px 12px;transition:background .15s}.gantt-panel-apply-children-btn:hover:not(:disabled){background:#d2e3fc}.gantt-panel-apply-children-btn:disabled{color:var(--color-text-disabled,#bbb);background:var(--color-bg,#f5f5f5);border-color:var(--color-border,#e0e0e0);cursor:not-allowed}.gantt-panel-help-text{color:var(--color-text-sub,#666);text-align:center;margin-top:5px;font-size:12px}.gantt-toolbar-btn--template{color:var(--color-primary,#1a73e8);border-color:var(--status-primary-border,#c5d8fb);background:var(--status-primary-bg,#e8f0fe)}.gantt-toolbar-btn--template:hover{background:#d2e3fc}.gantt-toolbar-btn--shift{color:var(--color-primary,#1a73e8);border-color:var(--status-primary-border,#c5d8fb);background:var(--status-primary-bg,#e8f0fe)}.gantt-toolbar-btn--shift:hover{background:#d2e3fc}.gantt-shift-modal-backdrop{z-index:1100;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.gantt-shift-modal{background:var(--color-panel-bg,#fff);border:1px solid var(--color-border,#e0e0e0);border-radius:var(--radius-card,8px);flex-direction:column;min-width:340px;max-width:440px;padding:0;display:flex;box-shadow:0 8px 32px #0000002e}.gantt-shift-modal-header{border-bottom:1px solid var(--color-border,#e0e0e0);justify-content:space-between;align-items:center;padding:16px 20px 12px;display:flex}.gantt-shift-modal-title{font-size:var(--font-size-body,14px);font-weight:var(--font-weight-bold,600);color:var(--color-text-main,#1a1a1a)}.gantt-shift-modal-close{color:var(--color-text-sub,#888);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:16px;line-height:1}.gantt-shift-modal-close:hover{background:var(--color-border,#e0e0e0);color:var(--color-text-main,#333)}.gantt-shift-modal-body{padding:20px}.gantt-shift-field{flex-direction:column;gap:6px;display:flex}.gantt-shift-label{font-size:var(--font-size-caption,12px);color:var(--color-text-sub,#666)}.gantt-shift-required{color:var(--color-danger,#ea4335)}.gantt-shift-input{border:1px solid var(--color-border,#e0e0e0);border-radius:var(--radius-button,4px);width:100%;font-size:var(--font-size-body,14px);color:var(--color-text-main,#1a1a1a);background:var(--color-panel-bg,#fff);box-sizing:border-box;padding:7px 10px}.gantt-shift-input:focus{border-color:var(--color-primary,#1a73e8);outline:none;box-shadow:0 0 0 2px #1a73e826}.gantt-shift-input--error{border-color:var(--color-danger,#ea4335)}.gantt-shift-field-error{font-size:var(--font-size-caption,12px);color:var(--color-danger,#ea4335);margin:0}.gantt-shift-hint{color:var(--color-text-sub,#888);margin:0;font-size:11px}.gantt-shift-modal-footer{border-top:1px solid var(--color-border,#e0e0e0);justify-content:flex-end;gap:8px;padding:12px 20px 16px;display:flex}.gantt-shift-btn{border-radius:var(--radius-button,4px);font-size:var(--font-size-caption,12px);font-weight:var(--font-weight-medium,500);cursor:pointer;border:1px solid var(--color-border,#e0e0e0);padding:6px 18px}.gantt-shift-btn--cancel{background:var(--color-panel-bg,#fff);color:var(--color-text-main,#333)}.gantt-shift-btn--cancel:hover{background:var(--color-bg,#f5f5f5)}.gantt-shift-btn--execute{background:var(--color-primary,#1a73e8);color:#fff;border-color:var(--color-primary,#1a73e8)}.gantt-shift-btn--execute:hover{background:#1565c0;border-color:#1565c0}.gantt-toolbar-btn--collapse{color:var(--color-text-sub,#666);padding:4px 8px;font-size:11px}.gantt-template-modal-backdrop{z-index:200;background:#00000059;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.gantt-template-modal{background:var(--color-panel-bg,#fff);border-radius:var(--radius-card,8px);flex-direction:column;width:420px;max-width:calc(100vw - 32px);display:flex;box-shadow:0 4px 24px #0000002e}.gantt-template-modal-header{border-bottom:1px solid var(--color-border,#e0e0e0);justify-content:space-between;align-items:center;padding:16px 16px 12px;display:flex}.gantt-template-modal-title{font-size:15px;font-weight:var(--font-weight-bold,600);color:var(--color-text-main,#1a1a1a)}.gantt-template-modal-body{flex-direction:column;gap:14px;padding:16px;display:flex}.gantt-template-modal-footer{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.gantt-template-required{color:#e53935}.gantt-panel-input--error{outline-color:#e53935;border-color:#e53935!important}.gantt-template-field-error{color:#e53935;margin-top:4px;font-size:12px}.gantt-template-save-error{color:#e53935;font-size:13px}.gantt-template-save-success{color:var(--color-primary,#1a73e8);text-align:center;padding:20px 0 8px;font-size:14px}:root{--overall-left-col-width:220px;--overall-day-width:32px;--overall-row-height:36px;--overall-date-header-height:66px}.overall-schedule-page{height:calc(100vh - var(--height-header,52px) - 2 * var(--space-page-y,16px));flex-direction:column;min-height:400px;display:flex;overflow:hidden}.overall-schedule-toolbar{border-bottom:var(--border-width-base,1px) solid var(--color-border,#e0e0e0);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px;padding:8px 0;display:flex}.overall-schedule-toolbar-group{align-items:center;gap:4px;display:flex}.overall-schedule-toolbar-label{font-size:var(--font-size-caption,12px);color:var(--color-text-sub,#666);white-space:nowrap}.overall-schedule-toolbar input[type=date],.overall-schedule-toolbar select{font-size:var(--font-size-caption,12px);border:var(--border-width-base,1px) solid var(--color-border,#e0e0e0);border-radius:var(--radius-button,4px);background:var(--color-panel-bg,#fff);color:var(--color-text-main,#1a1a1a);padding:3px 6px}.overall-schedule-toolbar-checkbox{font-size:var(--font-size-caption,12px);color:var(--color-text-main,#1a1a1a);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;display:flex}.overall-schedule-toolbar-placeholder{font-size:var(--font-size-caption,12px);color:var(--color-text-sub,#666);border:var(--border-width-base,1px) solid var(--color-border,#e0e0e0);border-radius:var(--radius-button,4px);background:var(--color-bg,#f5f5f5);cursor:not-allowed;opacity:.6;padding:3px 10px}.overall-schedule-toolbar-select{font-size:var(--font-size-caption,12px);border:var(--border-width-base,1px) solid var(--color-border,#e0e0e0);border-radius:var(--radius-button,4px);background:var(--color-panel-bg,#fff);color:var(--color-text-main,#1a1a1a);max-width:130px;padding:3px 6px}.overall-schedule-toolbar-select:disabled{opacity:.5;cursor:not-allowed;background:var(--color-bg,#f5f5f5)}.overall-schedule-toolbar-divider{background:var(--color-border,#e0e0e0);width:1px;height:18px;margin:0 4px}.overall-schedule-toolbar-spacer{flex:1}.overall-schedule-btn{font-size:var(--font-size-caption,12px);border:var(--border-width-base,1px) solid var(--color-border,#e0e0e0);border-radius:var(--radius-button,4px);background:var(--color-panel-bg,#fff);color:var(--color-text-main,#1a1a1a);cursor:pointer;white-space:nowrap;padding:4px 12px}.overall-schedule-btn:hover{background:var(--color-bg,#f5f5f5)}.overall-schedule-btn--primary{background:var(--color-primary,#1976d2);color:#fff;border-color:var(--color-primary,#1976d2)}.overall-schedule-btn--primary:hover{opacity:.88}.overall-schedule-summary{font-size:var(--font-size-caption,12px);color:var(--color-text-sub,#666);border-bottom:var(--border-width-base,1px) solid var(--color-border,#e0e0e0);flex-shrink:0;align-items:center;gap:16px;padding:5px 0;display:flex}.overall-schedule-summary-readonly{color:var(--color-text-sub,#666);margin-left:auto;font-size:11px;font-style:italic}.overall-schedule-frame{border:var(--border-width-base,1px) solid var(--color-border,#e0e0e0);border-radius:var(--radius-card,6px);background:var(--color-panel-bg,#fff);flex:1;margin-top:4px;display:flex;overflow:hidden}.overall-schedule-left{width:var(--overall-left-col-width,220px);border-right:2px solid var(--color-border,#e0e0e0);flex-direction:column;flex-shrink:0;min-width:120px;display:flex;overflow:hidden}.overall-schedule-left-header{height:var(--overall-date-header-height,48px);font-size:var(--font-size-caption,12px);color:var(--color-text-sub,#666);background:var(--color-table-header-bg,#f8f8f8);border-bottom:var(--border-width-base,1px) solid var(--color-border,#e0e0e0);flex-shrink:0;align-items:center;padding:0 12px;font-weight:600;display:flex}.overall-schedule-left-body{flex:1;overflow:hidden auto}.overall-schedule-left-row{height:var(--overall-row-height,36px);font-size:var(--font-size-body,13px);color:var(--color-text-main,#1a1a1a);cursor:default;border-bottom:1px solid #d7dde5;align-items:center;gap:6px;padding:0 8px;display:flex}.overall-schedule-left-row:hover{background:var(--color-table-row-hover,#f5f5f5)}.overall-schedule-expand-btn{cursor:pointer;width:18px;height:18px;color:var(--color-text-sub,#666);background:0 0;border:none;border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:11px;line-height:1;display:flex}.overall-schedule-expand-btn:hover{background:var(--color-border,#e0e0e0)}.overall-schedule-expand-btn-placeholder{flex-shrink:0;width:18px;display:inline-block}.overall-schedule-project-name{text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-size-body,13px);flex:1;overflow:hidden}.overall-schedule-timeline{flex-direction:column;flex:1;display:flex;overflow:hidden}.overall-schedule-timeline-scroll{cursor:grab;flex:1;position:relative;overflow:auto}.overall-schedule-timeline-inner{flex-direction:column;display:flex;position:relative}.overall-schedule-date-header{height:var(--overall-date-header-height,66px);background:var(--color-table-header-bg,#f8f8f8);z-index:2;border-bottom:1px solid #d7dde5;flex-direction:column;display:flex;position:sticky;top:0}.overall-schedule-date-header-row{flex-direction:row;flex-shrink:0;height:22px;display:flex}.overall-schedule-date-header-row--month{border-bottom:1px solid #d7dde5}.overall-schedule-date-header-row--weekday{border-top:1px solid #d7dde5}.overall-schedule-date-cell-month{box-sizing:border-box;background:var(--color-bg,#f9f9f9);border-right:1px solid #d7dde5;flex-shrink:0;height:22px;position:relative;overflow:visible}.overall-schedule-date-cell-month-label{height:100%;color:var(--color-text-main,#333);white-space:nowrap;-webkit-user-select:none;user-select:none;box-sizing:border-box;align-items:center;max-width:100%;padding-left:6px;font-size:11px;font-weight:600;display:inline-flex;position:sticky;left:0;overflow:hidden}.overall-schedule-date-cell{width:var(--overall-day-width,32px);color:var(--color-text-sub,#666);white-space:nowrap;-webkit-user-select:none;user-select:none;box-sizing:border-box;border-right:1px solid #d7dde5;flex-shrink:0;justify-content:center;align-items:center;height:22px;font-size:11px;display:flex;overflow:hidden}.overall-schedule-date-cell--today{color:var(--color-primary,#1976d2);background:#e8f4fd;font-weight:600}.overall-schedule-date-cell--sun{color:#c0392b;background:#bebec838}.overall-schedule-date-cell--sat{color:#2980b9}.overall-schedule-timeline-body{background-color:#fff;background-image:repeating-linear-gradient(90deg,#0000 0 31px,#d7dde5 31px 32px);position:relative}.overall-schedule-timeline-row{height:var(--overall-row-height,36px);box-sizing:border-box;border-bottom:1px solid #d7dde5;width:100%;display:block;position:relative}.overall-schedule-timeline-row:hover{background:var(--color-table-row-hover,#f5f5f5)}.overall-schedule-timeline-cell{width:var(--overall-day-width,32px);border-right:var(--border-width-base,1px) solid var(--color-border,#e0e0e0);flex-shrink:0}.overall-schedule-col-bg{pointer-events:none;background:#bebec829;position:absolute;top:0;bottom:0}.overall-schedule-today-line{background:var(--color-primary,#1976d2);opacity:.7;pointer-events:none;z-index:3;width:2px;position:absolute;top:0;bottom:0}.overall-schedule-state{color:var(--color-text-sub,#666);font-size:var(--font-size-body,13px);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:40px 0;display:flex}.overall-schedule-state--error{color:#c0392b}.overall-schedule-state-detail{color:var(--color-text-sub,#999);font-size:11px}.overall-schedule-name--link{cursor:pointer}.overall-schedule-name--link:hover{text-decoration:underline}.overall-schedule-left-row--phase{font-size:var(--font-size-caption,12px);background:#fafafa;padding-left:20px}.overall-schedule-left-row--task{font-size:var(--font-size-caption,12px);background:#fff;padding-left:36px}.overall-schedule-item-name{text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-size-caption,12px);color:var(--color-text-main,#1a1a1a);flex:1;overflow:hidden}.overall-schedule-row--phase,.overall-schedule-row--task{background:0 0}.overall-schedule-row--phase:hover,.overall-schedule-row--task:hover{background:var(--color-table-row-hover,#f5f5f5)}.overall-schedule-bar{cursor:pointer;z-index:1;box-sizing:border-box;border-radius:3px;align-items:center;min-width:2px;padding:0 5px;transition:opacity .1s;display:flex;position:absolute;overflow:hidden}.overall-schedule-bar:hover{opacity:.82}.overall-schedule-bar--project{border:1.5px solid #d4b800;height:30px;top:3px}.overall-schedule-bar--phase{border:1px solid #0000002e;height:10px;padding:0;top:23px}.overall-schedule-bar--task{border:1px solid #0000001f;height:30px;top:3px}.overall-schedule-bar-label{text-overflow:ellipsis;white-space:nowrap;color:#333;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:13px;line-height:1;overflow:hidden}.overall-schedule-phase-label{text-overflow:ellipsis;white-space:nowrap;color:#333;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:2;padding:0 5px;font-size:13px;line-height:1.2;position:absolute;top:3px;overflow:hidden}.overall-schedule-date-missing{color:var(--color-text-sub,#bbb);pointer-events:none;-webkit-user-select:none;user-select:none;font-size:10px;position:absolute;top:50%;left:6px;transform:translateY(-50%)}.overall-schedule-pagination-count{white-space:nowrap}.overall-schedule-pagination{align-items:center;gap:4px;display:flex}.overall-schedule-btn--page{padding:2px 8px;font-size:11px}.overall-schedule-btn--page:disabled{opacity:.4;cursor:not-allowed}.overall-schedule-pagination-info{color:var(--color-text-sub,#666);white-space:nowrap;text-align:center;min-width:36px;font-size:11px}.overall-schedule-portrait-guidance{text-align:center;background:#eef2ff;border:1px solid #c5d8fb;border-radius:8px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:12px;margin:4px 0;padding:16px;display:none}.overall-schedule-portrait-guidance-text{color:#444;font-size:14px;line-height:1.65}.overall-schedule-portrait-guidance-hint{border:1.5px solid var(--color-primary,#1976d2);color:var(--color-primary,#1976d2);-webkit-user-select:none;user-select:none;background:#fff;border-radius:999px;align-items:center;gap:6px;padding:7px 18px;font-size:13px;display:inline-flex}@media (width<=768px){:root{--overall-left-col-width:150px}.overall-schedule-toolbar{gap:6px}}@media (width<=768px) and (orientation:portrait){.overall-schedule-portrait-guidance{display:flex}.overall-schedule-page{height:auto;min-height:calc(100svh - var(--height-header,52px) - 2 * var(--space-page-y,16px));overflow-y:auto}.overall-schedule-frame{flex:none;height:340px;min-height:260px}}.takeoff-color-note{margin:0 0 var(--space-sidebar-padding);padding:var(--space-input-padding-x) var(--space-card-gap);border:var(--border-width-base) solid var(--status-warning-border);border-radius:var(--radius-card);background:var(--status-warning-bg);color:var(--color-text-main);font-size:var(--font-size-caption)}.takeoff-color-section-title{margin:0 0 var(--space-card-gap);font-size:var(--font-size-caption);font-weight:var(--font-weight-bold);color:var(--color-text-main)}.takeoff-color-status-msg{padding:var(--space-sidebar-padding) var(--space-header-padding-x);color:var(--color-text-sub);font-size:var(--font-size-caption)}.takeoff-color-status-msg--error{color:var(--color-danger)}.takeoff-color-table-wrap{margin:0 0 var(--space-sidebar-padding);background:var(--color-panel-bg);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);overflow:hidden}.takeoff-color-table{border-collapse:collapse;width:100%;font-size:var(--font-size-table);table-layout:fixed}.takeoff-color-table thead tr{background:var(--table-header-bg);border-bottom:var(--border-width-base) solid var(--color-border)}.takeoff-color-table th{padding:var(--space-input-padding-x) var(--space-card-gap);font-size:var(--font-size-caption);font-weight:var(--font-weight-bold);color:var(--color-text-main);text-align:left}.takeoff-color-table td{padding:var(--space-table-cell-y) var(--space-card-gap);color:var(--color-text-main)}.takeoff-color-table tbody tr{border-bottom:var(--border-width-base) solid var(--status-disabled-bg)}.takeoff-color-table tbody tr:nth-child(odd){background:var(--color-panel-bg)}.takeoff-color-table tbody tr:nth-child(2n){background:var(--color-readonly-bg)}.takeoff-color-cell-strong{font-weight:var(--font-weight-medium)}.takeoff-color-cell-muted{color:var(--color-text-sub)}.takeoff-color-mono{font-family:monospace}.takeoff-color-badge-unassigned{padding:3px var(--space-table-cell-x);border-radius:var(--radius-small);font-size:calc(var(--font-size-caption) - 2px);font-weight:var(--font-weight-bold);white-space:nowrap;color:var(--color-disabled);background:var(--status-disabled-bg);border:var(--border-width-base) solid var(--status-disabled-border);justify-content:center;align-items:center;display:inline-flex}.takeoff-col-usage{width:160px}.takeoff-col-master{width:180px}.takeoff-col-no{width:160px}.company-settings{gap:var(--space-card-gap);flex-direction:column;display:flex}.company-settings__breadcrumb{font-size:var(--font-size-caption);color:var(--color-text-sub)}.company-settings__breadcrumb a{color:var(--color-primary);cursor:pointer}.company-settings__breadcrumb a:hover{text-decoration:underline}.company-settings__title{font-size:var(--font-size-page-title);font-weight:var(--font-weight-bold);color:var(--color-text-main);margin:0}.company-settings__desc{font-size:var(--font-size-caption);color:var(--color-text-sub);margin:0}.company-settings__form{gap:var(--space-card-gap);padding:var(--space-header-padding-y) var(--space-header-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-panel-bg);box-shadow:var(--shadow-card);flex-direction:column;display:flex}.company-settings__field{gap:var(--space-form-gap);flex-direction:column;display:flex}.company-settings__label{font-size:var(--font-size-caption);color:var(--color-text-main)}.company-settings__req{margin-left:var(--space-form-gap);font-size:var(--font-size-xs);color:var(--color-danger)}.company-settings__hint{margin-left:var(--space-form-gap);font-size:var(--font-size-xs);color:var(--color-text-sub)}.company-settings__input,.company-settings__select{width:100%;height:var(--height-input);padding:var(--space-input-padding-y) var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-input);background:var(--color-editable-bg);color:var(--color-text-main);font-family:inherit;font-size:var(--font-size-caption);box-sizing:border-box}.company-settings__bank-account{gap:var(--space-form-gap);padding:var(--space-input-padding-y) var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-input);background:var(--color-page-bg);flex-direction:column;display:flex}.company-settings__bank-account-head{font-size:var(--font-size-caption);font-weight:var(--font-weight-bold);color:var(--color-text-main);justify-content:space-between;align-items:center;display:flex}.company-settings__bank-account-remove{height:var(--height-input);padding:0 var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-input);background:var(--color-panel-bg);color:var(--color-danger);font-size:var(--font-size-caption);cursor:pointer}.company-settings__actions{gap:var(--space-button-gap);display:flex}.company-settings__loading{padding:var(--space-page-y);text-align:center;color:var(--loading-text-color);font-size:var(--font-size-caption)}.company-settings__alert{border-radius:var(--radius-card);padding:var(--space-input-padding-y) var(--space-input-padding-x);font-size:var(--font-size-caption);border:var(--border-width-base) solid transparent}.company-settings__alert--error{background:var(--status-danger-bg);border-color:var(--status-danger-border);color:var(--color-danger)}.company-settings__alert--info{background:var(--status-primary-bg);border-color:var(--status-primary-border);color:var(--color-primary)}.company-settings__alert--success{background:var(--status-success-bg);border-color:var(--status-success-border);color:var(--color-success)}.estimate-master-title{margin:0 0 var(--radius-small);font-size:var(--font-size-page-title);font-weight:var(--font-weight-bold);color:var(--color-text-main)}.estimate-master-lead{margin:0 0 var(--space-page-y);font-size:var(--font-size-caption);color:var(--color-text-sub)}.estimate-master-section{padding:0;overflow:hidden}.estimate-master-section-header{justify-content:space-between;align-items:center;gap:var(--space-card-gap);padding:var(--space-sidebar-padding) var(--space-header-padding-x);border-bottom:var(--border-width-base) solid var(--color-border);background:var(--table-header-bg);display:flex}.estimate-master-section-title{font-size:var(--font-size-section-title);font-weight:var(--font-weight-bold);color:var(--color-text-main);margin:0}.estimate-master-count,.estimate-master-note{font-size:var(--font-size-caption);color:var(--color-text-sub)}.estimate-master-note,.estimate-master-error{padding:var(--space-sidebar-padding) var(--space-header-padding-x);margin:0}.estimate-master-error{color:var(--color-danger)}.estimate-master-table-wrap{overflow-x:auto}.estimate-master-table{border-collapse:collapse;width:100%;font-size:var(--font-size-caption);color:var(--color-text-main)}.estimate-master-table th,.estimate-master-table td{padding:var(--space-input-padding-y) var(--space-header-padding-x);border-bottom:var(--border-width-base) solid var(--color-border);text-align:left;white-space:nowrap}.estimate-master-table th{font-weight:var(--font-weight-semibold);color:var(--color-text-sub);background:var(--table-header-bg)}.estimate-master-cell-num{text-align:right;font-variant-numeric:tabular-nums}.estimate-master-row--inactive td{color:var(--color-text-sub)}.estimate-master-actions{align-items:center;gap:var(--space-form-gap);flex-shrink:0;display:flex}.estimate-master-row-actions{align-items:center;gap:calc(var(--space-form-gap) - 2px);flex-wrap:nowrap;display:flex}.estimate-master-btn{height:var(--height-button-small);padding:0 var(--space-input-padding-x);font-size:calc(var(--font-size-caption) - 2px);border-radius:var(--radius-small,4px);border:var(--border-width-base) solid var(--color-border);color:var(--color-text-main);background:var(--color-panel-bg);cursor:pointer;white-space:nowrap}.estimate-master-btn:disabled{cursor:not-allowed;opacity:.45}.estimate-master-btn--primary{border-color:var(--button-primary-bg);color:var(--button-primary-text);background:var(--button-primary-bg)}.estimate-master-btn--warning{border-color:var(--color-warning);color:var(--color-warning);background:var(--status-warning-bg)}.estimate-master-input{width:100%;height:var(--height-input);padding:0 var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-input);font-size:var(--font-size-caption);color:var(--color-text-main);background:var(--color-editable-bg);box-sizing:border-box}.estimate-master-input:disabled{background:var(--color-readonly-bg);color:var(--color-text-sub)}.estimate-master-input--error{border-color:var(--error-border-color)}.estimate-master-hint{margin-top:var(--radius-small);font-size:calc(var(--font-size-caption) - 2px);color:var(--color-text-sub);display:block}.estimate-master-check{align-items:center;gap:var(--space-form-gap);margin-top:var(--radius-small);font-size:var(--font-size-caption);color:var(--color-text-main);display:flex}.estimate-master-toast{top:var(--space-header-padding-x);right:var(--space-header-padding-x);z-index:2000;padding:var(--space-input-padding-x) var(--space-sidebar-padding);background:var(--status-success-bg);border:var(--border-width-base) solid var(--status-success-border);border-radius:var(--radius-card);color:var(--color-success);font-size:var(--font-size-caption);box-shadow:var(--shadow-popover);position:fixed}.tpl-toolbar{justify-content:space-between;align-items:center;gap:var(--space-form-gap);margin-bottom:var(--space-page-y);flex-wrap:wrap;display:flex}.tpl-toolbar-actions{gap:var(--space-form-gap);flex-wrap:wrap;display:flex}.tpl-table-wrap{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-panel-bg);overflow-x:auto}.tpl-table{border-collapse:collapse;width:100%;min-width:720px;font-size:var(--font-size-caption)}.tpl-table th,.tpl-table td{padding:var(--space-table-cell-y) var(--space-table-cell-x);border-bottom:var(--border-width-base) solid var(--color-border);vertical-align:middle;text-align:left;white-space:nowrap}.tpl-table th{background:var(--color-table-header-bg);color:var(--color-text-sub);font-weight:var(--font-weight-medium)}.tpl-row--inactive td{opacity:.6}.tpl-form-row{gap:var(--space-form-gap);margin-bottom:var(--space-form-gap);flex-direction:column;display:flex}.tpl-form-label{font-size:var(--font-size-xs);color:var(--color-text-sub)}.tpl-form-input,.tpl-form-select,.tpl-form-textarea{height:var(--height-input);padding:var(--space-input-padding-y) var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-input);background:var(--color-editable-bg);color:var(--color-text-main);font-size:var(--font-size-caption)}.tpl-form-textarea{height:auto;min-height:calc(var(--height-input) * 2);resize:vertical}.tpl-lines-wrap{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-panel-bg);overflow-x:auto}.tpl-lines-toolbar{gap:var(--space-form-gap);padding:var(--space-table-cell-y) var(--space-table-cell-x);border-bottom:var(--border-width-base) solid var(--color-border);background:var(--color-table-header-bg);flex-wrap:wrap;display:flex}.tpl-footer{justify-content:flex-end;gap:var(--space-form-gap);margin-top:var(--space-page-y);flex-wrap:wrap;display:flex}.tpl-quantity-note{color:var(--color-text-sub);font-size:var(--font-size-xs)}.tpl-dirty-hint{color:var(--color-warning);font-size:var(--font-size-caption);align-self:center}.tpl-clip-state{color:var(--color-text-sub);font-size:var(--font-size-xs);align-self:center}.tpl-grid-notice{color:var(--color-text-sub);font-size:var(--font-size-xs);margin-top:var(--space-form-gap)}.rl-toolbar{align-items:center;gap:var(--space-table-cell-x);margin-bottom:var(--space-input-padding-x);flex-wrap:wrap;display:flex}.rl-search-input{height:var(--height-input);padding:0 var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-input);background:var(--color-editable-bg);color:var(--color-text-main);font-size:var(--font-size-caption);box-sizing:border-box;flex:1;min-width:200px;max-width:440px}.rl-search-btn,.rl-refresh-btn{height:var(--height-input);padding:0 var(--space-table-cell-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-input);background:var(--color-panel-bg);color:var(--color-text-main);font-size:var(--font-size-caption);cursor:pointer;white-space:nowrap}.rl-search-btn:hover,.rl-refresh-btn:hover{background:var(--color-table-row-hover)}.rl-sort-select{height:var(--height-input);padding:0 var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-input);background:var(--color-editable-bg);color:var(--color-text-main);font-size:var(--font-size-caption)}.rl-filter-tabs{gap:var(--space-input-padding-x);flex-wrap:wrap;display:flex}.rl-filter-tab{height:var(--height-input);padding:0 var(--space-table-cell-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-input);background:var(--color-panel-bg);color:var(--color-text-main);font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);cursor:pointer;white-space:nowrap}.rl-filter-tab:hover{background:var(--color-table-row-hover)}.rl-filter-tab--active{border-color:var(--color-primary);background:var(--status-primary-bg);color:var(--color-primary)}.rl-count{margin:0 0 var(--space-input-padding-x);font-size:var(--font-size-caption);color:var(--color-text-sub)}.rl-table-wrap{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-table);background:var(--color-panel-bg);overflow-x:auto}.rl-table{border-collapse:collapse;background:var(--color-panel-bg);width:100%;min-width:1440px}.rl-table thead tr{border-bottom:var(--border-width-strong) solid var(--color-border);background:var(--table-header-bg)}.rl-th{padding:var(--space-table-cell-y) var(--space-table-cell-x);font-weight:var(--font-weight-bold);font-size:var(--font-size-table);white-space:nowrap;text-align:left;color:var(--table-header-text)}.rl-td{padding:var(--space-table-cell-y) var(--space-table-cell-x);font-size:var(--font-size-table);vertical-align:middle;color:var(--color-text-main);white-space:nowrap}.rl-row{border-bottom:var(--border-width-base) solid var(--color-border);cursor:pointer}.rl-row:hover{background:var(--color-table-row-hover)}.rl-project-name{color:var(--color-text-main);font-size:var(--font-size-table)}.rl-date-pair{font-size:calc(var(--font-size-caption) - 1px);color:var(--color-text-main);flex-direction:column;gap:2px;display:flex}.rl-action-btn{height:var(--height-input);padding:0 var(--space-table-cell-x);border:var(--border-width-base) solid var(--color-primary);border-radius:var(--radius-input);background:var(--color-panel-bg);color:var(--color-primary);font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);cursor:pointer;white-space:nowrap}.rl-action-btn:hover{background:var(--status-primary-bg)}.rl-empty-cell{color:var(--color-text-sub);text-align:center;padding:24px 10px}.rl-loading,.rl-error{padding:var(--space-table-cell-x);font-size:var(--font-size-caption)}.rl-loading{color:var(--color-text-sub)}.rl-error{color:var(--color-danger)}.rl-next-action{font-size:calc(var(--font-size-caption) - 1px);color:var(--color-text-main)}.rl-attention-text{font-size:calc(var(--font-size-caption) - 1px);color:var(--color-danger)}.rl-no-attention{color:var(--color-text-sub)}.rl-state-badge{font-size:calc(var(--font-size-caption) - 1px);font-weight:var(--font-weight-medium);border-radius:var(--radius-small);border:var(--border-width-base) solid transparent;white-space:nowrap;padding:1px 8px;display:inline-block}.rl-state-badge--danger{background:var(--status-danger-bg);border-color:var(--status-danger-border);color:var(--color-danger)}.rl-state-badge--neutral{background:var(--status-disabled-bg);border-color:var(--status-disabled-border);color:var(--color-text-sub)}.rl-state-badge--primary{background:var(--status-primary-bg);border-color:var(--status-primary-border);color:var(--color-primary)}.rl-state-badge--warning{background:var(--status-warning-bg);border-color:var(--status-warning-border);color:var(--color-warning)}.rl-state-badge--success{background:var(--status-success-bg);border-color:var(--status-success-border);color:var(--color-success)}.rl-source-hint{font-size:calc(var(--font-size-caption) - 2px);color:var(--color-text-sub);margin-left:4px}.rl-source-hint--danger{color:var(--color-danger);font-weight:var(--font-weight-medium)}.rld-overlay{background:var(--modal-backdrop-bg);z-index:999;justify-content:flex-end;display:flex;position:fixed;inset:0}.rld-panel{width:min(720px, calc(100vw - var(--layout-sidebar-width)));background:var(--color-panel-bg);height:100%;box-shadow:var(--shadow-popover);flex-direction:column;display:flex;overflow:hidden}.rld-header{padding:var(--space-table-cell-x) var(--detail-section-padding);border-bottom:var(--border-width-base) solid var(--color-border);background:var(--detail-section-header-bg);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.rld-title{font-size:var(--font-size-section-title);font-weight:var(--font-weight-bold);color:var(--color-text-main);margin:0}.rld-close-btn{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-button);background:var(--color-panel-bg);color:var(--color-text-sub);width:var(--height-input);height:var(--height-input);font-size:var(--font-size-section-title);cursor:pointer;line-height:1}.rld-close-btn:hover{background:var(--color-table-row-hover)}.rld-body{padding:var(--detail-section-padding);gap:var(--space-section-gap);flex-direction:column;flex:1;display:flex;overflow-y:auto}.rld-section{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);padding:var(--space-table-cell-x);background:var(--detail-section-bg)}.rld-section-title{margin:0 0 var(--space-input-padding-x);font-size:var(--font-size-body);font-weight:var(--font-weight-bold);color:var(--color-text-main)}.rld-dl{gap:var(--space-form-gap) var(--space-table-cell-x);grid-template-columns:8em 1fr;margin:0;display:grid}.rld-dl dt{font-size:var(--font-size-caption);color:var(--color-text-sub)}.rld-dl dd{font-size:var(--font-size-caption);color:var(--color-text-main);background:var(--color-readonly-bg);padding:2px var(--space-input-padding-x);border-radius:var(--radius-small);margin:0}.rld-btn-row{gap:var(--space-input-padding-x);margin-top:var(--space-input-padding-x);flex-wrap:wrap;display:flex}.rld-btn{height:var(--height-input);padding:0 var(--space-table-cell-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-input);background:var(--color-panel-bg);color:var(--color-text-main);font-size:var(--font-size-caption);cursor:pointer;white-space:nowrap}.rld-btn:hover{background:var(--color-table-row-hover)}.rld-btn:disabled{cursor:not-allowed;color:var(--color-disabled)}.rld-btn--sm{height:var(--height-button-small);padding:0 var(--space-input-padding-x);font-size:calc(var(--font-size-caption) - 1px)}.rld-btn--primary{border-color:var(--color-primary);background:var(--color-primary);color:var(--button-primary-text);font-weight:var(--font-weight-medium)}.rld-btn--primary:hover{opacity:.9;background:var(--color-primary)}.rld-table-wrap{overflow-x:auto}.rld-item-table{border-collapse:collapse;width:100%;min-width:720px}.rld-item-table thead tr{border-bottom:var(--border-width-base) solid var(--color-border);background:var(--table-header-bg)}.rld-item-row{border-bottom:var(--border-width-base) solid var(--color-border)}.rld-plain-list{gap:var(--space-form-gap);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.rld-plain-list li{align-items:center;gap:var(--space-input-padding-x);padding:var(--space-form-gap) 0;border-bottom:var(--border-width-base) solid var(--color-border);display:flex}.rld-plain-list li:last-child{border-bottom:none}.rld-link-btn{color:var(--color-primary);cursor:pointer;font-size:var(--font-size-table);background:0 0;border:none;padding:0;text-decoration:underline}.cip-body{gap:var(--space-section-gap);flex-direction:column;width:min(640px,80vw);display:flex}.cip-method{gap:var(--space-form-gap);padding:var(--space-table-cell-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--detail-section-bg);flex-direction:column;display:flex}.cip-radio{align-items:center;gap:var(--space-form-gap);font-size:var(--font-size-caption);color:var(--color-text-main);display:flex}.cip-issued-list{padding:var(--space-table-cell-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-readonly-bg)}.cip-line{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);padding:var(--space-table-cell-x)}.cip-line-title{font-size:var(--font-size-caption);font-weight:var(--font-weight-bold);color:var(--color-text-main);margin-bottom:var(--space-form-gap)}.cip-grid{gap:var(--space-form-gap) var(--space-table-cell-x);grid-template-columns:repeat(2,1fr);display:grid}.cip-field{font-size:calc(var(--font-size-caption) - 1px);color:var(--color-text-sub);flex-direction:column;gap:4px;display:flex}.cip-field--wide{grid-column:1/-1}.cip-hint--danger{color:var(--color-danger);font-weight:var(--font-weight-medium)}.cip-actions{justify-content:flex-end;gap:var(--space-input-padding-x);padding-top:var(--space-table-cell-x);border-top:var(--border-width-base) solid var(--color-border);display:flex}.mb-month-nav{align-items:center;gap:var(--space-input-padding-x);margin-bottom:var(--space-input-padding-x);display:flex}.mb-month-btn{height:var(--height-input);padding:0 var(--space-table-cell-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-input);background:var(--color-panel-bg);color:var(--color-text-main);font-size:var(--font-size-caption);cursor:pointer}.mb-month-btn:hover{background:var(--color-table-row-hover)}.mb-month-label{font-size:var(--font-size-section-title);font-weight:var(--font-weight-bold);color:var(--color-text-main);text-align:center;min-width:8em}.mb-tabs{gap:var(--space-input-padding-x);margin-bottom:var(--space-table-cell-x);border-bottom:var(--border-width-base) solid var(--color-border);display:flex}.mb-tab{padding:var(--space-input-padding-x) var(--space-table-cell-x);border:none;border-bottom:var(--border-width-strong) solid transparent;color:var(--color-text-sub);font-size:var(--font-size-body);font-weight:var(--font-weight-medium);cursor:pointer;background:0 0}.mb-tab--active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.mb-summary-row{gap:var(--space-card-gap);margin-bottom:var(--space-table-cell-x);flex-wrap:wrap;display:flex}.mb-summary-card{background:var(--color-panel-bg);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);padding:var(--space-table-cell-x);box-shadow:var(--shadow-card);flex:160px}.mb-summary-card__label{font-size:calc(var(--font-size-caption) - 1px);color:var(--color-text-sub);margin-bottom:4px}.mb-summary-card__value{font-size:var(--font-size-section-title);font-weight:var(--font-weight-bold);color:var(--color-text-main)}.mb-summary-card--attention .mb-summary-card__value{color:var(--color-danger)}.mb-search-row{gap:var(--space-table-cell-x);margin-bottom:var(--space-table-cell-x);display:flex}.mb-search-input{height:var(--height-input);padding:0 var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-input);background:var(--color-editable-bg);color:var(--color-text-main);font-size:var(--font-size-caption);box-sizing:border-box;flex:1;max-width:440px}.mb-group-list{gap:var(--space-table-cell-x);flex-direction:column;display:flex}.mb-group{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-panel-bg);overflow:hidden}.mb-group--highlight{border-color:var(--color-primary)}.mb-group-head{align-items:center;gap:var(--space-table-cell-x);padding:var(--space-table-cell-x);background:var(--table-header-bg);cursor:pointer;grid-template-columns:1.4fr repeat(5,.9fr) 1fr;display:grid}.mb-group-head__label{font-size:calc(var(--font-size-caption) - 1px);color:var(--color-text-sub);display:block}.mb-group-head__value{font-size:var(--font-size-caption);color:var(--color-text-main);font-weight:var(--font-weight-medium)}.mb-group-name{font-size:var(--font-size-body);font-weight:var(--font-weight-bold);color:var(--color-text-main)}.mb-group-body{padding:var(--space-table-cell-x);border-top:var(--border-width-base) solid var(--color-border)}.mb-candidate-table{border-collapse:collapse;width:100%}.mb-candidate-table thead tr,.mb-candidate-row{border-bottom:var(--border-width-base) solid var(--color-border)}.mb-candidate-row--disabled{color:var(--color-text-sub)}.mb-reason{font-size:calc(var(--font-size-caption) - 1px);color:var(--color-text-sub)}.mb-group-actions{align-items:center;gap:var(--space-table-cell-x);margin-top:var(--space-table-cell-x);display:flex}.mb-confirm-panel{margin-top:var(--space-table-cell-x);padding:var(--space-table-cell-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-table);background:var(--color-panel-bg)}.mb-selected-total{font-size:var(--font-size-caption);color:var(--color-text-main)}.mb-invoice-table{border-collapse:collapse;background:var(--color-panel-bg);width:100%}.mb-invoice-table thead tr{border-bottom:var(--border-width-strong) solid var(--color-border);background:var(--table-header-bg)}.mb-invoice-row{border-bottom:var(--border-width-base) solid var(--color-border);cursor:pointer}.mb-invoice-row:hover{background:var(--color-table-row-hover)}.mb-invoice-row--selected{background:var(--status-primary-bg)}.mb-invoice-row--inactive{color:var(--color-text-sub)}.mb-placeholder{text-align:center;color:var(--color-text-sub);font-size:var(--font-size-caption);padding:40px}.mb-section-title{margin:var(--space-section-gap) 0 var(--space-input-padding-x);font-size:var(--font-size-body);font-weight:var(--font-weight-bold);color:var(--color-text-main)}.mb-section-head{margin:var(--space-section-gap) 0 var(--space-input-padding-x);justify-content:space-between;align-items:center;display:flex}.mb-plan-table,.mb-receipt-table{border-collapse:collapse;background:var(--color-panel-bg);width:100%}.mb-table-wrap{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-table);margin-bottom:var(--space-table-cell-x);overflow-x:auto}.mb-plan-table thead tr,.mb-receipt-table thead tr{border-bottom:var(--border-width-strong) solid var(--color-border);background:var(--table-header-bg)}.mb-plan-row,.mb-receipt-row{border-bottom:var(--border-width-base) solid var(--color-border)}.mb-detail-link{color:var(--color-primary);cursor:pointer;font-size:var(--font-size-table);background:0 0;border:none;padding:0;text-decoration:underline}:root{--rpt-page-w:297mm;--rpt-page-h:210mm;--rpt-page-margin:10mm;--rpt-content-w:277mm;--rpt-font:"Yu Gothic", "Hiragino Kaku Gothic ProN", "Noto Sans JP", meiryo, sans-serif;--rpt-fs-meta:8pt;--rpt-fs-title:15pt;--rpt-fs-major:15pt;--rpt-fs-mid:12pt;--rpt-fs-colhead:10pt;--rpt-fs-item:10pt;--rpt-fs-subtotal:10pt;--rpt-fs-total:12pt;--rpt-fs-cover-title:26pt;--rpt-fs-cover-total:20pt;--rpt-fs-body:10pt;--rpt-line-height:1.3;--rpt-weight-normal:400;--rpt-weight-bold:700;--rpt-rh-colhead:18pt;--rpt-rh-mid:20pt;--rpt-rh-subtotal:18pt;--rpt-rh-total:20pt;--rpt-rh-item:23pt;--rpt-rh-major:22pt;--rpt-rh-option:calc(var(--rpt-rh-item) + var(--rpt-fs-item) * var(--rpt-line-height));--rpt-col-no:3%;--rpt-col-name:34%;--rpt-col-spec:34%;--rpt-col-qty:6%;--rpt-col-unit:4%;--rpt-col-price:10%;--rpt-col-amount:9%;--rpt-paper:#fff;--rpt-ink:#111;--rpt-muted:#555;--rpt-line:#666;--rpt-line-soft:#bbb;--rpt-mid-bg:#ededed;--rpt-total-bg:#e3e3e3;--rpt-option-bg:#fff7e0;--rpt-option-border:#e5cf7d;--rpt-option-ink:#7a5a00;--rpt-watermark:#3c3c3c1f;--rpt-gap-sm:4pt;--rpt-gap-md:8pt;--rpt-gap-lg:16pt;--rpt-cell-x:6pt;--rpt-cell-y:3pt;--rpt-cell-x-tight:2pt;--rpt-fs-option-no:calc(var(--rpt-fs-item) - 1pt);--rpt-border-w:1px;--rpt-fs-watermark:96pt;--rpt-offscreen:-10000px;--rpt-band-bg:#cbe8ff;--rpt-amount-band-w:34%;--rpt-addressee-min-w:14em;--rpt-cat-col-no:20%;--rpt-cat-col-label:38%;--rpt-cat-col-amount:42%}.rpt-root{font-family:var(--rpt-font);color:var(--rpt-ink);line-height:var(--rpt-line-height)}.rpt-page{box-sizing:border-box;width:var(--rpt-page-w);min-height:var(--rpt-page-h);padding:var(--rpt-page-margin);margin:0 auto var(--rpt-gap-lg);background:var(--rpt-paper);break-after:page;flex-direction:column;display:flex;position:relative}.rpt-page:last-child{break-after:auto}.rpt-flow{box-sizing:border-box;width:var(--rpt-page-w);padding:0 var(--rpt-page-margin);background:var(--rpt-paper);margin:0 auto}.rpt-head{justify-content:space-between;align-items:baseline;gap:var(--rpt-gap-md);border-bottom:var(--rpt-border-w) solid var(--rpt-line);padding-bottom:var(--rpt-gap-sm);display:flex}.rpt-head__no,.rpt-head__date{font-size:var(--rpt-fs-meta);color:var(--rpt-muted);white-space:nowrap}.rpt-head__title{font-size:var(--rpt-fs-title);font-weight:var(--rpt-weight-bold);text-align:center;flex:1}.rpt-cover-topbar{border-bottom:var(--rpt-border-w) solid var(--rpt-line);padding-bottom:var(--rpt-gap-sm);font-size:var(--rpt-fs-meta);color:var(--rpt-muted);justify-content:space-between;align-items:baseline;display:flex}.rpt-cover-band{background:var(--rpt-band-bg);text-align:center;font-size:var(--rpt-fs-cover-title);font-weight:var(--rpt-weight-bold);color:var(--rpt-ink);letter-spacing:.5em;padding:var(--rpt-gap-md) 0;margin:var(--rpt-gap-md) 0 var(--rpt-gap-lg)}.rpt-cover-headrow{justify-content:space-between;align-items:flex-start;gap:var(--rpt-gap-lg);display:flex}.rpt-cover-addr{gap:var(--rpt-gap-md);flex-direction:column;flex:1;min-width:0;display:flex}.rpt-addressee{min-width:var(--rpt-addressee-min-w);max-width:100%;padding-right:var(--rpt-gap-lg);padding-bottom:var(--rpt-gap-sm);border-bottom:var(--rpt-border-w) solid var(--rpt-line);font-size:var(--rpt-fs-title);font-weight:var(--rpt-weight-bold);white-space:nowrap;align-self:flex-start}.rpt-lead{font-size:var(--rpt-fs-body);color:var(--rpt-ink)}.rpt-issuer{font-size:var(--rpt-fs-body);white-space:nowrap}.rpt-issuer__name{font-size:var(--rpt-fs-mid);font-weight:var(--rpt-weight-bold)}.rpt-cover-inforow{grid-template-columns:1fr var(--rpt-amount-band-w) 1fr;align-items:start;gap:var(--rpt-gap-lg);margin-top:var(--rpt-gap-lg);display:grid}.rpt-kv{gap:var(--rpt-gap-sm) var(--rpt-gap-md);font-size:var(--rpt-fs-body);grid-template-columns:auto 1fr;display:grid}.rpt-kv dt{color:var(--rpt-muted);white-space:nowrap}.rpt-kv dd{margin:0}.rpt-amount-band{background:var(--rpt-band-bg);padding:var(--rpt-gap-md) var(--rpt-gap-lg)}.rpt-amount-main{justify-content:space-between;align-items:baseline;gap:var(--rpt-gap-md);display:flex}.rpt-amount-label{font-size:var(--rpt-fs-mid);font-weight:var(--rpt-weight-bold)}.rpt-amount-label-sub{font-size:var(--rpt-fs-meta);font-weight:var(--rpt-weight-normal)}.rpt-amount-value{font-size:var(--rpt-fs-cover-total);font-weight:var(--rpt-weight-bold);font-variant-numeric:tabular-nums}.rpt-amount-sub{margin:var(--rpt-gap-sm) 0 0;font-size:var(--rpt-fs-meta);color:var(--rpt-muted);flex-direction:column;align-items:flex-end;display:flex}.rpt-amount-sub div{gap:var(--rpt-gap-md);display:flex}.rpt-amount-sub dt{white-space:nowrap}.rpt-amount-sub dd{font-variant-numeric:tabular-nums;margin:0}.rpt-cover-note{align-self:end;min-width:0}.rpt-cover-note-heading{color:var(--rpt-muted);font-size:var(--rpt-fs-meta);margin-bottom:var(--rpt-gap-sm)}.rpt-cover-note-body{font-size:var(--rpt-fs-body);white-space:pre-wrap;overflow-wrap:break-word}.rpt-breakdown{margin-top:var(--rpt-gap-lg)}.rpt-breakdown-head{text-align:center;border-bottom:var(--rpt-border-w) solid var(--rpt-line);padding-bottom:var(--rpt-gap-sm);margin-bottom:var(--rpt-gap-md);position:relative}.rpt-breakdown-no{left:0;bottom:var(--rpt-gap-sm);font-size:var(--rpt-fs-meta);color:var(--rpt-muted);white-space:nowrap;position:absolute}.rpt-breakdown-title{font-size:var(--rpt-fs-title);font-weight:var(--rpt-weight-bold)}.rpt-cat-table{table-layout:fixed;border-collapse:collapse;width:100%;font-size:var(--rpt-fs-item)}.rpt-cat-table th,.rpt-cat-table td{border:var(--rpt-border-w) solid var(--rpt-line);padding:var(--rpt-cell-y) var(--rpt-cell-x);overflow-wrap:break-word}.rpt-cat-table thead th{background:var(--rpt-mid-bg);font-weight:var(--rpt-weight-bold)}.rpt-cat-table .rpt-cat-c-no{width:var(--rpt-cat-col-no);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.rpt-cat-table .rpt-cat-c-label{width:var(--rpt-cat-col-label);text-align:left}.rpt-cat-table .rpt-cat-c-amount{width:var(--rpt-cat-col-amount);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.rpt-cat-table .rpt-col-num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.rpt-cat-table .rpt-cat-total td{background:var(--rpt-total-bg);font-weight:var(--rpt-weight-bold)}.rpt-option-block{margin-top:var(--rpt-gap-lg);border:var(--rpt-border-w) solid var(--rpt-option-border);background:var(--rpt-option-bg);padding:var(--rpt-gap-md)}.rpt-option-block__title{font-size:var(--rpt-fs-item);font-weight:var(--rpt-weight-bold);color:var(--rpt-option-ink);margin-bottom:var(--rpt-gap-sm)}.rpt-option-list{border-collapse:collapse;width:100%;font-size:var(--rpt-fs-item)}.rpt-option-list td{padding:var(--rpt-cell-y) var(--rpt-cell-x)}.rpt-major{font-size:var(--rpt-fs-major);font-weight:var(--rpt-weight-bold);text-align:left;min-height:var(--rpt-rh-major);margin:var(--rpt-gap-md) 0 var(--rpt-gap-sm);break-after:avoid}.rpt-screen .rpt-major{height:var(--rpt-rh-major);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.rpt-detail{border-collapse:collapse;table-layout:fixed;width:100%;font-size:var(--rpt-fs-item)}.rpt-detail thead{display:table-header-group}.rpt-detail thead th{height:var(--rpt-rh-colhead);background:var(--rpt-mid-bg);border:var(--rpt-border-w) solid var(--rpt-line);font-size:var(--rpt-fs-colhead);font-weight:var(--rpt-weight-bold);padding:var(--rpt-cell-y) var(--rpt-cell-x)}.rpt-detail td{border:var(--rpt-border-w) solid var(--rpt-line);padding:var(--rpt-cell-y) var(--rpt-cell-x);vertical-align:middle;overflow-wrap:break-word;word-break:break-word}.rpt-detail tr{break-inside:avoid}.rpt-detail .rpt-c-no{width:var(--rpt-col-no);text-align:center}.rpt-detail .rpt-c-name{width:var(--rpt-col-name);text-align:left;white-space:pre-line}.rpt-detail .rpt-c-spec{width:var(--rpt-col-spec);text-align:left;white-space:pre-line}.rpt-detail .rpt-c-qty{width:var(--rpt-col-qty);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.rpt-detail .rpt-c-unit{width:var(--rpt-col-unit);text-align:center;white-space:nowrap}.rpt-detail .rpt-c-price{width:var(--rpt-col-price);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.rpt-detail .rpt-c-amount{width:var(--rpt-col-amount);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.est-doc-root .rpt-detail thead th{text-align:center}.rpt-row-item td{height:var(--rpt-rh-item)}.rpt-row-text td{height:var(--rpt-rh-item);color:var(--rpt-ink)}.rpt-row-mid td{height:var(--rpt-rh-mid);background:var(--rpt-mid-bg);font-size:var(--rpt-fs-mid);font-weight:var(--rpt-weight-bold);break-after:avoid}.rpt-mid-label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.rpt-row-subtotal td{height:var(--rpt-rh-subtotal);font-weight:var(--rpt-weight-bold);break-before:avoid}.rpt-row-total td{height:var(--rpt-rh-total);background:var(--rpt-total-bg);font-size:var(--rpt-fs-total);font-weight:var(--rpt-weight-bold);break-before:avoid}.est-agg-label{text-align:center}.rpt-row-option td{height:var(--rpt-rh-option);background:var(--rpt-option-bg)}.rpt-row-option .rpt-c-no{color:var(--rpt-option-ink);font-weight:var(--rpt-weight-bold)}.est-row-option td{height:var(--rpt-rh-item)}.est-row-option .rpt-c-no{font-size:var(--rpt-fs-option-no);font-weight:var(--rpt-weight-normal);padding-left:var(--rpt-cell-x-tight);padding-right:var(--rpt-cell-x-tight);white-space:nowrap}.rpt-row-discount td{height:var(--rpt-rh-item)}.rpt-detail-footer{margin-top:var(--rpt-gap-md);font-size:var(--rpt-fs-meta);color:var(--rpt-muted)}.rpt-detail-page{box-sizing:border-box;width:var(--rpt-page-w);min-height:var(--rpt-page-h);padding:var(--rpt-page-margin);margin:0 auto var(--rpt-gap-lg);background:var(--rpt-paper);break-after:page;flex-direction:column;display:flex;position:relative}.rpt-detail-page:last-child{break-after:auto}.rpt-pagenum{padding-top:var(--rpt-gap-sm);text-align:right;font-size:var(--rpt-fs-meta);color:var(--rpt-muted);margin-top:auto}.rpt-measure{left:var(--rpt-offscreen);width:calc(var(--rpt-page-w) - 2 * var(--rpt-page-margin));visibility:hidden;pointer-events:none;position:absolute;top:0}.rpt-measure .rpt-detail-page{height:var(--rpt-page-h)}.rpt-probe-page{box-sizing:border-box;height:calc(var(--rpt-page-h) - 2 * var(--rpt-page-margin))}.rpt-grandtotal{margin-top:var(--rpt-gap-md);text-align:right;font-size:var(--rpt-fs-total);font-weight:var(--rpt-weight-bold);break-inside:avoid}.rpt-watermark{pointer-events:none;z-index:0;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:fixed;top:0;left:0}.rpt-watermark span{font-size:var(--rpt-fs-watermark);font-weight:var(--rpt-weight-bold);color:var(--rpt-watermark);letter-spacing:.2em;transform:rotate(-24deg)}.rpt-toolbar{align-items:center;gap:var(--rpt-gap-md);padding:var(--rpt-gap-md);background:var(--color-panel-bg);border-bottom:var(--border-width-base) solid var(--color-border);z-index:5;display:flex;position:sticky;top:0}.rpt-toolbar__spacer{flex:1}.rpt-alert{padding:var(--rpt-gap-md);font-size:var(--rpt-fs-body);color:var(--color-danger)}.rpt-screen{background:var(--color-readonly-bg);padding:var(--rpt-gap-lg) 0}.est-print-root{display:none}@media print{.rpt-toolbar,body.est-printing #root{display:none}body.est-printing .est-print-root{display:block}@page est-a4-landscape{size:A4 landscape;margin:var(--rpt-page-margin)}.est-doc-root .rpt-page,.est-doc-root .rpt-detail-page{page:est-a4-landscape}.rpt-screen{background:var(--rpt-paper);padding:0}.rpt-page,.rpt-detail-page{width:auto;min-height:auto;margin:0 auto;padding:0}.rpt-flow{width:auto;padding:0}.rpt-measure{display:none}}:root{--binv-col-type:15%;--binv-col-desc:45%;--binv-col-excl:13%;--binv-col-tax:13%;--binv-col-incl:14%}.binv-detail .binv-detail-c-type{width:var(--binv-col-type);text-align:left}.binv-detail .binv-detail-c-desc{width:var(--binv-col-desc);text-align:left}.binv-detail .binv-detail-c-excl{width:var(--binv-col-excl);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.binv-detail .binv-detail-c-tax{width:var(--binv-col-tax);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.binv-detail .binv-detail-c-incl{width:var(--binv-col-incl);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.binv-project-block{margin:0 0 var(--rpt-gap-lg)}.binv-project-title{font-size:var(--rpt-fs-mid);font-weight:var(--rpt-weight-bold);margin-bottom:var(--rpt-gap-sm)}.binv-cancel-note{margin:0 0 var(--rpt-gap-sm);font-size:var(--rpt-fs-meta);color:var(--color-danger)}.binv-toolbar-warning{padding:var(--space-input-padding-y) var(--space-input-padding-x);border:var(--border-width-base) solid var(--status-warning-border);background:var(--status-warning-bg);color:var(--color-warning);border-radius:var(--radius-input);font-size:var(--font-size-caption)}.binv-toolbar-warning--success{border-color:var(--status-success-border);background:var(--status-success-bg);color:var(--color-success)}.binv-print-root{display:none}@media print{.binv-toolbar-warning,body.binv-printing #root{display:none}body.binv-printing .binv-print-root{display:block}@page binv-a4-landscape{size:A4 landscape;margin:var(--rpt-page-margin)}.binv-doc-root .rpt-page{page:binv-a4-landscape}}.binv-attach{break-before:page;page-break-before:always;padding-top:8px}.binv-attach-title{margin-bottom:4px;font-size:15px;font-weight:700}.binv-attach-meta{margin-bottom:8px;font-size:11px}.binv-attach-note{font-size:12px}.binv-attach-toggle{cursor:pointer;align-items:center;gap:6px;margin-right:12px;font-size:13px;display:inline-flex}.binv-attach-table{table-layout:fixed;width:100%}.binv-attach-table .rpt-c-no{width:7%}.binv-attach-table .rpt-c-name{width:31%}.binv-attach-table .rpt-c-spec{width:20%}.binv-attach-table .rpt-c-qty{width:10%}.binv-attach-table .rpt-c-unit{width:6%}.binv-attach-table .rpt-c-price{width:12%}.binv-attach-table .rpt-c-amount{width:14%}.rcv-hint{color:var(--color-text-sub);margin-bottom:8px;font-size:11px}.rcv-completion-ref{color:var(--color-text-sub);flex-direction:column;gap:2px;font-size:11px;display:flex}.rcv-muted-sm{color:var(--color-text-sub);font-size:11px}.rcv-list-datestack{flex-direction:column;gap:8px;display:flex}.rcv-list-dateitem{font-size:var(--font-size-table);grid-template-columns:3.5em 1fr;align-items:center;column-gap:8px;display:grid}.rcv-list-datecol{flex-direction:column;gap:1px;display:flex}.rcv-list-itemtype{font-weight:var(--font-weight-medium);color:var(--color-text-main);white-space:nowrap}.rcv-list-datecell{padding:var(--space-table-cell-y) var(--space-table-cell-x);font-size:var(--font-size-table);color:var(--color-text-main);white-space:nowrap;vertical-align:top}.rcv-list-datecell-mid{vertical-align:middle}.rcv-list-date-planned{color:var(--color-text-sub)}.rcv-list-date-actual{color:var(--color-text-main)}.rcv-list-date-empty{color:var(--color-text-sub)}.rcv-list-check{font-size:calc(var(--font-size-caption) - 1px);font-weight:var(--font-weight-medium);color:var(--color-warning)}.rcv-list-unset{align-items:center;gap:4px;display:inline-flex}.rcv-row-menu-item:hover{background:var(--color-table-row-hover)}.payables-candidate-note{margin:0 0 var(--space-page-y);font-size:var(--font-size-caption);color:var(--color-text-sub)}.payables-readonly-amount{height:var(--height-input);padding:0 var(--space-input-padding-x);font-size:var(--font-size-base);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-input);background:var(--color-readonly-bg);color:var(--color-text-main);box-sizing:border-box;align-items:center;display:flex}.mt-month-nav{margin-bottom:var(--space-page-y);align-items:center;gap:8px;display:flex}.mt-month-nav button{height:var(--height-input);padding:0 var(--space-input-padding-x);font-size:var(--font-size-base);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-input);background:var(--color-panel-bg);color:var(--color-text-main);cursor:pointer}.mt-month-nav button:hover{border-color:var(--color-primary);color:var(--color-primary)}.mt-month-label{font-size:var(--font-size-section-title);font-weight:var(--font-weight-bold);color:var(--color-text-main);text-align:center;min-width:120px}.mt-summary{margin-bottom:var(--space-page-y);flex-wrap:wrap;gap:16px;display:flex}.mt-summary-card{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-panel-bg);box-shadow:var(--shadow-card);min-width:160px;padding:12px 20px}.mt-summary-card-label{font-size:var(--font-size-caption);color:var(--color-text-sub);margin-bottom:4px}.mt-summary-card-value{font-size:var(--font-size-section-title);font-weight:var(--font-weight-bold);color:var(--color-text-main)}.mt-summary-card-value.candidate{color:var(--color-primary)}.mt-summary-card-value.warning{color:var(--color-warning)}.mt-tabs{border-bottom:2px solid var(--color-border);gap:0;margin-bottom:24px;display:flex}.mt-tab{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-sub);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:8px 20px;transition:color .15s,border-color .15s}.mt-tab:hover{color:var(--color-primary)}.mt-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.mt-date-block{margin-bottom:32px}.mt-date-block-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.mt-date-block-title{font-size:var(--font-size-section-title);font-weight:var(--font-weight-bold);color:var(--color-text-main)}.mt-batch-btn{height:var(--height-input);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);border:var(--border-width-base) solid var(--color-primary);border-radius:var(--radius-input);background:var(--color-primary);color:#fff;cursor:pointer;padding:0 20px;transition:opacity .15s}.mt-batch-btn:hover{opacity:.85}.mt-batch-btn:disabled{opacity:.4;cursor:default}.mt-table-wrap{overflow-x:auto}.mt-table{border-collapse:collapse;width:100%;font-size:var(--font-size-table)}.mt-table th{padding:var(--space-table-cell-y) var(--space-table-cell-x);font-weight:var(--font-weight-bold);color:var(--table-header-text);background:var(--color-table-header-bg,#f5f5f5);text-align:left;white-space:nowrap;border-bottom:var(--border-width-base) solid var(--color-border)}.mt-table td{padding:var(--space-table-cell-y) var(--space-table-cell-x);color:var(--color-text-main);border-bottom:var(--border-width-base) solid var(--color-border);white-space:nowrap;vertical-align:middle}.mt-table tr.vendor-row{background:var(--color-panel-bg);font-weight:var(--font-weight-medium)}.mt-table tr.vendor-row:hover{background:var(--color-hover-bg,#f8f8f8)}.mt-table tr.payable-row{background:var(--color-bg,#fafafa)}.mt-table tr.payable-row td{font-size:calc(var(--font-size-table) - 1px);color:var(--color-text-sub);padding-left:calc(var(--space-table-cell-x) + 24px)}.mt-expand-btn{cursor:pointer;color:var(--color-text-sub);background:0 0;border:none;padding:0 4px;font-size:14px;line-height:1}.mt-expand-btn:hover{color:var(--color-primary)}.mt-amount{text-align:right;font-variant-numeric:tabular-nums}.mt-status-badge{font-size:calc(var(--font-size-caption) - 1px);font-weight:var(--font-weight-medium);border-radius:var(--radius-small,4px);border:var(--border-width-base) solid;white-space:nowrap;padding:1px 8px;display:inline-block}.mt-status-badge.candidate{border-color:var(--color-success);color:var(--color-success);background:var(--status-success-bg)}.mt-status-badge.blocked{border-color:var(--color-warning);color:var(--color-warning);background:var(--status-warning-bg)}.mt-status-badge.batched{border-color:var(--color-primary);color:var(--color-primary);background:var(--status-info-bg)}.mt-status-badge.cancelled{border-color:var(--color-disabled);color:var(--color-disabled);background:var(--status-disabled-bg)}.mt-status-badge.paid{border-color:var(--color-success);color:var(--color-success);background:var(--status-success-bg)}.mt-blocked-section{margin-top:8px}.mt-blocked-toggle{cursor:pointer;font-size:var(--font-size-base);color:var(--color-text-sub);background:0 0;border:none;align-items:center;gap:6px;padding:8px 0;display:flex}.mt-blocked-toggle:hover{color:var(--color-warning)}.mt-link-btn{cursor:pointer;font-size:var(--font-size-caption);color:var(--color-primary);white-space:nowrap;background:0 0;border:none;padding:0;text-decoration:underline}.mt-link-btn:hover{opacity:.75}.mt-modal-overlay{z-index:1000;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.mt-modal{background:var(--color-panel-bg);border-radius:var(--radius-card);box-shadow:var(--shadow-popover);width:90vw;max-width:600px;max-height:85vh;padding:28px 32px;overflow-y:auto}.mt-modal-title{font-size:var(--font-size-section-title);font-weight:var(--font-weight-bold);color:var(--color-text-main);margin:0 0 20px}.mt-modal-info-row{flex-wrap:wrap;gap:24px;margin-bottom:16px;display:flex}.mt-modal-info-item{flex-direction:column;gap:2px;display:flex}.mt-modal-info-label{font-size:var(--font-size-caption);color:var(--color-text-sub)}.mt-modal-info-value{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-main)}.mt-modal-info-value.large{font-size:var(--font-size-section-title);color:var(--color-primary)}.mt-modal-warn{border:var(--border-width-base) solid var(--color-warning);border-radius:var(--radius-input);background:var(--status-warning-bg);font-size:var(--font-size-caption);color:var(--color-warning);margin-bottom:20px;padding:12px 16px;line-height:1.6}.mt-modal-actions{justify-content:flex-end;gap:8px;margin-top:24px;display:flex}.mt-modal-actions button{height:var(--height-input);font-size:var(--font-size-base);border-radius:var(--radius-input);cursor:pointer;padding:0 20px}.mt-btn-cancel-modal{border:var(--border-width-base) solid var(--color-border);background:var(--color-panel-bg);color:var(--color-text-main)}.mt-btn-cancel-modal:hover{border-color:var(--color-text-sub)}.mt-btn-primary{border:var(--border-width-base) solid var(--color-primary);background:var(--color-primary);color:#fff;font-weight:var(--font-weight-medium)}.mt-btn-primary:hover{opacity:.85}.mt-btn-primary:disabled{opacity:.4;cursor:default}.mt-btn-danger{border:var(--border-width-base) solid var(--color-error,#e74c3c);background:var(--color-panel-bg);color:var(--color-error,#e74c3c)}.mt-btn-danger:hover{background:var(--color-error,#e74c3c);color:#fff}.mt-empty{text-align:center;color:var(--color-text-sub);font-size:var(--font-size-caption);padding:40px}.mt-batch-item-card{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);margin-bottom:12px;overflow:hidden}.mt-batch-item-header{background:var(--color-table-header-bg,#f5f5f5);cursor:pointer;align-items:center;gap:12px;padding:12px 16px;display:flex}.mt-batch-item-header:hover{background:var(--color-hover-bg,#efefef)}.mt-batch-item-body{padding:16px}.mt-vendor-item-card{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-input);margin-bottom:8px;overflow:hidden}.mt-vendor-item-header{background:var(--color-panel-bg);cursor:pointer;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.mt-vendor-item-header:hover{background:var(--color-hover-bg,#f8f8f8)}.mt-vendor-item-body{background:var(--color-bg,#fafafa);border-top:var(--border-width-base) solid var(--color-border);padding:12px}.mt-bank-info{font-size:var(--font-size-caption);color:var(--color-text-sub);margin-bottom:8px}.mt-source-list{margin:0;padding:0;list-style:none}.mt-source-item{font-size:var(--font-size-caption);border-bottom:var(--border-width-base) solid var(--color-border);justify-content:space-between;padding:4px 0;display:flex}.mt-source-item:last-child{border-bottom:none}.mt-vendor-block{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-input);margin-bottom:6px;overflow:hidden}.mt-vendor-row{background:var(--color-panel-bg);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:10px 14px;display:flex}.mt-vendor-row:hover{background:var(--color-hover-bg,#f8f8f8)}.mt-expand-icon{color:var(--color-text-sub);flex-shrink:0;width:16px;font-size:12px}.mt-vendor-name{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--color-text-main);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.mt-vendor-badges{flex-shrink:0;gap:6px;display:flex}.mt-vendor-amount{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--color-text-main);font-variant-numeric:tabular-nums;text-align:right;flex-shrink:0;min-width:100px}.mt-vendor-children{border-top:var(--border-width-base) solid var(--color-border);background:var(--color-bg,#fafafa)}.mt-payable-row{border-bottom:var(--border-width-base) solid var(--color-border);font-size:calc(var(--font-size-table) - 1px);align-items:center;gap:8px;padding:7px 14px 7px 36px;display:flex}.mt-payable-row:last-child{border-bottom:none}.mt-payable-row.confirmed{background:var(--status-info-bg,#f0f5ff)}.mt-payable-check{flex-shrink:0;align-items:center;width:20px;display:flex}.mt-payable-name{color:var(--color-text-main);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.mt-payable-amount{font-variant-numeric:tabular-nums;text-align:right;min-width:90px;color:var(--color-text-main)}.mt-payable-status{flex-shrink:0;justify-content:flex-end;align-items:center;gap:4px;min-width:160px;display:flex}.mt-status-badge.unconfirmed{border-color:var(--color-text-sub);color:var(--color-text-sub);background:0 0}.mt-selection-bar{background:var(--color-primary);color:#fff;border-radius:var(--radius-input);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);justify-content:space-between;align-items:center;gap:16px;margin-top:16px;padding:10px 20px;display:flex;position:sticky;bottom:16px;box-shadow:0 4px 12px #00000026}.doc-date-field{gap:var(--space-input-padding-y);flex-direction:column;display:inline-flex}.doc-date-field__label{align-items:center;gap:var(--space-input-padding-y);font-size:var(--font-size-caption);color:var(--color-text-sub);display:inline-flex}.doc-date-field__required{color:var(--color-danger)}.doc-date-field__input{height:var(--height-input);padding:0 var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-input);background:var(--color-panel-bg);color:var(--color-text)}.doc-date-field__input--empty-required{border-color:var(--color-danger)}.doc-date-field__input:disabled{color:var(--color-text-sub)}.doc-date-field__error{font-size:var(--font-size-caption);color:var(--color-danger)}.doc-date-field--emphasis .doc-date-field__label{font-size:var(--font-size-label);font-weight:var(--font-weight-semibold);color:var(--color-text-main)}.doc-date-field--emphasis .doc-date-field__input{font-size:var(--font-size-button);font-weight:var(--font-weight-medium)}.od-section{margin-top:12px}.od-section-title{font-size:var(--font-size-caption);font-weight:var(--font-weight-bold);color:var(--color-text-main);margin:0 0 4px}.od-completion-status{align-items:center;gap:var(--space-button-gap);display:flex}.od-completion-status__label{color:var(--color-success);font-weight:var(--font-weight-medium);font-size:var(--font-size-caption);white-space:nowrap}.od-completion-hint{color:var(--color-warning);font-size:var(--font-size-caption);margin:4px 0}.od-stats{font-size:var(--font-size-caption);color:var(--color-text-main);flex-wrap:wrap;align-items:baseline;gap:2px 16px;margin:6px 0;display:flex}.od-stats b{font-family:var(--font-family-number);font-variant-numeric:tabular-nums;font-weight:var(--font-weight-semibold)}.od-table-scroll{border:var(--border-width-base) solid var(--table-border-color);overflow:auto}.od-table-scroll--upper{max-height:240px}.od-table-scroll--lower{max-height:58vh}.od-table-scroll .est-agg-table{min-width:1600px}.od-table-scroll--upper .est-agg-table{min-width:1400px}.od-table-scroll{--od-group-head-h:26px}.od-table-scroll thead th{z-index:1;position:sticky;top:0}.od-table-scroll thead tr:nth-child(2) th{top:var(--od-group-head-h)}.est-agg-table th.od-th-group{height:var(--od-group-head-h);box-sizing:border-box;text-align:center;vertical-align:middle;font-weight:var(--font-weight-bold);border-bottom:calc(var(--border-width-base) * 2) solid var(--color-text-sub);padding-left:0;padding-right:0}.od-row--clickable{cursor:pointer}.od-row--selected td{background:var(--color-editable-bg)}.od-row--structure td{background:var(--color-readonly-bg);font-weight:var(--font-weight-semibold)}.od-cell--indent-1{padding-left:calc(var(--space-table-cell-x) * 3)}.od-cell--indent-2{padding-left:calc(var(--space-table-cell-x) * 5)}.od-row--text td{color:var(--color-text-sub)}.est-agg-table td.od-cell--range{box-shadow:var(--grid-sel-range-shadow)}.est-agg-table td.od-cell--anchor{box-shadow:var(--grid-sel-anchor-shadow)}.od-rowmenu-cell{white-space:nowrap;width:1%}.est-agg-table td.od-cell--estcopy{cursor:cell}.od-rowmenu-cell--draggable{cursor:grab}.est-agg-table tr.od-row--dragging td{background:var(--color-readonly-bg)}.est-agg-table tr.od-drop-before td{box-shadow:var(--grid-drop-before-shadow)}.est-agg-table tr.od-drop-after td{box-shadow:var(--grid-drop-after-shadow)}.od-dirty-note{color:var(--color-text-sub);font-size:var(--font-size-caption);white-space:nowrap;align-self:center}.od-dirty-dot{color:var(--color-danger)}.od-text-vendor-remove:disabled{color:var(--color-disabled);cursor:default}.od-row--special td,.od-row--hidden td{background:var(--color-readonly-bg)}.est-agg-table tr.od-row--picked td{background:var(--color-editable-bg)}.od-filter-btn:disabled{background:var(--color-page-bg);color:var(--color-disabled);border-color:var(--color-border);cursor:not-allowed}.od-vsep{border-left:var(--border-width-base) solid var(--color-border);align-self:stretch;margin:0 4px}.od-flex-spacer{margin-left:auto}.od-colgroup-label{font-size:var(--font-size-xs);color:var(--color-text-main)}.od-toggle-btn{font-size:var(--font-size-xs);color:var(--color-text-main);background:var(--color-editable-bg);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-input);cursor:pointer;white-space:nowrap;padding:2px 8px}.od-toggle-btn[aria-pressed=true]{background:color-mix(in srgb, var(--color-primary) 12%, var(--color-editable-bg));border-color:var(--color-primary);color:var(--color-text-main);font-weight:var(--font-weight-semibold)}.od-toggle-btn:disabled{background:var(--color-page-bg);color:var(--color-disabled);border-color:var(--color-border);font-weight:var(--font-weight-semibold);cursor:not-allowed}.est-agg-table th.od-group-start,.est-agg-table td.od-group-start{border-left:calc(var(--border-width-base) * 3) solid var(--color-text-sub)}.est-agg-table td.od-cell--ro{background:var(--grid-readonly-bg);color:var(--grid-readonly-text);cursor:not-allowed}.est-agg-table td.od-cell--edit{background:var(--color-editable-bg);cursor:cell}.est-agg-table td.od-cell--anchor{position:relative}.od-cell-trap{box-sizing:border-box;width:100%;height:100%;padding:5px var(--space-table-cell-x);color:#0000;caret-color:#0000;font:inherit;pointer-events:none;background:0 0;border:none;border-radius:0;outline:none;position:absolute;inset:0}.od-cell-trap--editing{pointer-events:auto;background:var(--color-editable-bg);color:var(--color-text-main);caret-color:auto;outline:var(--border-width-strong) solid var(--input-focus-border-color);outline-offset:calc(-1 * var(--border-width-strong))}.od-cell-trap:not(.od-cell-trap--editing)::selection{color:#0000;background:0 0}.od-cell-select{max-width:14em;font-size:var(--font-size-table);color:inherit;border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-input);background:var(--color-readonly-bg);font-family:inherit}.od-grid-select{box-sizing:border-box;width:100%;max-width:100%;font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;border-radius:0;display:block}.od-grid-select:focus{outline:var(--border-width-strong) solid var(--input-focus-border-color);outline-offset:calc(-1 * var(--border-width-strong))}.od-confirm{white-space:nowrap;cursor:pointer;align-items:center;gap:4px;display:inline-flex}.od-filterbar{font-size:var(--font-size-xs);color:var(--color-text-main);flex-wrap:wrap;align-items:center;gap:4px;margin:6px 0;display:flex}.od-filter-btn{font-size:var(--font-size-xs);color:var(--color-text-main);background:var(--color-editable-bg);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-input);cursor:pointer;white-space:nowrap;padding:2px 8px}.od-filter-btn[aria-pressed=true]{background:var(--color-table-header-bg);color:var(--table-header-text);border-color:var(--table-border-color)}.od-row--history td{background:var(--color-readonly-bg);padding:4px 8px}.od-history-table{border-collapse:collapse;width:100%;font-size:var(--font-size-xs)}.od-history-table th,.od-history-table td{border:var(--border-width-base) solid var(--color-border);padding:2px 8px}.od-history-table thead th{background:var(--color-table-header-bg);color:var(--table-header-text);font-weight:var(--font-weight-semibold)}.od-history-row--cancelled td,.od-history-row--cancelled .od-filter-btn{color:color-mix(in srgb, var(--color-danger) 55%, var(--color-panel-bg))}.opc-action-bar{align-items:center;gap:var(--space-button-gap);flex-wrap:wrap;display:flex}.opc-action-bar__center{flex:auto;justify-content:center;min-width:0;display:flex}.od-order-hint,.od-order-btn{margin-left:var(--space-page-x)}.od-order-hint{color:var(--color-text-sub);white-space:nowrap}.od-order-btn{font-size:var(--font-size-button);font-weight:var(--font-weight-semibold);color:var(--button-primary-text);background:var(--color-primary);border:var(--border-width-base) solid var(--color-primary);border-radius:var(--radius-button);padding:var(--space-input-padding-y) var(--space-header-padding-x);cursor:pointer;white-space:nowrap}.od-order-btn:disabled{background:var(--color-page-bg);color:var(--color-disabled);border-color:var(--color-border);cursor:not-allowed}:root{--spc-page-w:297mm;--spc-page-h:210mm;--spc-page-margin:10mm;--spc-font:"Yu Gothic", "Hiragino Kaku Gothic ProN", "Noto Sans JP", meiryo, sans-serif;--spc-fs-title:18pt;--spc-fs-meta:10pt;--spc-fs-colhead:10pt;--spc-fs-item:10pt;--spc-fs-major:11pt;--spc-fs-mid:10pt;--spc-line-height:1.4;--spc-weight-normal:400;--spc-weight-bold:700;--spc-paper:#fff;--spc-ink:#111;--spc-muted:#555;--spc-line:#666;--spc-head-bg:#ededed;--spc-major-bg:#e3e3e3;--spc-mid-bg:#f4f4f4;--spc-gap-sm:4pt;--spc-gap-md:8pt;--spc-gap-lg:16pt;--spc-cell-x:5pt;--spc-cell-y:3pt;--spc-border-w:1px;--spc-indent-1:1em;--spc-indent-2:2em;--spc-col-no:calc(3em + var(--spc-cell-x) * 2);--spc-col-name:22%;--spc-col-spec:26%;--spc-col-color:18%;--spc-col-qty:7ch;--spc-col-unit:calc(2.5em + var(--spc-cell-x) * 2);--spc-meta-label-w:6em}.spc-screen{background:var(--color-readonly-bg);padding:var(--spc-gap-lg) 0}.spc-alert{max-width:var(--spc-page-w);padding:var(--spc-gap-md);font-family:var(--spc-font);color:var(--spc-ink);margin:0 auto}.spc-device-actions{padding:0 var(--spc-gap-md) var(--spc-gap-md);justify-content:center;display:flex}.spc-doc-root{font-family:var(--spc-font);color:var(--spc-ink);line-height:var(--spc-line-height)}.spc-page{box-sizing:border-box;width:var(--spc-page-w);min-height:var(--spc-page-h);padding:var(--spc-page-margin);background:var(--spc-paper);margin:0 auto}.spc-title{margin:0 0 var(--spc-gap-md);font-size:var(--spc-fs-title);font-weight:var(--spc-weight-bold);text-align:center;letter-spacing:.3em}.spc-meta{margin:0 0 var(--spc-gap-lg);font-size:var(--spc-fs-meta);padding:0}.spc-meta-row{gap:var(--spc-gap-sm);margin:0 0 var(--spc-gap-sm);display:flex}.spc-meta-label{flex:0 0 var(--spc-meta-label-w);color:var(--spc-muted);margin:0}.spc-meta-value{border-bottom:var(--spc-border-w) solid var(--spc-line);word-break:break-all;flex:auto;margin:0}.spc-table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:var(--spc-fs-item)}.spc-table thead{display:table-header-group}.spc-table tr{break-inside:avoid}.spc-col--no{width:var(--spc-col-no)}.spc-col--name{width:var(--spc-col-name)}.spc-col--spec{width:var(--spc-col-spec)}.spc-col--color{width:var(--spc-col-color)}.spc-col--qty{width:var(--spc-col-qty)}.spc-col--unit{width:var(--spc-col-unit)}.spc-cell{padding:var(--spc-cell-y) var(--spc-cell-x);border:var(--spc-border-w) solid var(--spc-line);vertical-align:top;text-align:left;white-space:pre-wrap;word-break:break-all}.spc-row--head .spc-cell{background:var(--spc-head-bg);font-size:var(--spc-fs-colhead);font-weight:var(--spc-weight-bold);text-align:center;white-space:nowrap}.spc-cell--no{text-align:center}.spc-cell--qty{text-align:right}.spc-cell--unit{text-align:center}.spc-row--major .spc-cell{background:var(--spc-major-bg);font-size:var(--spc-fs-major);font-weight:var(--spc-weight-bold)}.spc-row--mid .spc-cell{background:var(--spc-mid-bg);font-size:var(--spc-fs-mid);font-weight:var(--spc-weight-bold)}.spc-indent-1{padding-left:calc(var(--spc-cell-x) + var(--spc-indent-1))}.spc-indent-2{padding-left:calc(var(--spc-cell-x) + var(--spc-indent-2))}.spc-cell--empty{text-align:center;color:var(--spc-muted)}.spc-print-root{display:none}@media print{.spc-device-actions,body.spc-printing #root{display:none}body.spc-printing .spc-print-root{display:block}@page spc-a4-landscape{size:A4 landscape;margin:var(--spc-page-margin)}.spc-doc-root .spc-page{page:spc-a4-landscape;width:auto;min-height:auto;margin:0;padding:0}.spc-screen{background:var(--spc-paper);padding:0}}.roof-page{flex-direction:column;min-height:0;display:flex}.roof-switch{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-small);margin-left:auto;display:inline-flex;overflow:hidden}.roof-switch-btn{height:var(--height-button-small);padding:0 var(--space-input-padding-x);background:var(--color-panel-bg);color:var(--color-text-main);font-size:var(--font-size-caption);cursor:pointer;border:0}.roof-switch-btn--active{background:var(--status-primary-strong-bg);color:var(--status-primary-strong-text);cursor:default}.roof-tabs{gap:var(--space-form-gap);margin:var(--space-form-gap) 0;border-bottom:var(--border-width-base) solid var(--color-border);display:flex}.roof-tab{align-items:center;gap:var(--space-form-gap);padding:var(--space-input-padding-y) var(--space-input-padding-x);border:var(--border-width-base) solid transparent;border-radius:var(--radius-small) var(--radius-small) 0 0;color:var(--color-text-sub);font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);cursor:pointer;background:0 0;border-bottom:0;display:inline-flex}.roof-tab--active{border-color:var(--color-border);background:var(--color-panel-bg);color:var(--color-text-main);font-weight:var(--font-weight-semibold)}.roof-tab-status{font-weight:var(--font-weight-bold)}.roof-tab--ok .roof-tab-status{color:var(--color-success)}.roof-tab--warn .roof-tab-status{color:var(--color-warning)}.roof-tab--error .roof-tab-status{color:var(--color-danger)}.roof-body{gap:var(--space-card-gap);flex:1;min-height:0;display:flex}.roof-center{gap:var(--space-form-gap);flex-direction:column;flex:1;min-width:0;min-height:560px;display:flex}.roof-side{gap:var(--space-card-gap);flex-direction:column;flex:none;width:400px;display:flex;overflow:auto}.roof-substage{align-items:center;gap:var(--space-form-gap);padding-bottom:var(--space-form-gap);border-bottom:var(--border-width-base) solid var(--color-border);flex-wrap:wrap;display:flex}.roof-substage-label{margin-left:var(--space-form-gap);font-size:var(--font-size-xs);color:var(--color-text-sub)}.roof-page--a .roof-side{align-self:flex-start;min-height:0;max-height:clamp(560px,100vh - 330px,1400px);position:sticky;top:0;overflow-y:auto}.roof-page--a .roof-body:has(>.roof-center>.roof-editor-main){flex:none;height:100dvh}.roof-page--a .roof-body:has(>.roof-center>.roof-editor-main)>.roof-center{min-height:0}.roof-page--a .roof-center>.roof-editor-main{flex:1}.roof-page--a .roof-editor-main>.roof-canvas.takeoff-editor-stage{height:auto}.roof-page--a .roof-body:has(>.roof-center>.roof-editor-main)>.roof-side{align-self:stretch;max-height:none}.roof-page--a .roof-panel>.roof-panel-section+.roof-panel-section{border-top:var(--border-width-base) solid var(--color-border);padding-top:var(--space-form-gap)}.roof-page--b .roof-body{flex:none;height:100dvh;min-height:0}.roof-page--b .roof-center{min-height:0}.roof-page--b .roof-center>.roof-editor-main{flex:1}.roof-page--b .roof-editor-main>.roof-canvas.takeoff-editor-stage{height:auto}.roof-page--b .roof-side{min-height:0;overflow-y:auto}.roof-side-sticky{z-index:1;align-items:baseline;gap:var(--space-form-gap);margin:calc(-1 * var(--space-card-gap)) calc(-1 * var(--space-card-gap)) 0;padding:var(--space-form-gap) var(--space-card-gap);border-bottom:var(--border-width-base) solid var(--color-border);background:var(--color-panel-bg);flex-wrap:wrap;display:flex;position:sticky;top:0}.roof-side-stage{font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);color:var(--color-primary)}.roof-panel--b>.roof-panel-section+.roof-panel-section,.roof-panel--b>.roof-panel-section+.roof-panel-details,.roof-panel--b>.roof-panel-details+.roof-panel-section{border-top:var(--border-width-base) solid var(--color-border);padding-top:var(--space-form-gap)}.roof-panel-section--save{font-size:var(--font-size-xs)}.roof-canvas{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-readonly-bg);touch-action:none;-webkit-user-select:none;user-select:none;outline:none;flex:1;min-height:480px;position:relative;overflow:hidden}.roof-canvas--draw{cursor:crosshair}.roof-canvas--edit{cursor:default}.roof-canvas--pick{cursor:crosshair}.roof-canvas--view{cursor:grab}.roof-canvas-image{transform-origin:0 0;pointer-events:none;max-width:none;position:absolute;top:0;left:0}.roof-canvas-svg{pointer-events:none;position:absolute;top:0;left:0}.roof-canvas-empty{padding:var(--space-card-gap);color:var(--color-text-sub);font-size:var(--font-size-caption);text-align:center;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.roof-canvas-tools{left:var(--space-form-gap);bottom:var(--space-form-gap);align-items:center;gap:var(--space-form-gap);padding:var(--space-input-padding-y) var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-small);background:var(--color-panel-bg);font-size:var(--font-size-xs);color:var(--color-text-sub);display:flex;position:absolute}.roof-canvas-tool,.roof-mini-btn{height:var(--height-button-small);padding:0 var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-small);background:var(--color-panel-bg);color:var(--color-text-main);font-size:var(--font-size-xs);cursor:pointer}.roof-mini-btn--active{background:var(--status-primary-strong-bg);color:var(--status-primary-strong-text);border-color:var(--status-primary-strong-bg)}.roof-mini-btn:disabled{color:var(--button-disabled-text);background:var(--button-disabled-bg);cursor:default}.roof-outline{fill:var(--color-primary);fill-opacity:.08;stroke:none}.roof-edge{stroke:var(--color-primary);stroke-width:2px;vector-effect:non-scaling-stroke}.roof-edge--chain{stroke:var(--color-info)}.roof-edge--estimate{stroke:var(--color-warning);stroke-dasharray:6 4}.roof-edge--none{stroke:var(--color-warning);stroke-dasharray:2 4}.roof-edge--error{stroke:var(--color-danger)}.roof-edge--selected{stroke:var(--color-selected);stroke-width:4px}.roof-dim-line{stroke:var(--takeoff-dim-leader);stroke-opacity:.75;fill:none}.roof-dim-line--selected{stroke:var(--color-selected);stroke-opacity:1}.roof-dim-arrow{stroke:var(--takeoff-dim-leader);stroke-opacity:.75;stroke-linejoin:round;stroke-linecap:round;fill:none}.roof-dim-arrow--filled{fill:var(--takeoff-dim-leader);fill-opacity:.75}.roof-dim-arrow--selected{stroke:var(--color-selected);stroke-opacity:1}.roof-dim-arrow--filled.roof-dim-arrow--selected{fill:var(--color-selected);fill-opacity:1}.roof-dim-ext{stroke:var(--takeoff-dim-leader);stroke-opacity:.55;fill:none}.roof-edge-badge{fill:var(--color-panel-bg);stroke:var(--status-warning-strong)}.roof-edge-badge--selected{fill:var(--status-warning-bg);stroke:var(--color-selected)}.roof-edge-badge-text{fill:var(--status-warning-strong);font-weight:var(--font-weight-bold);pointer-events:none}.roof-edge-label{fill:var(--takeoff-text-dimension);font-weight:var(--font-weight-semibold);paint-order:stroke;stroke:var(--color-panel-bg);stroke-linejoin:round;pointer-events:none}.roof-edge-label--estimate,.roof-edge-label--none{fill:var(--status-warning-strong)}.roof-edge-label--chain{fill:var(--color-info)}.roof-edge-label--error{fill:var(--color-danger)}.roof-vertex{fill:var(--color-panel-bg);stroke:var(--color-primary);stroke-width:2px;vector-effect:non-scaling-stroke}.roof-vertex--selected{fill:var(--color-selected);stroke:var(--color-selected)}.roof-draft{fill:none;stroke:var(--color-primary);stroke-width:2px;stroke-dasharray:6 4;vector-effect:non-scaling-stroke}.roof-draft-point{fill:var(--color-primary)}.roof-snap-guide{stroke:var(--color-alignment-guide);stroke-width:1px;stroke-dasharray:4 4;vector-effect:non-scaling-stroke}.roof-snap-marker{fill:none;stroke:var(--color-alignment-guide);stroke-width:2px;vector-effect:non-scaling-stroke}.roof-overlay--base{fill:var(--color-primary);fill-opacity:.12;stroke:var(--color-primary);stroke-width:2px;vector-effect:non-scaling-stroke}.roof-overlay--upper{fill:var(--takeoff-sem-scaffold);fill-opacity:.3;stroke:var(--takeoff-sem-scaffold-selected);stroke-width:2px;vector-effect:non-scaling-stroke}.roof-pick-target{fill:var(--color-panel-bg);stroke-width:2px;vector-effect:non-scaling-stroke;pointer-events:none}.roof-pick-target--base{stroke:var(--color-primary)}.roof-pick-target--upper{stroke:var(--takeoff-sem-scaffold-selected)}.roof-pick-target--hover{fill:var(--color-alignment-guide)}.roof-picked{fill:none;stroke:var(--color-alignment-guide);stroke-width:3px;vector-effect:non-scaling-stroke}.roof-size-label{fill:var(--color-info);font-weight:var(--font-weight-semibold);paint-order:stroke;stroke:var(--color-panel-bg);stroke-linejoin:round;pointer-events:none}.roof-canvas--definition .takeoff-editor-entity.roof-role--cface{fill:var(--takeoff-roof-face);fill-opacity:var(--takeoff-roof-face-opacity);stroke:none}.roof-canvas--definition .takeoff-editor-entity.roof-role--cface.takeoff-editor-entity--selected{fill-opacity:min(1, calc(var(--takeoff-roof-face-opacity) + var(--roof-face-selected-boost)));stroke:none}.roof-canvas--definition .takeoff-editor-entity-line.roof-role--cguide{stroke:var(--color-info);stroke-width:1.5px;stroke-dasharray:6 4;stroke-opacity:.9;fill:none}.roof-canvas--definition .takeoff-editor-entity-line.roof-role--cguide.takeoff-editor-entity-line--selected{stroke-width:3px}.roof-canvas--definition .takeoff-editor-entity-line.roof-role--cguide-hidden,.roof-canvas--definition .takeoff-editor-entity.roof-role--cguide-hidden{visibility:hidden;pointer-events:none}.roof-canvas--definition .takeoff-editor-entity-line.roof-role--layout-line.roof-cedge{stroke-width:2px}.roof-canvas--definition .takeoff-editor-entity-line.roof-role--layout-line.roof-cedge.roof-cedge--shared{stroke-width:3px}.roof-canvas--definition .takeoff-editor-entity-line.roof-role--layout-line.roof-cedge.roof-line--unknown{stroke:var(--status-warning-strong);stroke-dasharray:4 3}.roof-canvas--definition .takeoff-editor-entity-line.roof-role--layout-line.roof-cedge.roof-line--eave{stroke:var(--takeoff-roof-eave)}.roof-canvas--definition .takeoff-editor-entity-line.roof-role--layout-line.roof-cedge.roof-line--verge{stroke:var(--takeoff-roof-verge)}.roof-canvas--definition .takeoff-editor-entity-line.roof-role--layout-line.roof-cedge.roof-line--wall_h{stroke:var(--takeoff-roof-wall-h)}.roof-canvas--definition .takeoff-editor-entity-line.roof-role--layout-line.roof-cedge.roof-line--wall_s{stroke:var(--takeoff-roof-wall-s)}.roof-canvas--layout .takeoff-editor-entity.roof-role--roof:not(.takeoff-editor-entity--selected):not(.roof-role--other-roof){stroke-width:var(--roof-layer-plane-width)}.roof-canvas--definition.roof-canvas--layout .takeoff-editor-entity.roof-role--roof:not(.takeoff-editor-entity--selected){fill:none}.roof-canvas--definition .takeoff-editor-entity-line.roof-role--layout-line.roof-cedge.roof-cedge--selected{stroke:var(--color-danger);stroke-width:var(--roof-selected-line-width);stroke-dasharray:none}.roof-guide-layer{pointer-events:none}.roof-guide-point{cursor:pointer;pointer-events:all}.roof-guide-point-hit{fill:#0000;stroke:none}.roof-guide-point-dot{fill:var(--color-panel-bg);stroke:var(--color-info);stroke-width:2px;vector-effect:non-scaling-stroke}.roof-guide-point-cross{stroke:var(--color-info);stroke-width:1px;vector-effect:non-scaling-stroke;pointer-events:none}.roof-guide-point--selected .roof-guide-point-dot{stroke:var(--color-danger);stroke-width:3px}.roof-candidate-line--base{stroke:var(--color-primary);stroke-width:var(--roof-selected-line-width);stroke-dasharray:none;opacity:1}.roof-candidate-line--partner{stroke:var(--status-warning-strong);stroke-width:var(--roof-selected-line-width);stroke-dasharray:none;opacity:1}.roof-cshare-btn--shared{background:var(--status-primary-bg);border-color:var(--color-primary);color:var(--color-primary)}.roof-cshare-btn--recheck{border-color:var(--status-warning-strong);color:var(--status-warning-strong)}.roof-cshare-popup{z-index:20;border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-small);background:var(--color-panel-bg);width:340px;max-width:calc(100vw - 16px);box-shadow:var(--shadow-popover,0 2px 8px #0003);font-size:var(--font-size-caption);position:fixed}.roof-cshare-popup-title{padding:var(--space-input-padding-y) var(--space-input-padding-x);border-bottom:var(--border-width-base) solid var(--color-border);background:var(--status-primary-bg);font-weight:var(--font-weight-bold);cursor:move;-webkit-user-select:none;user-select:none;touch-action:none;justify-content:space-between;align-items:center;display:flex}.roof-cshare-popup-close{cursor:pointer;color:var(--color-text-sub);background:0 0;border:none}.roof-cshare-popup-body{gap:var(--space-input-padding-y);padding:var(--space-input-padding-y) var(--space-input-padding-x);flex-direction:column;display:flex}.roof-cshare-row{align-items:center;gap:var(--space-form-gap);grid-template-columns:auto 1fr;display:grid}.roof-cshare-match{flex-direction:column;gap:2px;display:flex}.roof-cshare-warn{color:var(--status-warning-strong)}.roof-cshare-warn--danger{color:var(--color-danger);font-weight:var(--font-weight-bold)}.roof-cshare-adopt{padding:var(--space-input-padding-y) var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-small);flex-direction:column;gap:2px;margin:0;display:flex}.roof-cface-list,.roof-cface-edges{gap:var(--space-input-padding-y);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.roof-cface-item{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-small);padding:var(--space-input-padding-y)}.roof-cface-item--selected{box-shadow:inset var(--border-width-strong) 0 0 var(--color-primary);background:var(--status-primary-bg)}.roof-cface-view{margin-bottom:var(--space-xs,4px)}.roof-cface-head--static{cursor:default}.roof-cface-item--unknown .roof-cface-name{color:var(--color-warning,#d48806)}.roof-cface-head,.roof-cface-edge-head{cursor:pointer;text-align:left;background:0 0;border:none;flex-direction:column;align-items:flex-start;width:100%;padding:0;display:flex}.roof-cface-name{font-weight:var(--font-weight-bold)}.roof-cface-body{margin-top:var(--space-input-padding-y);gap:var(--space-input-padding-y);flex-direction:column;display:flex}.roof-cface-edge{align-items:center;gap:var(--space-form-gap);padding:0 var(--space-input-padding-y);grid-template-columns:auto auto auto 1fr;display:grid}.roof-cface-edge-len{white-space:nowrap}.roof-cface-edge-kind{align-items:center;gap:var(--space-input-padding-y);min-width:0;display:flex}.roof-cface-edge-kind .roof-edge-input{flex:auto;min-width:0}.roof-cface-kind-auto{white-space:nowrap;color:var(--color-info)}.roof-cface-downhill{flex-wrap:wrap;align-items:center}.roof-downhill-layer{pointer-events:none}.roof-downhill--interactive{pointer-events:auto;cursor:pointer}.roof-downhill-hit{stroke:#0000;stroke-width:16px;vector-effect:non-scaling-stroke}.roof-downhill-shaft,.roof-downhill-head{stroke:var(--color-primary);stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.roof-downhill-head{fill:none}.roof-downhill--manual .roof-downhill-shaft,.roof-downhill--manual .roof-downhill-head{stroke:var(--color-info)}.roof-downhill-choice .roof-downhill-shaft,.roof-downhill-choice .roof-downhill-head{stroke:var(--status-warning-strong);opacity:.75}.roof-downhill-choice--current .roof-downhill-shaft,.roof-downhill-choice--current .roof-downhill-head{stroke:var(--color-info);opacity:1}.roof-downhill--interactive:hover .roof-downhill-shaft,.roof-downhill--interactive:hover .roof-downhill-head{opacity:1;stroke-width:3.5px}.roof-downhill-note{fill:var(--color-text-sub);paint-order:stroke;stroke:var(--color-page-bg);vector-effect:non-scaling-stroke;text-anchor:middle;dominant-baseline:central;pointer-events:none}.roof-downhill-close circle{fill:var(--color-panel-bg);stroke:var(--color-border);vector-effect:non-scaling-stroke}.roof-downhill-close text{fill:var(--color-text-sub);text-anchor:middle;dominant-baseline:central}.roof-quantity-partial{font-size:var(--font-size-caption);color:var(--color-text-sub);display:block}.roof-quantity-lines{margin-top:var(--space-input-padding-y)}.roof-cface-edge--selected{box-shadow:inset var(--border-width-strong) 0 0 var(--color-danger)}.roof-cface-edge--shared .roof-cface-edge-head{font-weight:var(--font-weight-semibold)}.roof-cface-kind--unknown{color:var(--status-warning-strong)}.roof-side-label{fill:var(--takeoff-text-label);font-weight:var(--font-weight-bold);paint-order:stroke;stroke:var(--color-panel-bg);stroke-width:4px;stroke-linejoin:round}.roof-gate,.roof-panel{gap:var(--space-form-gap);padding:var(--space-card-gap);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-panel-bg);flex-direction:column;display:flex}.roof-gate-head{align-items:center;gap:var(--space-form-gap);flex-wrap:wrap;display:flex}.roof-gate-state{font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);color:var(--status-warning-strong)}.roof-gate-state--ready{color:var(--color-primary)}.roof-gate-state--done{color:var(--color-success)}.roof-save-status{font-size:var(--font-size-xs);color:var(--color-text-sub);margin-left:auto}.roof-save-status--failed{color:var(--color-danger)}.roof-panel-section{gap:var(--space-form-gap);flex-direction:column;display:flex}.roof-panel-title{font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);color:var(--color-text-main);margin:0}.roof-panel-note{font-size:var(--font-size-xs);color:var(--color-text-sub);margin:0}.roof-panel-note--warn{color:var(--status-warning-strong)}.roof-panel-note--ok{color:var(--color-success)}.roof-panel-note--strong{color:var(--color-text-main);font-weight:var(--font-weight-semibold)}.roof-panel-row{gap:var(--space-form-gap);flex-wrap:wrap;align-items:center;display:flex}.roof-panel-grid2{gap:var(--space-form-gap);grid-template-columns:1fr 1fr;display:grid}.roof-field{font-size:var(--font-size-xs);color:var(--color-text-sub);flex-direction:column;gap:2px;display:flex}.roof-field--inline{align-items:center;gap:var(--space-form-gap);flex-direction:row}.roof-input{height:var(--height-button-small);padding:0 var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-small);background:var(--color-editable-bg);color:var(--color-text-main);font-size:var(--font-size-caption);min-width:0}.roof-input--short{width:56px}.roof-radio{font-size:var(--font-size-xs);color:var(--color-text-main);align-items:center;gap:4px;display:inline-flex}.roof-details summary{font-size:var(--font-size-xs);color:var(--color-text-sub);cursor:pointer}.roof-edge-table{border-collapse:collapse;width:100%;font-size:var(--font-size-xs)}.roof-edge-table th,.roof-edge-table td{padding:var(--space-input-padding-y) var(--space-form-gap);border-bottom:var(--border-width-base) solid var(--color-border);text-align:left;white-space:nowrap}.roof-edge-table th{background:var(--color-table-header-bg);color:var(--color-text-sub);font-weight:var(--font-weight-medium)}.roof-edge-row{cursor:pointer}.roof-edge-row:hover{background:var(--color-table-row-hover)}.roof-edge-row--selected{background:var(--status-primary-bg)}.roof-edge-table .roof-edge-row--eave-split{background:var(--status-warning-bg)}.roof-eave-split-pos{align-items:center;gap:var(--space-form-gap);white-space:nowrap;display:inline-flex}.roof-edge-row--confirm td:last-child,.roof-edge-row--warn td:last-child{color:var(--status-warning-strong)}.roof-edge-row--error td{color:var(--color-danger)}.roof-cell-sub{color:var(--color-text-sub)}.roof-issue-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.roof-issue{padding:var(--space-input-padding-y) var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-small);font-size:var(--font-size-xs);color:var(--color-text-main)}.roof-issue--error{border-color:var(--status-danger-border);background:var(--status-danger-bg)}.roof-issue--confirm,.roof-issue--warning{border-color:var(--status-warning-border);background:var(--status-warning-bg)}.roof-issue--ok{border-color:var(--status-success-border);background:var(--status-success-bg)}.roof-error-text{font-size:var(--font-size-xs);color:var(--color-danger)}.roof-cand-list{gap:var(--space-form-gap);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.roof-cand{align-items:center;gap:var(--space-form-gap);padding:var(--space-input-padding-y);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-small);display:flex}.roof-cand--preview{border-color:var(--status-primary-border);background:var(--status-primary-bg)}.roof-cand--adopted{border-color:var(--status-success-border);background:var(--status-success-bg)}.roof-cand-main{text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;align-items:flex-start;gap:2px;min-width:0;display:flex}.roof-cand-label{font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);color:var(--color-text-main)}.roof-cand-detail{font-size:var(--font-size-xs);color:var(--color-text-sub);white-space:normal}.roof-editor-bar{align-items:center;gap:var(--space-form-gap);padding:var(--space-input-padding-y) var(--space-card-gap);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-panel-bg);font-size:var(--font-size-xs);color:var(--color-text-main);flex-wrap:wrap;display:flex}.roof-editor-bar--empty,.roof-editor-bar--info{color:var(--color-text-sub)}.roof-editor-label{font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold)}.roof-editor-est{color:var(--status-warning-strong)}.roof-sources{gap:var(--space-card-gap);flex-direction:column;display:flex}.roof-sources-note{font-size:var(--font-size-caption);color:var(--color-text-sub);margin:0}.roof-sources-elevations{gap:var(--space-card-gap);flex-direction:column;display:flex}.roof-slot{gap:var(--space-form-gap);padding:var(--space-card-gap);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-panel-bg);flex-direction:column;display:flex}.roof-slot--set{border-color:var(--status-success-border)}.roof-slot-head{align-items:center;gap:var(--space-form-gap);display:flex}.roof-slot-title{font-size:var(--font-size-section-title);font-weight:var(--font-weight-semibold);color:var(--color-text-main)}.roof-slot-badge{padding:2px var(--space-input-padding-x);border-radius:var(--radius-small);font-size:var(--font-size-xs);border:var(--border-width-base) solid var(--color-border);color:var(--color-text-sub);margin-left:auto}.roof-slot-badge--ok{border-color:var(--status-success-border);background:var(--status-success-bg);color:var(--color-success)}.roof-slot-badge--warn{border-color:var(--status-warning-border);background:var(--status-warning-bg);color:var(--status-warning-strong)}.roof-slot-body{gap:var(--space-card-gap);align-items:flex-start;display:flex}.roof-slot-preview{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-small);background:var(--color-readonly-bg);flex:none;justify-content:center;align-items:center;width:220px;height:160px;display:flex;overflow:hidden}.roof-slot-thumb{object-fit:contain;max-width:100%;max-height:100%}.roof-slot-thumb-fallback{padding:var(--space-form-gap);font-size:var(--font-size-xs);color:var(--color-text-sub);text-align:center}.roof-slot-meta{gap:var(--space-form-gap);flex-direction:column;min-width:0;display:flex}.roof-slot-name{font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);color:var(--color-text-main);word-break:break-all}.roof-slot-page{align-items:center;gap:var(--space-form-gap);font-size:var(--font-size-xs);color:var(--color-text-main);display:flex}.roof-slot-warn{padding:var(--space-input-padding-y) var(--space-input-padding-x);border:var(--border-width-base) solid var(--status-warning-border);border-radius:var(--radius-small);background:var(--status-warning-bg);font-size:var(--font-size-xs);color:var(--color-text-main)}.roof-slot-actions{gap:var(--space-form-gap);flex-wrap:wrap;align-items:center;display:flex}.roof-edge--hover{stroke-width:4px}.roof-vertex--hover{stroke-width:3px;fill:var(--status-primary-bg)}.roof-ai-banner{gap:var(--space-form-gap);padding:var(--space-input-padding-y) var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-small);background:var(--color-readonly-bg);font-size:var(--font-size-xs);color:var(--color-text-main);flex-direction:column;display:flex}.roof-ai-banner--running{border-color:var(--status-primary-border);background:var(--status-primary-bg)}.roof-ai-banner--failed{border-color:var(--status-warning-border);background:var(--status-warning-bg)}.roof-ai-banner-detail{color:var(--color-text-sub)}.roof-provenance{font-size:var(--font-size-xs);color:var(--color-text-sub);margin:0}.roof-finalize{align-items:center;gap:var(--space-form-gap);padding:var(--space-input-padding-y) var(--space-card-gap);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-panel);flex-wrap:wrap;display:flex}.roof-finalize>.roof-gate-state{flex:1;min-width:0}.roof-edge-toolbar{align-items:center;gap:var(--space-form-gap);margin-bottom:var(--space-form-gap);flex-wrap:wrap;display:flex}.roof-edge-input{text-align:right;width:96px}.roof-edge-table td input[type=checkbox]{margin:0}.roof-dim-summary{font-size:var(--font-size-xs);color:var(--color-text-sub)}.roof-dim-summary--review{color:var(--color-text-main);font-weight:600}.roof-dim-chips{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.roof-dim-chip-label{font-size:var(--font-size-xs);color:var(--color-text-sub)}.roof-region-picker{gap:var(--space-form-gap);flex-direction:column;width:min(80vw,1100px);display:flex}.roof-region-picker-main{gap:var(--space-form-gap);align-items:stretch;display:flex}.roof-region-picker-stage{flex:1;min-width:0;min-height:320px;display:flex}.roof-region-picker-side{gap:var(--space-form-gap);flex-direction:column;flex:none;width:260px;display:flex;overflow:auto}.roof-region-item{border:1px solid var(--color-border);cursor:pointer;border-radius:6px;flex-direction:column;gap:4px;padding:6px 8px;display:flex}.roof-region-item--selected{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary) inset}.roof-region-item-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.roof-region-item-floor{min-width:2.2em;font-size:13px}.roof-edge-row--region{outline:2px solid var(--color-primary);outline-offset:-2px}.roof-region-picker-stage .roof-canvas{flex:1;height:60vh;min-height:320px}.roof-regen-modal{flex-direction:column;gap:16px;display:flex}.roof-regen-modal-text{font-size:var(--font-size-caption);color:var(--color-text-main);margin:0}.roof-regen-modal-actions{justify-content:flex-end;gap:8px;display:flex}.roof-editor-main{gap:var(--space-form-gap);align-items:stretch;min-height:0;display:flex}.roof-editor-main .roof-canvas{flex:1;min-width:0}.roof-overlay-layer{pointer-events:none}.roof-canvas .takeoff-editor-entity{stroke:var(--takeoff-sem-scaffold-input);fill:var(--takeoff-sem-scaffold-input);fill-opacity:.08}.roof-canvas .takeoff-editor-entity--selected{stroke:var(--takeoff-sem-scaffold-input-selected);fill:var(--takeoff-sem-scaffold-input-selected);fill-opacity:.14}.roof-canvas{--roof-floor-1f:var(--color-info);--roof-floor-1f-strong:var(--color-info);--roof-floor-2f:var(--color-warning);--roof-floor-2f-strong:var(--status-warning-strong)}.roof-canvas--definition{--roof-layer-plane-width:1.25px;--roof-layer-plane-opacity:.9;--roof-layer-roof-width:3.5px;--roof-layer-roof-opacity:1;--roof-selected-line-width:6px;--roof-face-selected-boost:.12;--roof-layer-roof-fill:.09;--roof-region-dash:4 4}.roof-canvas--definition .takeoff-editor-entity.roof-floor--1f{--roof-layer-plane-stroke:var(--roof-floor-1f);--roof-layer-roof-stroke:var(--roof-floor-1f-strong)}.roof-canvas--definition .takeoff-editor-entity.roof-floor--2f{--roof-layer-plane-stroke:var(--roof-floor-2f);--roof-layer-roof-stroke:var(--roof-floor-2f-strong)}.roof-canvas--stack .takeoff-editor-entity.takeoff-editor-entity--sem-wall{stroke:var(--roof-floor-1f);stroke-width:3.5px;stroke-opacity:1;fill:var(--roof-floor-1f);fill-opacity:.05}.roof-canvas--stack .takeoff-editor-entity.takeoff-editor-entity--sem-scaffold{stroke:var(--roof-floor-2f);stroke-width:2.5px;fill:var(--roof-floor-2f);fill-opacity:.22}.roof-canvas--stack .takeoff-editor-entity--selected.takeoff-editor-entity--sem-scaffold{stroke:var(--roof-floor-2f-strong);fill:var(--roof-floor-2f-strong);fill-opacity:.28}.roof-canvas--stack .takeoff-editor-entity:hover{fill-opacity:.22}.roof-stack-ref-vertex{fill:var(--roof-floor-1f);stroke:var(--color-panel-bg)}.roof-stack-label{font-weight:var(--font-weight-bold);paint-order:stroke;stroke:var(--color-panel-bg);stroke-linejoin:round}.roof-stack-label--ref{fill:var(--roof-floor-1f)}.roof-stack-label--move{fill:var(--roof-floor-2f-strong)}.roof-canvas g:has(>.takeoff-editor-handle-hit:hover)>.takeoff-editor-handle{stroke-width:3px;fill:var(--status-primary-bg)}.roof-canvas .takeoff-editor-edge-hit:hover{stroke:var(--color-selected);stroke-opacity:.35}.roof-canvas .takeoff-editor-entity:hover{fill-opacity:.16}.roof-edge-label--selected{fill:var(--color-selected);text-decoration:underline}.roof-canvas-hint{left:var(--space-form-gap);bottom:var(--space-form-gap);padding:var(--space-input-padding-y) var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-small);background:var(--color-panel-bg);font-size:var(--font-size-xs);color:var(--color-text-sub);pointer-events:none;position:absolute}.roof-overlay-label{font-weight:var(--font-weight-bold);paint-order:stroke;stroke:var(--color-panel-bg);stroke-linejoin:round;pointer-events:none}.roof-overlay-label--base{fill:var(--color-primary)}.roof-overlay-label--upper{fill:var(--takeoff-sem-scaffold-selected)}.roof-slot-thumb--r90{transform:rotate(90deg)}.roof-slot-thumb--r180{transform:rotate(180deg)}.roof-slot-thumb--r270{transform:rotate(270deg)}.roof-plan-orient{background:var(--color-readonly-bg);flex:1;justify-content:center;align-items:center;min-height:0;display:flex;overflow:auto}.roof-plan-orient-frame{gap:var(--space-form-gap);padding:var(--space-form-gap);grid-template-rows:auto 1fr auto;grid-template-columns:auto 1fr auto;max-width:100%;max-height:100%;display:grid;position:relative}.roof-plan-orient-img{object-fit:contain;border:var(--border-width-base) solid var(--color-border);background:var(--color-panel-bg);grid-area:2/2;max-width:100%;max-height:calc(100vh - 320px)}.roof-plan-orient-side{font-size:var(--font-size-label);font-weight:var(--font-weight-bold);color:var(--color-primary);white-space:nowrap;justify-content:center;align-items:center;display:flex}.roof-plan-orient-side--top{grid-area:1/2}.roof-plan-orient-side--bottom{grid-area:3/2}.roof-plan-orient-side--left{grid-area:2/1}.roof-plan-orient-side--right{grid-area:2/3}.roof-plan-orient{flex-direction:column}.roof-plan-orient-floors{gap:var(--space-form-gap);padding:var(--space-form-gap);align-self:stretch;display:flex}.roof-plan-orient-floor{padding:2px var(--space-form-gap);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-small);background:var(--color-panel-bg);color:var(--color-text-sub);font-size:var(--font-size-xs)}.roof-plan-orient-floor--active{border-color:var(--color-primary);color:var(--color-primary);font-weight:var(--font-weight-bold)}.roof-panel-section--selectable{cursor:pointer;padding:var(--space-form-gap);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-small);background:var(--color-panel-bg)}.roof-panel-section--selected{background:var(--status-primary-bg)}.roof-panel-details{margin-top:var(--space-form-gap)}.roof-panel-details>summary{cursor:pointer}.roof-cand-rank-list{gap:var(--space-form-gap);flex-direction:column;align-items:stretch;display:flex}.roof-canvas--definition .takeoff-editor-entity.roof-floor--1f.roof-role--building{stroke:var(--roof-layer-plane-stroke);stroke-width:var(--roof-layer-plane-width);stroke-opacity:var(--roof-layer-plane-opacity);fill:none}.roof-canvas--definition .takeoff-editor-entity.roof-floor--1f.roof-role--roof{stroke:var(--roof-layer-roof-stroke);stroke-width:var(--roof-layer-roof-width);stroke-opacity:var(--roof-layer-roof-opacity);fill:var(--roof-layer-roof-stroke);fill-opacity:var(--roof-layer-roof-fill)}.roof-canvas--definition .takeoff-editor-entity.roof-floor--2f.roof-role--building{stroke:var(--roof-layer-plane-stroke);stroke-width:var(--roof-layer-plane-width);stroke-opacity:var(--roof-layer-plane-opacity);fill:none}.roof-canvas--definition .takeoff-editor-entity.roof-floor--2f.roof-role--roof{stroke:var(--roof-layer-roof-stroke);stroke-width:var(--roof-layer-roof-width);stroke-opacity:var(--roof-layer-roof-opacity);fill:var(--roof-layer-roof-stroke);fill-opacity:var(--roof-layer-roof-fill)}.roof-edge-pick-layer{pointer-events:none}.roof-edge-pick-hit{pointer-events:stroke;stroke:#0000;stroke-width:14px;fill:none;cursor:pointer}.roof-edge-pick-selected{pointer-events:none;stroke:var(--roof-floor-2f-strong);stroke-width:var(--roof-selected-line-width);stroke-linecap:round;fill:none}.roof-eave-layer{pointer-events:none}.roof-eave-box{stroke:var(--roof-floor-2f-strong);stroke-width:1.25px;stroke-dasharray:5 3;fill:var(--roof-floor-2f-strong);fill-opacity:.08}.roof-eave-value{pointer-events:auto;cursor:pointer}.roof-eave-value-box{fill:var(--color-panel-bg);stroke:var(--roof-floor-2f-strong);stroke-width:1.25px}.roof-eave-value-text{fill:var(--takeoff-text-dimension);font-weight:var(--font-weight-bold);-webkit-user-select:none;user-select:none}.roof-eave-value--selected .roof-eave-value-box{fill:var(--status-warning-bg);stroke-width:2.5px}.roof-eave-value:hover .roof-eave-value-box{stroke-width:2.5px}.roof-eave-input-host{pointer-events:auto;overflow:visible}.roof-eave-input{box-sizing:border-box;width:100%;height:100%;padding:0 var(--space-input-padding-x);text-align:center;font-size:var(--font-size-xs);color:var(--color-text-main);background:var(--color-panel-bg);border:var(--border-width-base) solid var(--roof-floor-2f-strong);border-radius:var(--radius-input)}.roof-eave-layer--end .roof-eave-box{stroke:var(--color-warning);fill:var(--color-warning);fill-opacity:.16;stroke-dasharray:4 3}.roof-eave-layer--end .roof-eave-value-box{stroke:var(--color-warning)}.roof-eave-layer--end .roof-eave-value--selected .roof-eave-value-box{fill:var(--status-warning-bg)}.roof-eave-layer--end .roof-eave-input{border-color:var(--color-warning)}.roof-canvas--blank{background:var(--color-panel-bg)}.roof-canvas-image--hidden{visibility:hidden}.roof-canvas--boxedit .roof-edge-pick-layer,.roof-canvas--boxedit .roof-edge-pick-layer *,.roof-canvas--outlineedit .roof-edge-pick-layer,.roof-canvas--outlineedit .roof-edge-pick-layer *,.roof-canvas--outlineedit .roof-eave-layer,.roof-canvas--outlineedit .roof-eave-layer *{pointer-events:none}.roof-canvas--definition .takeoff-editor-entity.roof-role--box-move{stroke:var(--roof-floor-1f-strong);stroke-width:1.5px;stroke-dasharray:5 3;stroke-opacity:.85;fill:var(--roof-floor-1f-strong);fill-opacity:.1;cursor:move}.roof-canvas--definition .takeoff-editor-entity.roof-role--box-suppressed{stroke:var(--color-text-sub);stroke-dasharray:2 4;stroke-opacity:.7;fill:var(--color-text-sub);fill-opacity:.05}.roof-canvas--definition .takeoff-editor-entity.roof-role--box-moved{stroke:var(--roof-floor-2f-strong);stroke-dasharray:none;fill:var(--roof-floor-2f-strong);fill-opacity:.14}.roof-canvas--definition .takeoff-editor-entity.roof-role--box-selected{stroke-width:3px;stroke-opacity:1;fill-opacity:.22}.roof-canvas--definition .takeoff-editor-entity.roof-role--box-preview{stroke:var(--color-accent,#7c3aed);stroke-width:2.5px;stroke-dasharray:4 3;stroke-opacity:.95;fill:none}.roof-eave-layer--dim,.roof-eave-layer--dim *{pointer-events:none}.roof-eave-layer--dim,.roof-picked--dim{opacity:.4}.roof-eave-value--unset .roof-eave-value-box{fill:var(--color-panel-bg);stroke:var(--color-warning);stroke-dasharray:4 3}.roof-eave-value--unset .roof-eave-value-text{fill:var(--status-warning-strong)}.roof-evidence-body{background:var(--color-page-bg);color:var(--color-text-main);font-family:var(--font-family-base);font-size:var(--font-size-body);margin:0}.roof-evidence-root{flex-direction:column;height:100vh;min-height:0;display:flex}.roof-evidence-head,.roof-evidence-foot{align-items:center;gap:var(--space-form-gap);padding:var(--space-form-gap) var(--space-card-gap);background:var(--color-panel-bg);font-size:var(--font-size-caption);flex-wrap:wrap;display:flex}.roof-evidence-head{border-bottom:var(--border-width-base) solid var(--color-border)}.roof-evidence-foot{border-top:var(--border-width-base) solid var(--color-border)}.roof-evidence-head-target{font-weight:700}.roof-evidence-head-hint,.roof-evidence-foot-unit{color:var(--color-text-sub)}.roof-evidence-foot-label{font-weight:700}.roof-evidence-grid{gap:var(--space-form-gap);min-height:0;padding:var(--space-form-gap);flex:1;grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;display:grid}@media (aspect-ratio<=1){.roof-evidence-grid{grid-template-rows:repeat(4,1fr);grid-template-columns:1fr}}.roof-evidence-pane{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-panel-bg);flex-direction:column;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.roof-evidence-pane--related{border-color:var(--color-info)}.roof-evidence-pane--primary{border-color:var(--color-warning);box-shadow:0 0 0 2px var(--status-warning-border)}.roof-evidence-pane-head{align-items:center;gap:var(--space-form-gap);padding:var(--space-form-gap);border-bottom:var(--border-width-base) solid var(--color-border);font-size:var(--font-size-caption);display:flex}.roof-evidence-pane-label,.roof-evidence-pane-status{color:var(--color-text-sub)}.roof-evidence-pane-status{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.roof-evidence-pane-switch{gap:var(--space-form-gap);display:inline-flex}.roof-evidence-stage{background:var(--color-readonly-bg);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;flex:1;min-height:0;position:relative;overflow:hidden}.roof-evidence-stage--panning{cursor:grabbing}.roof-evidence-canvas,.roof-evidence-svg{width:100%;height:100%;position:absolute;top:0;left:0}.roof-evidence-svg{pointer-events:none}.roof-evidence-empty{padding:var(--space-card-gap);color:var(--color-text-sub);text-align:center;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.roof-evidence-target{fill:var(--color-warning);fill-opacity:.1;stroke:var(--color-warning);stroke-width:2px;stroke-dasharray:6 4;vector-effect:non-scaling-stroke}.roof-evidence-target--secondary{fill:var(--color-info);fill-opacity:.05;stroke:var(--color-info)}.roof-evidence-cand{fill:var(--color-info);fill-opacity:0;stroke:var(--color-info);stroke-width:1.5px;vector-effect:non-scaling-stroke;pointer-events:all;cursor:pointer}.roof-evidence-cand--hit{stroke:var(--color-danger);stroke-width:3px}.roof-evidence-cand--selected{fill:var(--color-danger);fill-opacity:.15}.roof-evidence-chip{font-weight:700}.roof-evidence-status-list{gap:var(--space-form-gap);font-size:var(--font-size-caption);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.roof-evidence-status-list li{color:var(--color-text-sub)}.roof-evidence-status-list li.roof-evidence-status--ready{color:var(--color-success)}.roof-evidence-status-list li.roof-evidence-status--failed{color:var(--status-warning-strong)}.roof-evidence-guide{stroke-width:1.5px;vector-effect:non-scaling-stroke}.roof-evidence-guide--wall{stroke:var(--color-danger)}.roof-evidence-guide--face{stroke:var(--color-text-sub);stroke-dasharray:4 3}.roof-evidence-guide--tip{stroke:var(--color-warning)}.roof-evidence-extent{stroke:var(--color-danger);stroke-width:2px;vector-effect:non-scaling-stroke}.roof-evidence-cand--weak{stroke-dasharray:4 3}.roof-evidence-chip--weak{color:var(--color-text-sub);font-weight:400}.roof-evidence-cand--first{stroke:var(--color-success);stroke-width:3px;fill:var(--color-success);fill-opacity:.12}.roof-evidence-chip--first{border-color:var(--color-success);color:var(--color-success)}.roof-value-state{margin-left:var(--space-form-gap);font-size:var(--font-size-caption);color:var(--color-text-sub);white-space:nowrap}.roof-value-state--ai{color:var(--status-warning-strong)}.roof-value-state--ai_confirmed{color:var(--color-success)}.roof-value-state--manual{color:var(--color-text-main)}.roof-evidence-cand--other{stroke:var(--color-info);stroke-width:1.5px}.roof-evidence-cand--adopted{stroke:var(--color-success);stroke-width:3px;fill:var(--color-success);fill-opacity:.16}.roof-evidence-chip--adopted{border-color:var(--color-success);color:var(--color-success);font-weight:700}.roof-evidence-wallend-line{stroke:var(--color-danger);stroke-width:2px;stroke-dasharray:6 4;vector-effect:non-scaling-stroke;pointer-events:none}.roof-evidence-wallend--confirmed .roof-evidence-wallend-line,.roof-evidence-wallend--moved .roof-evidence-wallend-line,.roof-evidence-wallend--added .roof-evidence-wallend-line{stroke:var(--color-success);stroke-dasharray:none}.roof-evidence-wallend--selected .roof-evidence-wallend-line{stroke-width:4px}.roof-evidence-wallend-hit{stroke:#0000;stroke-width:14px;vector-effect:non-scaling-stroke;pointer-events:stroke;cursor:ew-resize}.roof-evidence-stage--adding{cursor:crosshair}.roof-evidence-wallend-label{fill:var(--color-text-main);paint-order:stroke;stroke:var(--color-surface);stroke-width:3px;pointer-events:none;font-size:12px}.roof-canvas--definition .takeoff-editor-entity-line.roof-floor--1f{--roof-layer-roof-stroke:var(--roof-floor-1f-strong)}.roof-canvas--definition .takeoff-editor-entity-line.roof-floor--2f{--roof-layer-roof-stroke:var(--roof-floor-2f-strong)}.roof-canvas--definition .takeoff-editor-entity-line.roof-role--layout-line{stroke:var(--roof-layer-roof-stroke);stroke-width:var(--roof-layer-roof-width);stroke-opacity:var(--roof-layer-roof-opacity);fill:none}.roof-canvas--definition .takeoff-editor-entity-line.roof-role--layout-line.roof-line--ridge{stroke:var(--takeoff-roof-ridge);stroke-width:var(--takeoff-roof-ridge-width);stroke-dasharray:var(--takeoff-roof-ridge-dash)}.roof-canvas--definition .takeoff-editor-entity-line.roof-role--layout-line.roof-line--slope_change{stroke:var(--takeoff-roof-slope-change);stroke-width:var(--takeoff-roof-slope-change-width);stroke-dasharray:var(--takeoff-roof-slope-change-dash)}.roof-canvas--definition .takeoff-editor-entity-line.roof-role--layout-line.roof-line--other{stroke:var(--takeoff-roof-other);stroke-width:var(--takeoff-roof-other-width);stroke-dasharray:var(--takeoff-roof-other-dash)}.roof-canvas--layout .roof-overlay--upper{fill:var(--takeoff-roof-face);fill-opacity:.22;stroke:var(--takeoff-roof-face)}.roof-canvas--layout-locked .takeoff-editor-entity-line.roof-role--layout-line,.roof-canvas--layout-locked .takeoff-editor-line-hit{pointer-events:none}.roof-page .roof-body{--roof-rail-w:168px;--roof-side-w:400px}.roof-page .roof-body .takeoff-tool-rail{width:var(--roof-rail-w);flex:0 0 var(--roof-rail-w);min-width:0}.roof-page .roof-body>.roof-side{width:var(--roof-side-w);flex:0 0 var(--roof-side-w);min-width:0}.roof-pane-divider{cursor:col-resize;border-radius:var(--radius-small);touch-action:none;background:0 0;flex:0 0 6px;align-self:stretch}.roof-pane-divider:hover,.roof-pane-divider--active{background:var(--color-border)}.roof-pane-divider--active{background:var(--color-primary)}.roof-page .roof-body>.roof-pane-divider,.roof-page .roof-editor-main>.roof-pane-divider{margin:0 calc(-1 * var(--space-form-gap) / 2)}.roof-canvas--definition .takeoff-editor-entity-line.roof-role--layout-line.roof-line--hip{stroke:var(--takeoff-roof-hip);stroke-dasharray:var(--takeoff-roof-hip-dash);stroke-width:var(--takeoff-roof-hip-width)}.roof-canvas--definition .takeoff-editor-entity-line.roof-role--layout-line.roof-line--valley{stroke:var(--takeoff-roof-valley);stroke-dasharray:var(--takeoff-roof-valley-dash);stroke-width:var(--takeoff-roof-valley-width)}.roof-canvas--layout .roof-overlay--muted{fill:var(--color-text-sub);fill-opacity:.04;stroke:var(--color-border);stroke-dasharray:4 4}.roof-overlay-label--muted{fill:var(--color-text-sub);opacity:.6}.roof-snap-marker--vertex{stroke:var(--color-primary)}.roof-snap-points-layer{pointer-events:none}.roof-snap-point{fill:var(--color-primary);stroke:none;pointer-events:none}.roof-snap-point--midpoint{fill-opacity:.85}.roof-snap-marker--edge{stroke:var(--color-alignment-guide)}.roof-snap-target-edge{stroke:var(--color-alignment-guide);stroke-width:3px;stroke-opacity:.55;fill:none;vector-effect:non-scaling-stroke}.roof-canvas--layout .takeoff-editor-entity.roof-role--other-roof{stroke-opacity:.25;pointer-events:none}.roof-face-table .roof-face-show-col{text-align:center;border-right:var(--border-width-strong) solid var(--color-border);cursor:pointer;width:2.6em}.roof-face-table tbody .roof-face-show-col:hover{background:var(--color-table-row-hover)}.roof-face-show-check{pointer-events:none;width:18px;height:18px}.roof-canvas--layout .roof-overlay--base{fill-opacity:.16;stroke-width:1px}.roof-canvas--layout .roof-overlay--upper{fill-opacity:var(--takeoff-roof-face-opacity)}.roof-canvas--definition .takeoff-editor-entity-line.roof-role--layout-line.roof-line--selected{stroke-width:var(--roof-selected-line-width);stroke-linecap:round;stroke-opacity:1;stroke-dasharray:none}.roof-canvas--definition .takeoff-editor-entity-line.roof-role--layout-line.roof-line--selected.roof-line--ridge{stroke:var(--takeoff-roof-ridge)}.roof-canvas--definition .takeoff-editor-entity-line.roof-role--layout-line.roof-line--selected.roof-line--hip{stroke:var(--takeoff-roof-hip)}.roof-canvas--definition .takeoff-editor-entity-line.roof-role--layout-line.roof-line--selected.roof-line--valley{stroke:var(--takeoff-roof-valley)}.roof-canvas--definition .takeoff-editor-entity-line.roof-role--layout-line.roof-line--selected.roof-line--slope_change{stroke:var(--takeoff-sem-trim-selected)}.roof-canvas--definition .takeoff-editor-entity-line.roof-role--layout-line.roof-line--selected.roof-line--other{stroke:var(--color-text-main)}.roof-canvas--layout .takeoff-editor-handle{fill:var(--color-panel-bg);stroke:var(--color-primary);stroke-width:2px}.roof-canvas--layout .takeoff-editor-handle--endpoint{fill:var(--color-primary)}.roof-edge-table .roof-edge-row--selected,.roof-edge-table .roof-edge-row--selected:hover{background:var(--status-primary-bg)}.roof-edge-table .roof-edge-row--selected>td:first-child{box-shadow:inset var(--border-width-strong) 0 0 var(--color-primary)}.roof-canvas--layout .takeoff-editor-handle-cross{display:none}.roof-cprep-spacer{flex:1}.roof-evidence-stage--blocked .roof-evidence-cand,.roof-evidence-stage--blocked .roof-evidence-wallend-hit{pointer-events:none}.roof-candidate-line{stroke:var(--takeoff-roof-candidate);stroke-width:var(--takeoff-roof-candidate-width);stroke-dasharray:var(--takeoff-roof-candidate-dash);opacity:.8;vector-effect:non-scaling-stroke;pointer-events:none}.roof-candidate-label{fill:var(--takeoff-roof-candidate);paint-order:stroke;stroke:var(--color-page-bg);vector-effect:non-scaling-stroke;pointer-events:none}.roof-edge-length-layer{pointer-events:none}.roof-edge-length-label{fill:var(--takeoff-text-dimension);paint-order:stroke;stroke:var(--color-page-bg);vector-effect:non-scaling-stroke;pointer-events:none}.roof-candidate-label--face{fill:var(--color-text-main);font-weight:700}.roof-quantity-list{gap:calc(var(--space-form-gap) / 2);margin:var(--space-form-gap) 0 0;flex-direction:column;display:flex}.roof-quantity-row{justify-content:space-between;gap:var(--space-form-gap);display:flex}.roof-quantity-row dt,.roof-quantity-row dd{margin:0}.roof-quantity-row dd{font-variant-numeric:tabular-nums}.roof-quantity-row--main{padding-bottom:calc(var(--space-form-gap) / 2);border-bottom:var(--border-width-base) solid var(--color-border);font-weight:700}.roof-quantity-row--pending dd{color:var(--color-text-sub)}.roof-quantity-detail{margin-top:var(--space-form-gap);font-size:var(--font-size-caption)}.roof-quantity-reasons{margin:var(--space-form-gap) 0 0;padding-left:var(--space-card-gap);color:var(--color-text-sub)}.roof-quantity-group{margin-top:var(--space-form-gap);padding:var(--space-form-gap);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card)}.roof-quantity-group-head{font-weight:700}.roof-quantity-faces{margin:var(--space-form-gap) 0 0;padding:0;list-style:none}.roof-quantity-swatch{width:14px;height:4px;margin-right:calc(var(--space-form-gap) / 2);vertical-align:middle;border-radius:2px;display:inline-block}.roof-edge-role{fill:none;pointer-events:none}.roof-edge-role--eave{stroke:var(--takeoff-roof-eave);stroke-width:var(--takeoff-roof-eave-width);stroke-dasharray:var(--takeoff-roof-eave-dash)}.roof-edge-role--verge{stroke:var(--takeoff-roof-verge);stroke-width:var(--takeoff-roof-verge-width);stroke-dasharray:var(--takeoff-roof-verge-dash)}.roof-edge-role--wall_h{stroke:var(--takeoff-roof-wall-h);stroke-width:var(--takeoff-roof-wall-h-width);stroke-dasharray:var(--takeoff-roof-wall-h-dash)}.roof-edge-role--wall_s{stroke:var(--takeoff-roof-wall-s);stroke-width:var(--takeoff-roof-wall-s-width);stroke-dasharray:var(--takeoff-roof-wall-s-dash)}.roof-export-buttons{gap:var(--space-form-gap);margin:var(--space-form-gap) 0;flex-wrap:wrap;display:flex}.roof-export-detail{font-size:var(--font-size-caption)}.roof-export-detail>summary{cursor:pointer}.roof-export-options{gap:calc(var(--space-form-gap) / 2);margin-top:var(--space-form-gap);flex-direction:column;display:flex}.roof-export-warn{color:var(--status-warning-strong)}.roof-export-error{color:var(--color-danger)}.roof-print-root{--roof-print-swatch-width:6mm;--roof-print-swatch-height:1.2mm;--roof-print-swatch-gap:1.5mm;--roof-print-swatch-stroke:2;display:none}.roof-pdf-message{padding:var(--space-form-gap);color:var(--color-danger)}.roof-pdf-status{padding:var(--space-form-gap);color:var(--color-text-main)}@media print{body:has(>.roof-print-root)>:not(.roof-print-root){display:none!important}body:has(>.roof-print-root){background:var(--color-panel-bg);page:roof-a3-landscape;margin:0}@page roof-a3-landscape{size:A3 landscape;margin:8mm}body:has(>.roof-print-root)>.roof-print-root{width:100%;display:block;position:static}.roof-print-sheet{box-sizing:border-box;background:var(--color-panel-bg);-webkit-print-color-adjust:exact;print-color-adjust:exact;flex-direction:column;min-height:99vh;display:flex}.roof-print-sheet+.roof-print-sheet{break-before:page}.roof-print-head{border-bottom:.4mm solid var(--color-text-main);flex:none;align-items:baseline;gap:8mm;padding-bottom:2mm;display:flex}.roof-print-title{font-size:20pt;font-weight:var(--font-weight-bold)}.roof-print-project{font-size:14pt}.roof-print-floor{font-size:14pt;font-weight:var(--font-weight-bold)}.roof-print-date{margin-left:auto;font-size:11pt}.roof-print-body{flex:1;grid-template-columns:3.5fr 1fr;column-gap:4mm;min-height:0;padding-top:3mm;display:grid}.roof-print-figure-wrap{min-width:0;height:255mm;position:relative}.roof-print-figure{width:100%;height:100%;position:absolute;inset:0}.roof-print-tables{flex-direction:column;gap:4mm;min-width:0;display:flex}.roof-print-table{border-collapse:collapse;table-layout:fixed;break-inside:avoid;width:100%;font-size:11pt;line-height:1.2}.roof-print-table caption{caption-side:top;text-align:left;font-size:12.5pt;font-weight:var(--font-weight-bold);padding-bottom:1mm}.roof-print-table th,.roof-print-table td{border-bottom:.2mm solid var(--color-border);text-align:left;white-space:nowrap;padding:.8mm 1.4mm}.roof-print-table th{font-weight:var(--font-weight-semibold);border-bottom:.3mm solid var(--color-text-main)}.roof-print-table th:first-child,.roof-print-table td:first-child{width:44%}.roof-print-table th:nth-child(3),.roof-print-table td:nth-child(3){width:14%}.roof-print-swatch{width:var(--roof-print-swatch-width);height:var(--roof-print-swatch-height);margin-right:var(--roof-print-swatch-gap);vertical-align:middle;display:inline-block;overflow:visible}.roof-print-swatch line{stroke-width:var(--roof-print-swatch-stroke);stroke-linecap:round}.roof-print-table .roof-print-num{text-align:right;font-variant-numeric:tabular-nums}.roof-print-note{color:var(--status-warning-strong);margin:0;font-size:9.5pt}.roof-print-face{fill:var(--takeoff-roof-face);fill-opacity:var(--takeoff-roof-face-opacity);stroke:none}.roof-print-outline{fill:none;stroke:var(--color-text-main);stroke-width:1.2px;vector-effect:non-scaling-stroke}.roof-print-guide-line,.roof-print-guide-point circle,.roof-print-guide-point line{fill:none;stroke:var(--color-info);stroke-width:1px;vector-effect:non-scaling-stroke}.roof-print-guide-line{stroke-dasharray:4 3}.roof-print-downhill line,.roof-print-downhill polyline{fill:none;stroke:var(--color-primary);stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.roof-print-reference{fill:none;stroke:var(--color-text-sub);stroke-width:.6px;stroke-dasharray:6 4;opacity:.55;vector-effect:non-scaling-stroke}.roof-print-line{fill:none;vector-effect:non-scaling-stroke}.roof-print-line--ridge{stroke:var(--takeoff-roof-ridge);stroke-width:var(--takeoff-roof-ridge-width);stroke-dasharray:var(--takeoff-roof-ridge-dash)}.roof-print-line--hip{stroke:var(--takeoff-roof-hip);stroke-width:var(--takeoff-roof-hip-width);stroke-dasharray:var(--takeoff-roof-hip-dash)}.roof-print-line--valley{stroke:var(--takeoff-roof-valley);stroke-width:var(--takeoff-roof-valley-width);stroke-dasharray:var(--takeoff-roof-valley-dash)}.roof-print-line--slope_change{stroke:var(--takeoff-roof-slope-change);stroke-width:var(--takeoff-roof-slope-change-width);stroke-dasharray:var(--takeoff-roof-slope-change-dash)}.roof-print-line--other{stroke:var(--takeoff-roof-other);stroke-width:var(--takeoff-roof-other-width);stroke-dasharray:var(--takeoff-roof-other-dash)}.roof-print-text{fill:var(--takeoff-text-label);paint-order:stroke;stroke:var(--color-panel-bg);stroke-width:2px;stroke-linejoin:round;font-size:9pt}.roof-print-text--face{fill:var(--color-text-main);font-weight:700}.roof-print-dim-line,.roof-print-dim-ext{fill:none;stroke:var(--takeoff-dim-leader)}.roof-print-dim-arrow{fill:none;stroke:var(--takeoff-dim-leader);stroke-linejoin:round;stroke-linecap:round}.roof-print-dim-arrow--filled{fill:var(--takeoff-dim-leader)}.roof-print-dim-text{fill:var(--takeoff-text-dimension);stroke:none;paint-order:normal;font-variant-numeric:tabular-nums}.roof-print-text--dimension{fill:var(--takeoff-text-dimension)}}.takeoff-region-layer{pointer-events:none}.takeoff-region-outline{fill:none;stroke:var(--color-primary);stroke-width:1.5px;pointer-events:none}.takeoff-region-layer--selectable .takeoff-region-outline{pointer-events:all;cursor:pointer}.takeoff-region-outline--active{stroke-width:3px}.takeoff-region-outline--dim{stroke-opacity:.25}.takeoff-direction-frame-layer{pointer-events:none}.takeoff-direction-frame-outline{fill:none;stroke:var(--color-success);stroke-width:1.5px;stroke-dasharray:6 4;pointer-events:none}.takeoff-direction-frame-outline--active{stroke-width:3px}.takeoff-direction-frame-outline--step2{stroke:var(--color-primary);stroke-opacity:.45;stroke-dasharray:none}.takeoff-direction-frame-outline--step2.takeoff-direction-frame-outline--active{stroke-opacity:1;stroke-width:3px}.takeoff-direction-frame-outline--reference{stroke:var(--takeoff-direction-frame);stroke-width:var(--takeoff-direction-frame-width);stroke-dasharray:var(--takeoff-direction-frame-dash)}.takeoff-direction-frame-label.takeoff-direction-frame-label--reference{fill:var(--takeoff-text-direction);font-size:var(--takeoff-text-direction-size)}.takeoff-direction-frame-label{fill:var(--color-success);font-size:var(--font-size-xs);pointer-events:none}.takeoff-region-draft-layer{pointer-events:none}.takeoff-region-draft{fill:none;stroke:var(--color-primary);stroke-width:1.5px;stroke-dasharray:6 4}.takeoff-region-handles-layer{pointer-events:none}.takeoff-region-handle{stroke-width:2px;cursor:grab;pointer-events:all}.takeoff-region-handle--boundary{fill:var(--status-primary-bg);stroke:var(--color-primary)}.takeoff-region-handle--reference{fill:var(--status-success-bg);stroke:var(--color-success)}.takeoff-region-correction-preview{transform-origin:0 0;pointer-events:none;will-change:transform;position:absolute;top:0;left:0}.takeoff-region-correction-preview-image{pointer-events:none;display:block}.takeoff-region-reference-outline{fill:none;stroke:var(--color-success);stroke-width:1.5px;stroke-dasharray:6 4;pointer-events:none}.takeoff-region-note{padding:var(--space-input-padding-x) var(--space-card-gap);border:var(--border-width-base) solid var(--status-primary-border);border-radius:var(--radius-card);background:var(--status-primary-bg);color:var(--color-text-main);font-size:var(--font-size-xs)}.takeoff-region-list{gap:var(--space-form-gap);flex-direction:column;display:flex}.takeoff-region-row{align-items:center;gap:var(--space-form-gap);padding:var(--space-form-gap) var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-panel-bg);flex-wrap:wrap;display:flex}.takeoff-region-row--active{border-color:var(--color-primary);background:var(--status-primary-bg)}.takeoff-region-label-input{width:8em;padding:var(--space-form-gap) var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);font-size:var(--font-size-xs);color:var(--color-text-main);background:var(--color-editable-bg)}.takeoff-region-direction-select{padding:var(--space-form-gap) var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);font-size:var(--font-size-xs);color:var(--color-text-main);background:var(--color-editable-bg)}.takeoff-region-status{color:var(--color-text-sub);font-size:var(--font-size-xs);white-space:nowrap;align-items:center;display:inline-flex}.takeoff-correction-note{padding:var(--space-input-padding-x) var(--space-card-gap);border:var(--border-width-base) solid var(--status-warning-border);border-radius:var(--radius-card);background:var(--status-warning-bg);color:var(--color-text-main);font-size:var(--font-size-xs)}.takeoff-correction-status{padding:0 var(--space-input-padding-x);color:var(--color-text-sub);font-size:var(--font-size-xs);align-items:center;display:inline-flex}.takeoff-correction-background{transform-origin:0 0;pointer-events:none;will-change:transform;position:absolute;top:0;left:0}.takeoff-correction-image{pointer-events:none;display:block}.takeoff-correction-handles-layer{pointer-events:none}.takeoff-correction-handle{fill:var(--status-warning-bg);stroke:var(--color-warning);stroke-width:2px;cursor:grab;pointer-events:all}.takeoff-correction-proxy-layer{pointer-events:none}.takeoff-correction-proxy-handle{fill:var(--status-warning-bg);stroke:var(--color-warning);stroke-width:2px;stroke-dasharray:4 3;cursor:grab;pointer-events:all}.takeoff-correction-proxy-tether{stroke:var(--color-warning);stroke-width:1px;stroke-dasharray:3 3;pointer-events:none}.takeoff-guide-layer{pointer-events:none}.takeoff-guide-line{stroke:var(--color-alignment-guide);stroke-width:1px;stroke-dasharray:6 5;pointer-events:none}.takeoff-guide-hit{stroke:#0000;stroke-width:12px;cursor:grab;pointer-events:stroke}.takeoff-guide-reticle{fill:none;stroke:var(--color-alignment-guide);stroke-width:1.5px;pointer-events:none}.takeoff-guide-reticle--snap{stroke-width:2.5px}.takeoff-guide-center-dot{fill:var(--color-alignment-guide);stroke:none;pointer-events:none}.takeoff-guide-center-hit{fill:#0000;stroke:none;cursor:grab;pointer-events:all}.takeoff-editor{gap:var(--space-card-gap);flex-direction:column;display:flex}.takeoff-editor-note{padding:var(--space-input-padding-x) var(--space-card-gap);border:var(--border-width-base) solid var(--status-warning-border);border-radius:var(--radius-card);background:var(--status-warning-bg);color:var(--color-text-main);font-size:var(--font-size-xs)}.takeoff-editor-legend{padding:var(--space-input-padding-x) var(--space-card-gap);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-readonly-bg);color:var(--color-text-main);font-size:var(--font-size-xs)}.takeoff-editor-controls{gap:var(--space-card-gap);flex-wrap:wrap;align-items:center;display:flex}.takeoff-editor-group{align-items:center;gap:var(--space-form-gap);display:flex}.takeoff-editor-stage{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-readonly-bg);touch-action:none;-webkit-user-select:none;user-select:none;height:clamp(560px,100vh - 290px,1400px);position:relative;overflow:hidden}.takeoff-editor-stage--panning{cursor:grabbing}.takeoff-editor-layer{width:100%;height:100%;display:block;position:absolute;inset:0}.takeoff-editor-handle-layer{z-index:2;pointer-events:none}.takeoff-editor-loading{height:100%;color:var(--color-text-sub);font-size:var(--font-size-caption);justify-content:center;align-items:center;display:flex}.takeoff-editor-entity{fill:var(--status-primary-bg);fill-opacity:.3;stroke:var(--color-secondary);stroke-width:2px;cursor:pointer}.takeoff-editor-entity--selected{stroke:var(--color-primary)}.takeoff-editor-entity--sem-wall{stroke:var(--takeoff-wall-outline);stroke-width:var(--takeoff-wall-outline-width);stroke-dasharray:var(--takeoff-wall-outline-dash);fill:var(--takeoff-wall-fill)}.takeoff-editor-entity--sem-opening{stroke:var(--takeoff-wall-opening);fill:var(--takeoff-opening-fill)}.takeoff-editor-entity--sem-other_deduction{stroke:var(--takeoff-other-outline);fill:var(--takeoff-other-fill)}.takeoff-editor-entity-line.takeoff-editor-entity--sem-sealing_sash{stroke:var(--takeoff-sem-sash);stroke-width:var(--takeoff-sem-sash-width);stroke-dasharray:var(--takeoff-sem-sash-dash);stroke-opacity:1}.takeoff-editor-entity-line--selected.takeoff-editor-entity--sem-sealing_sash{stroke:var(--takeoff-sem-sash-selected);stroke-opacity:1}.takeoff-editor-entity-line.takeoff-editor-entity--sem-sealing_joint{stroke:var(--takeoff-sem-joint);stroke-width:var(--takeoff-sem-joint-width);stroke-dasharray:var(--takeoff-sem-joint-dash);stroke-opacity:1}.takeoff-editor-entity-line--selected.takeoff-editor-entity--sem-sealing_joint{stroke:var(--takeoff-sem-joint-selected);stroke-opacity:1}.takeoff-editor-entity-line.takeoff-editor-entity--sem-sealing_trim{stroke:var(--takeoff-sem-trim);stroke-width:var(--takeoff-sem-trim-width);stroke-dasharray:var(--takeoff-sem-trim-dash);stroke-opacity:1}.takeoff-editor-entity-line--selected.takeoff-editor-entity--sem-sealing_trim{stroke:var(--takeoff-sem-trim-selected);stroke-opacity:1}.takeoff-editor-entity-line.takeoff-editor-entity--sem-fascia{stroke:var(--takeoff-sem-fascia);stroke-width:var(--takeoff-sem-fascia-width);stroke-dasharray:var(--takeoff-sem-fascia-dash);stroke-opacity:1}.takeoff-editor-entity-line--selected.takeoff-editor-entity--sem-fascia{stroke:var(--takeoff-sem-fascia-selected);stroke-opacity:1}.takeoff-editor-entity-line.takeoff-editor-entity--sem-eaves{stroke:var(--takeoff-sem-eaves);stroke-width:var(--takeoff-sem-eaves-width);stroke-dasharray:var(--takeoff-sem-eaves-dash);stroke-opacity:1}.takeoff-editor-entity-line--selected.takeoff-editor-entity--sem-eaves{stroke:var(--takeoff-sem-eaves-selected);stroke-opacity:1}.takeoff-editor-entity-line.takeoff-editor-entity--sem-downpipe,.takeoff-editor-entity-line.takeoff-editor-entity--sem-gutter{stroke:var(--takeoff-sem-pipe);stroke-width:var(--takeoff-sem-pipe-width);stroke-dasharray:var(--takeoff-sem-pipe-dash);stroke-opacity:1}.takeoff-editor-entity-line--selected.takeoff-editor-entity--sem-downpipe,.takeoff-editor-entity-line--selected.takeoff-editor-entity--sem-gutter{stroke:var(--takeoff-sem-pipe-selected);stroke-opacity:1}.takeoff-editor-entity.takeoff-editor-entity--sem-custom_area{stroke:var(--takeoff-sem-custom);fill:var(--takeoff-sem-custom);stroke-opacity:1}.takeoff-editor-entity--selected.takeoff-editor-entity--sem-custom_area{stroke:var(--takeoff-sem-custom-selected);stroke-opacity:1}.takeoff-editor-entity-line.takeoff-editor-entity--sem-custom_length{stroke:var(--takeoff-sem-custom);stroke-width:var(--takeoff-sem-custom-width);stroke-dasharray:var(--takeoff-sem-custom-dash);stroke-opacity:1}.takeoff-editor-entity-line--selected.takeoff-editor-entity--sem-custom_length{stroke:var(--takeoff-sem-custom-selected);stroke-opacity:1}.takeoff-editor-entity--sem-wall,.takeoff-editor-entity--sem-opening,.takeoff-editor-entity--sem-other_deduction{stroke-opacity:.55;fill-opacity:var(--takeoff-other-fill-opacity)}.takeoff-editor-entity--sem-wall{fill-opacity:var(--takeoff-wall-fill-opacity)}.takeoff-editor-entity--sem-opening{fill-opacity:var(--takeoff-opening-fill-opacity)}.takeoff-editor-entity--selected.takeoff-editor-entity--sem-wall,.takeoff-editor-entity--selected.takeoff-editor-entity--sem-opening,.takeoff-editor-entity--selected.takeoff-editor-entity--sem-other_deduction{stroke-opacity:1;stroke-width:3px;fill-opacity:.34}.takeoff-editor-entity--selected.takeoff-editor-entity--sem-wall{stroke:var(--takeoff-wall-outline);stroke-width:calc(var(--takeoff-wall-outline-width) * 1.5)}.takeoff-editor-entity.takeoff-editor-entity--sem-custom_area{fill-opacity:.16}.takeoff-editor-entity.takeoff-editor-entity--sem-scaffold{stroke:var(--takeoff-sem-scaffold);fill:var(--takeoff-scaffold-fill);fill-opacity:var(--takeoff-scaffold-fill-opacity);stroke-opacity:1}.takeoff-editor-entity--selected.takeoff-editor-entity--sem-scaffold{stroke:var(--takeoff-sem-scaffold-selected);fill-opacity:.22;stroke-width:3px}.takeoff-editor-entity.takeoff-editor-entity--sem-scaffold_outline{stroke:var(--takeoff-sem-scaffold-input);fill:var(--takeoff-sem-scaffold-input);fill-opacity:.06;stroke-opacity:1;stroke-dasharray:6 4}.takeoff-editor-entity--selected.takeoff-editor-entity--sem-scaffold_outline{stroke:var(--takeoff-sem-scaffold-input-selected);fill-opacity:.12;stroke-width:3px}.takeoff-editor-entity-line.takeoff-editor-entity--sem-scaffold_axis,.takeoff-editor-entity-line.takeoff-editor-entity--sem-scaffold_ground{stroke:var(--takeoff-sem-scaffold-input);stroke-opacity:1;stroke-dasharray:6 4}.takeoff-editor-entity-line--selected.takeoff-editor-entity--sem-scaffold_axis,.takeoff-editor-entity-line--selected.takeoff-editor-entity--sem-scaffold_ground{stroke:var(--takeoff-sem-scaffold-input-selected);stroke-opacity:1}.takeoff-editor-entity.takeoff-editor-entity--sem-scaffold_dim_guide{stroke:var(--takeoff-sem-scaffold-input-selected);fill:var(--takeoff-sem-scaffold-input);fill-opacity:.05;stroke-opacity:1;stroke-dasharray:4 3}.takeoff-editor-entity--selected.takeoff-editor-entity--sem-scaffold_dim_guide{fill-opacity:.12;stroke-width:3px}.takeoff-dim-guide{fill:none;stroke:var(--takeoff-sem-scaffold-input-selected);stroke-width:1.5px;stroke-dasharray:4 3;pointer-events:none}.takeoff-dim-guide-label{fill:var(--takeoff-sem-scaffold-input-selected);font-size:var(--font-size-caption);pointer-events:none;-webkit-user-select:none;user-select:none}.takeoff-scaffold-mirror-preview{fill:var(--takeoff-sem-scaffold);fill-opacity:.1;stroke:var(--takeoff-sem-scaffold);stroke-width:2px;stroke-dasharray:8 4;pointer-events:none}.takeoff-editor-entity--selected.takeoff-editor-entity--sem-custom_area{fill-opacity:.34;stroke-width:3px}.takeoff-editor-entity-line--selected[class*=takeoff-editor-entity--sem-]{stroke-width:3px}.takeoff-editor-entity--reference{pointer-events:none;cursor:default}.takeoff-editor-entity-line{fill:none;stroke:var(--color-secondary);stroke-width:2px;cursor:pointer}.takeoff-editor-entity-line--selected{stroke:var(--color-primary)}.takeoff-editor-line-hit{stroke:#0000;stroke-width:10px;fill:none;pointer-events:stroke;cursor:pointer}.takeoff-editor-handle{fill:#0000;stroke:var(--color-primary);stroke-width:2px;cursor:grab;pointer-events:all}.takeoff-editor-handle--endpoint{stroke-width:3px}.takeoff-editor-handle-cross{stroke:var(--color-text-main);stroke-width:1px;stroke-dasharray:4 3;pointer-events:none}.takeoff-editor-edge-hit{stroke:#0000;stroke-width:10px;fill:none;pointer-events:stroke;cursor:move}.takeoff-editor-snap-guide{stroke:var(--color-info);stroke-width:1px;stroke-dasharray:5 4;pointer-events:none}.takeoff-editor-snap-marker{fill:none;stroke:var(--color-info);stroke-width:2px;pointer-events:none}.takeoff-editor-marquee-layer{pointer-events:none}.takeoff-editor-marquee{fill:var(--status-primary-bg);fill-opacity:.2;stroke:var(--color-primary);stroke-width:1.5px;stroke-dasharray:6 4}.takeoff-editor-debug{font-family:monospace;font-size:var(--font-size-xs);color:var(--color-text-sub);overflow-wrap:anywhere}.takeoff-draw-draft-layer{pointer-events:none}.takeoff-draw-draft{fill:none;stroke:var(--color-secondary);stroke-width:1.5px;stroke-dasharray:6 4}.takeoff-editor-handle-hit{fill:#0000;stroke:none;cursor:grab;pointer-events:all}.takeoff-status-line{gap:var(--space-card-gap);padding:var(--space-input-padding-x) var(--space-card-gap);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-readonly-bg);color:var(--color-text-main);font-size:var(--font-size-xs);flex-wrap:wrap;align-items:center;display:flex}.takeoff-save-status,.takeoff-role-status{align-items:center;gap:var(--space-form-gap);display:inline-flex}.takeoff-role-label{color:var(--color-text-sub);font-size:var(--font-size-xs)}.takeoff-role-hint{padding:0 var(--space-input-padding-x);border:var(--border-width-base) solid var(--status-warning-border);border-radius:var(--radius-card);background:var(--status-warning-bg);color:var(--color-text-main)}.takeoff-empty-stage{flex:1;justify-content:center;align-items:center;min-width:0;display:flex}.takeoff-empty-stage-inner{align-items:center;gap:var(--space-card-gap);flex-direction:column;display:flex}.takeoff-empty-stage-text{color:var(--color-text-sub);font-size:var(--font-size-caption);margin:0}.takeoff-step1-probe-layer{pointer-events:none}.takeoff-step1-probe-range{fill:none;stroke:var(--color-secondary);stroke-width:1px;stroke-dasharray:4 3}.takeoff-step1-probe-top{fill:none;stroke:var(--color-primary);stroke-width:2px}.takeoff-step1-probe-top--weak{stroke-dasharray:4 3}.takeoff-step1-probe-top-raw{fill:none;stroke:var(--color-primary);stroke-width:1px;stroke-dasharray:1 3}.takeoff-step1-probe-gl{fill:none;stroke:var(--color-secondary);stroke-width:3px;stroke-dasharray:10 4}.takeoff-step1-probe-outer{fill:none;stroke:var(--color-success);stroke-width:1.5px}.takeoff-step1-probe-detached{fill:none;stroke:var(--color-info);stroke-width:1px;stroke-dasharray:3 3}.takeoff-step1-probe-u{fill:var(--color-warning);fill-opacity:.18;stroke:none}.takeoff-step1-probe-u--open{fill:var(--color-disabled)}.takeoff-step1-probe-highlight{fill:var(--color-danger);fill-opacity:.25;stroke:var(--color-danger);stroke-width:1.5px}.takeoff-step1-probe-select{cursor:crosshair;touch-action:none}.takeoff-step1-probe-draft{fill:var(--status-primary-bg);fill-opacity:.2;stroke:var(--color-primary);stroke-width:1.5px;stroke-dasharray:6 4}.takeoff-step1-ref-layer{pointer-events:none}.takeoff-step1-ref{--takeoff-step1-ref-color:var(--color-secondary);color:var(--takeoff-step1-ref-color)}.takeoff-step1-ref--leftWall,.takeoff-step1-ref--rightWall{--takeoff-step1-ref-color:var(--color-danger)}.takeoff-step1-ref--ground{--takeoff-step1-ref-color:var(--color-info)}.takeoff-step1-ref--foundationTop{--takeoff-step1-ref-color:var(--color-success)}.takeoff-step1-ref--topLine{--takeoff-step1-ref-color:var(--color-warning)}.takeoff-step1-ref--topPointLeft,.takeoff-step1-ref--topPointRight{--takeoff-step1-ref-color:var(--color-primary)}.takeoff-step1-ref-mark{fill:none;stroke:var(--takeoff-step1-ref-color);stroke-width:3px}circle.takeoff-step1-ref-mark{stroke-width:2.5px}.takeoff-step1-ref--ambiguous .takeoff-step1-ref-mark{stroke-dasharray:8 4}.takeoff-step1-ref--undetermined .takeoff-step1-ref-mark{stroke-dasharray:2 4;stroke-opacity:.6}.takeoff-step1-ref--human .takeoff-step1-ref-mark{stroke-dasharray:none;stroke-opacity:1;stroke-width:4px}.takeoff-step1-ref--confirmed .takeoff-step1-ref-mark{stroke-width:5px}.takeoff-step1-ref--confirmed circle.takeoff-step1-ref-mark{fill:var(--takeoff-step1-ref-color);fill-opacity:.35}.takeoff-step1-ref--selected .takeoff-step1-ref-mark{stroke-width:6px}.takeoff-step1-ref-hit{fill:#0000;stroke:#0000;stroke-width:14px;pointer-events:all;cursor:move;touch-action:none}.takeoff-step1-ref-handle{fill:var(--color-readonly-bg);stroke:var(--takeoff-step1-ref-color);stroke-width:2px;pointer-events:all;cursor:crosshair;touch-action:none}.takeoff-step1-ref-text{fill:var(--color-text-main);font-size:var(--font-size-xs);paint-order:stroke;stroke:var(--color-readonly-bg);stroke-width:3px;pointer-events:none}.takeoff-step1-ref--measureHeightBottom,.takeoff-step1-ref--measureHeightTop,.takeoff-step1-ref--measureWidthLeft,.takeoff-step1-ref--measureWidthRight{--takeoff-step1-ref-color:var(--color-text-main)}.takeoff-step1-measure-pair{stroke:var(--color-text-main);stroke-width:1.5px;stroke-dasharray:6 4;pointer-events:none}.takeoff-step1-measure-place{cursor:crosshair;touch-action:none}.takeoff-step1-ref--confirmed rect.takeoff-step1-ref-mark{fill:var(--takeoff-step1-ref-color);fill-opacity:.35}.takeoff-step1-family-layer{pointer-events:none}.takeoff-step1-family-mark{stroke:var(--color-primary);stroke-width:1.5px;stroke-opacity:.8}.takeoff-step1-family--horizontal .takeoff-step1-family-mark{stroke:var(--color-info)}.takeoff-step1-family--evalOnly .takeoff-step1-family-mark{stroke:var(--color-warning);stroke-dasharray:3 3;stroke-width:2px}.takeoff-step1-family--excluded .takeoff-step1-family-mark{stroke:var(--color-disabled);stroke-dasharray:6 4;stroke-width:1px}.takeoff-step1-family--checked .takeoff-step1-family-mark{stroke-width:2.5px}.takeoff-step1-family-hit{stroke:#0000;stroke-width:8px;pointer-events:stroke;cursor:pointer}.takeoff-step1-family-halo{stroke:var(--color-danger);stroke-width:7px;stroke-opacity:.45;stroke-linecap:round}.takeoff-step1-family--selected .takeoff-step1-family-mark{stroke-width:2.5px;stroke-opacity:1}.takeoff-step1-family-review{flex-direction:column;gap:4px;max-height:240px;display:flex;overflow-y:auto}.takeoff-step1-family-review-row{border:1px solid var(--color-border);cursor:pointer;border-radius:4px;padding:4px 6px}.takeoff-step1-family-review-row--selected{border-color:var(--color-danger);background:var(--color-table-row-hover)}.takeoff-step6-print-source,.wall-print-root{display:none}@media print{body.wall-printing #root{display:none}body.wall-printing .wall-print-root{display:block}}.takeoff-step6-print-sheet{gap:var(--takeoff-print-column-gap);color:var(--color-text-main);font-family:var(--font-family-base);font-size:var(--font-size-xs);-webkit-print-color-adjust:exact;print-color-adjust:exact;flex-direction:column;display:flex}.takeoff-step6-print-header{align-items:baseline;column-gap:var(--takeoff-print-column-gap);flex-wrap:wrap;display:flex}.takeoff-step6-print-title{font-size:var(--font-size-section-title);font-weight:var(--font-weight-bold)}.takeoff-step6-print-body{grid-template-columns:var(--takeoff-print-figure-width) 1fr;column-gap:var(--takeoff-print-column-gap);align-items:start;display:grid}.takeoff-step6-print-figure{width:var(--takeoff-print-figure-width);height:var(--takeoff-print-figure-height);border:var(--border-width-base) solid var(--color-border);background:var(--color-panel-bg);position:relative;overflow:hidden}.takeoff-step6-print-table{gap:var(--space-form-gap);break-inside:avoid;flex-direction:column;min-width:0;display:flex}.takeoff-step6-print-scope,.takeoff-step6-print-note{color:var(--color-text-sub)}.takeoff-step6-print-section-title{font-weight:var(--font-weight-semibold)}.takeoff-step6-print-section table{border-collapse:collapse;table-layout:fixed;width:100%}.takeoff-step6-print-section td{padding:calc(var(--space-form-gap) / 4) 0;border-bottom:var(--border-width-base) solid var(--color-border);vertical-align:middle}.takeoff-step6-print-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.takeoff-step6-print-value{text-align:right;white-space:nowrap;width:40%}.takeoff-step6-print-sheet+.takeoff-step6-print-sheet{break-before:page}:root{--inv-col-name:24%;--inv-col-spec:24%;--inv-col-qty:10%;--inv-col-unit:8%;--inv-col-price:12%;--inv-col-amount:12%;--inv-col-note:10%}.inv-detail .inv-detail-c-name{width:var(--inv-col-name);text-align:left}.inv-detail .inv-detail-c-spec{width:var(--inv-col-spec);text-align:left}.inv-detail .inv-detail-c-qty{width:var(--inv-col-qty);text-align:center;white-space:nowrap}.inv-detail .inv-detail-c-unit{width:var(--inv-col-unit);text-align:center;white-space:nowrap}.inv-detail .inv-detail-c-price{width:var(--inv-col-price);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.inv-detail .inv-detail-c-amount{width:var(--inv-col-amount);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.inv-detail .inv-detail-c-note{width:var(--inv-col-note);text-align:left}.inv-breakdown-notice{margin:0 0 var(--rpt-gap-md);font-size:var(--rpt-fs-meta);color:var(--rpt-muted)}.inv-correction-note{margin:0 0 var(--rpt-gap-sm);font-size:var(--rpt-fs-meta);color:var(--rpt-muted)}.inv-cancel-note{margin:0 0 var(--rpt-gap-sm);font-size:var(--rpt-fs-meta);color:var(--color-danger)}.inv-summary-blocks{align-items:stretch;gap:var(--rpt-gap-lg);display:flex}.inv-summary-block{border:var(--rpt-border-w) solid var(--rpt-line);min-width:0;padding:var(--rpt-gap-md);flex:1 1 0}.inv-summary-block-title{font-size:var(--rpt-fs-mid);font-weight:var(--rpt-weight-bold);border-bottom:var(--rpt-border-w) solid var(--rpt-line-soft);padding-bottom:var(--rpt-gap-sm);margin-bottom:var(--rpt-gap-sm)}.inv-summary-kv{gap:var(--rpt-gap-sm) var(--rpt-gap-md);font-size:var(--rpt-fs-body);grid-template-columns:auto 1fr;margin:0;display:grid}.inv-summary-kv dt{color:var(--rpt-muted);white-space:nowrap}.inv-summary-kv dd{text-align:right;font-variant-numeric:tabular-nums;margin:0}.inv-summary-block--primary{background:var(--rpt-band-bg)}.inv-summary-value-primary{font-size:var(--rpt-fs-cover-total);font-weight:var(--rpt-weight-bold)}.inv-toolbar-note{font-size:var(--font-size-caption);color:var(--color-warning)}.inv-toolbar-warning{padding:var(--space-input-padding-y) var(--space-input-padding-x);border:var(--border-width-base) solid var(--status-warning-border,var(--color-warning));background:var(--status-warning-bg,#fff8e0);color:var(--color-warning);border-radius:var(--radius-input);font-size:var(--font-size-caption)}.inv-toolbar-toggle{align-items:center;gap:var(--space-form-gap);font-size:var(--font-size-caption);color:var(--color-text-main);display:flex}@media print{.inv-toolbar-warning,.inv-toolbar-toggle{display:none}@page inv-a4-landscape{size:A4 landscape;margin:var(--rpt-page-margin)}.inv-doc-root .rpt-page,.inv-doc-root .rpt-detail-page{page:inv-a4-landscape}}.faq-manual-page{width:100%;height:calc(100vh - var(--height-header) - 2 * var(--space-page-y));background:var(--color-page-bg);min-height:0;overflow:hidden}.faq-manual-page__frame{background:var(--color-page-bg);border:0;width:100%;height:100%;display:block}.takeoff-wf-shell{gap:var(--space-form-gap);flex-direction:column;display:flex}.takeoff-wf-body{align-items:stretch;gap:var(--space-form-gap);min-width:0;display:flex}.takeoff-wf-stepbar{gap:var(--space-form-gap);flex-wrap:wrap;display:flex}.takeoff-wf-step{align-items:baseline;gap:var(--space-form-gap);padding:var(--space-input-padding-y) var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-panel-bg);color:var(--color-text-main);font-size:var(--font-size-caption);cursor:pointer;display:flex}.takeoff-wf-step:disabled{cursor:default}.takeoff-wf-step-no{font-weight:var(--font-weight-bold)}.takeoff-wf-step-label{font-weight:var(--font-weight-medium)}.takeoff-wf-step-status{font-size:var(--font-size-xs);color:var(--color-text-sub)}.takeoff-wf-step--done{border-color:var(--status-success-border);background:var(--status-success-bg)}.takeoff-wf-step--done .takeoff-wf-step-status{color:var(--color-success)}.takeoff-wf-step--current{border-color:var(--color-primary);border-width:var(--border-width-strong);background:var(--status-primary-bg)}.takeoff-wf-step--current .takeoff-wf-step-status{color:var(--color-primary)}.takeoff-wf-step--await{border-color:var(--status-warning-border);background:var(--status-warning-bg)}.takeoff-wf-step--await .takeoff-wf-step-status{color:var(--status-warning-strong)}.takeoff-wf-step--here{border-color:var(--color-selected);border-width:var(--border-width-strong);font-weight:var(--font-weight-semibold)}.takeoff-wf-step--done.takeoff-wf-step--here{background:var(--status-success-border)}.takeoff-wf-step--current.takeoff-wf-step--here{background:var(--status-primary-border)}.takeoff-wf-step--await.takeoff-wf-step--here{background:var(--status-warning-border)}.takeoff-wf-step--todo.takeoff-wf-step--here{background:var(--status-disabled-border);color:var(--color-text-main)}.takeoff-wf-step--todo{border-color:var(--status-disabled-border);background:var(--status-disabled-bg);color:var(--color-disabled)}.takeoff-tool-rail{gap:var(--space-form-gap);width:168px;padding:var(--space-form-gap);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-readonly-bg);flex-direction:column;flex:0 0 168px;display:flex;overflow:hidden auto}.takeoff-tool-rail-group{gap:var(--radius-small);padding-bottom:var(--space-form-gap);border-bottom:var(--border-width-strong) solid var(--color-border);flex-direction:column;display:flex}.takeoff-tool-rail-group:last-child{border-bottom:none;padding-bottom:0}.takeoff-tool-rail-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-main);padding-bottom:var(--radius-small)}.takeoff-tool-rail-group--emphasis{border-bottom-color:var(--color-primary)}.takeoff-tool-rail-label--emphasis{color:var(--color-primary);font-weight:var(--font-weight-bold)}.takeoff-tool-rail-items{gap:var(--radius-small);grid-template-columns:1fr;display:grid}.takeoff-tool-rail-items--2col{grid-template-columns:1fr 1fr}.takeoff-tool-button--wide{grid-column:1/-1}.takeoff-tool-button{width:100%;padding:var(--space-form-gap) var(--radius-small);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-button);background:var(--color-panel-bg);color:var(--color-text-main);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-align:center;cursor:pointer;line-height:1.3;display:block}.takeoff-tool-button--swatch{padding-left:calc(var(--radius-small) * 2);padding-right:0;position:relative}.takeoff-tool-button-swatch{top:15%;left:calc(var(--radius-small) / 2);width:var(--takeoff-tool-swatch-width);border-radius:calc(var(--takeoff-tool-swatch-width) / 2);height:70%;position:absolute}.takeoff-tool-button:disabled{border-color:var(--status-disabled-border);background:var(--status-disabled-bg);color:var(--color-disabled);cursor:default}.takeoff-tool-button--active{border-color:var(--status-tentative-soft-border);background:var(--status-tentative-soft-bg);color:var(--status-tentative-soft-text);font-weight:var(--font-weight-semibold)}.takeoff-tool-button--action{border-color:var(--color-primary);background:var(--color-primary);color:var(--button-primary-text);font-weight:var(--font-weight-semibold)}.takeoff-tool-button--action:disabled{border-color:var(--status-disabled-border);background:var(--button-disabled-bg);color:var(--button-disabled-text)}.takeoff-tool-button--danger{border-color:var(--status-danger-border);background:var(--status-danger-bg);color:var(--color-danger)}.takeoff-wf-group{align-items:center;gap:var(--space-form-gap);display:flex}.takeoff-wf-group-label{font-size:var(--font-size-xs);color:var(--color-text-sub)}.takeoff-wf-group-item{min-width:var(--height-button-small);height:var(--height-button-small);padding:0 var(--space-form-gap);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-button);background:var(--color-panel-bg);color:var(--color-text-main);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer}.takeoff-wf-group-item--active{border-color:var(--color-primary);border-width:var(--border-width-strong);background:var(--status-primary-bg);color:var(--color-primary)}.takeoff-wf-footer{align-items:center;gap:var(--space-card-gap);padding:var(--space-form-gap) var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-readonly-bg);font-size:var(--font-size-xs);flex-wrap:wrap;display:flex}.takeoff-wf-footer-spacer{flex:1}.takeoff-wf-save{color:var(--color-text-sub)}.takeoff-wf-save--saved{color:var(--color-success)}.takeoff-wf-save--error,.takeoff-wf-save--conflict{color:var(--color-danger);font-weight:var(--font-weight-semibold)}.takeoff-wf-retry{padding:var(--radius-small) var(--space-input-padding-x);border:var(--border-width-base) solid var(--status-danger-border);border-radius:var(--radius-button);background:var(--status-danger-bg);color:var(--color-danger);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer}.takeoff-wf-blocked{color:var(--status-warning-strong)}.takeoff-wf-complete{padding:var(--space-form-gap) var(--space-card-gap);border:var(--border-width-base) solid var(--color-primary);border-radius:var(--radius-button);background:var(--color-primary);color:var(--button-primary-text);font-size:var(--font-size-button);font-weight:var(--font-weight-semibold);cursor:pointer}.takeoff-wf-complete:disabled{border-color:var(--status-disabled-border);background:var(--button-disabled-bg);color:var(--button-disabled-text);cursor:default}.takeoff-wf-guard{align-items:center;gap:var(--space-card-gap);padding:var(--space-form-gap) var(--space-input-padding-x);border:var(--border-width-base) solid var(--status-warning-border);border-radius:var(--radius-card);background:var(--status-warning-bg);font-size:var(--font-size-xs);color:var(--color-text-main);flex-wrap:wrap;display:flex}.takeoff-wf-guard-text{flex:1}.takeoff-wf-guard-cancel{padding:var(--radius-small) var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-button);background:var(--color-panel-bg);color:var(--color-text-main);font-size:var(--font-size-xs);cursor:pointer}.takeoff-wf-guard-proceed{padding:var(--radius-small) var(--space-input-padding-x);border:var(--border-width-base) solid var(--status-danger-border);border-radius:var(--radius-button);background:var(--status-danger-bg);color:var(--color-danger);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer}.takeoff-wf-hint{padding:var(--space-form-gap) var(--space-input-padding-x);border:var(--border-width-base) solid var(--status-primary-border);border-radius:var(--radius-card);background:var(--status-primary-bg);color:var(--color-text-main);font-size:var(--font-size-xs)}.takeoff-wf-steprow{align-items:center;gap:var(--space-form-gap);flex-wrap:wrap;display:flex}.takeoff-wf-todo{align-items:center;gap:var(--space-card-gap);padding:var(--space-form-gap) var(--space-input-padding-x);border:var(--border-width-base) solid var(--status-primary-border);border-left-width:var(--border-width-strong);border-left-color:var(--color-primary);border-radius:var(--radius-card);background:var(--status-primary-bg);color:var(--color-text-main);font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);flex-wrap:wrap;display:flex}.takeoff-wf-todo-text{flex:auto}.takeoff-wf-todo-blocked{color:var(--color-text-sub);font-weight:var(--font-weight-normal)}.takeoff-wf-todo-complete{flex-shrink:0}.takeoff-wf-save-detail{color:var(--color-danger)}.takeoff-basis-panel{gap:var(--space-form-gap);width:370px;max-height:clamp(560px,100vh - 290px,1400px);padding:var(--space-form-gap);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-readonly-bg);font-size:var(--font-size-xs);color:var(--color-text-main);flex-direction:column;flex-shrink:0;display:flex;overflow-y:auto}.takeoff-basis-panel-header{justify-content:space-between;align-items:center;gap:var(--space-form-gap);display:flex}.takeoff-basis-panel-title{font-size:var(--font-size-section-title);font-weight:var(--font-weight-semibold)}.takeoff-basis-status{font-weight:var(--font-weight-semibold)}.takeoff-basis-hint{padding:var(--space-form-gap) var(--space-input-padding-x);border:var(--border-width-base) solid var(--status-primary-border);border-radius:var(--radius-card);background:var(--status-primary-bg)}.takeoff-basis-notice{padding:var(--space-form-gap) var(--space-input-padding-x);border:var(--border-width-base) solid var(--status-warning-border);border-radius:var(--radius-card);background:var(--status-warning-bg)}.takeoff-basis-confirmed{gap:var(--radius-small);color:var(--color-success);flex-direction:column;display:flex}.takeoff-basis-field{gap:var(--radius-small);flex-direction:column;display:flex}.takeoff-scaffold-settings-grid{gap:var(--space-form-gap);grid-template-columns:1fr 1fr;display:grid}.takeoff-scaffold-settings-grid .takeoff-basis-field-input{min-width:0}.takeoff-scaffold-settings-grid .takeoff-measurement-input{box-sizing:border-box;flex:auto;width:100%;min-width:0}.takeoff-scaffold-settings-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.takeoff-scaffold-setting-label{white-space:nowrap}.takeoff-scaffold-computed{box-sizing:border-box;width:100%;padding:var(--space-form-gap) var(--space-input-padding-x);border:var(--border-width-base) solid transparent;border-radius:var(--radius-card);background:var(--color-readonly-bg);color:var(--color-text-main);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);display:block}.takeoff-basis-field-label{color:var(--color-text-sub)}.takeoff-basis-field-input{align-items:center;gap:var(--space-form-gap);display:flex}.takeoff-basis-actions{align-items:center;gap:var(--space-form-gap);flex-wrap:wrap;display:flex}.takeoff-right-panel{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-readonly-bg);width:370px;max-height:clamp(560px,100vh - 290px,1400px);font-size:var(--font-size-xs);color:var(--color-text-main);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.takeoff-right-panel-tabs{align-items:center;gap:var(--radius-small);padding:var(--space-form-gap);border-bottom:var(--border-width-base) solid var(--color-border);background:var(--color-panel-bg);flex-wrap:wrap;display:flex}.takeoff-right-panel-tabs-spacer{flex:1}.takeoff-right-panel-tab{padding:var(--radius-small) var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-button);background:var(--color-panel-bg);color:var(--color-text-sub);font-size:var(--font-size-xs);cursor:pointer}.takeoff-right-panel-tab--active{border-color:var(--status-tentative-soft-border);background:var(--status-tentative-soft-bg);color:var(--status-tentative-soft-text);font-weight:var(--font-weight-semibold)}.takeoff-right-panel-action{padding:var(--radius-small) var(--space-form-gap);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-button);background:var(--color-panel-bg);color:var(--color-text-sub);font-size:var(--font-size-xs);cursor:pointer}.takeoff-right-panel-body{padding:var(--space-form-gap);overflow-y:auto}.takeoff-right-panel--scroll-all{overflow-y:auto}.takeoff-right-panel--scroll-all .takeoff-right-panel-body{flex-shrink:0;overflow:visible}.takeoff-step2-section{gap:var(--space-form-gap);padding-top:var(--space-form-gap);border-top:var(--border-width-base) solid var(--color-border);flex-direction:column;display:flex}.takeoff-step2-section-title{font-weight:var(--font-weight-bold);color:var(--color-text-main)}.takeoff-step2-radio{align-items:center;gap:var(--space-form-gap);cursor:pointer;display:flex}.takeoff-step2-basis{gap:var(--space-form-gap);padding:var(--space-form-gap);border-radius:var(--radius-card);background:var(--color-readonly-bg);flex-direction:column;display:flex}.takeoff-step2-basis-head{align-items:center;gap:var(--space-form-gap);display:flex}.takeoff-step2-basis-title{font-weight:var(--font-weight-bold);flex:1}.takeoff-step2-basis-grid{gap:var(--space-form-gap);grid-template-columns:1fr 1fr;display:grid}.takeoff-step2-basis-field{gap:var(--radius-small);flex-direction:column;min-width:0;display:flex}.takeoff-step2-basis-field .takeoff-measurement-input{box-sizing:border-box;width:100%}.takeoff-step2-status{color:var(--color-text-sub);white-space:nowrap}.takeoff-step2-status--done{color:var(--color-success);font-weight:var(--font-weight-medium)}.takeoff-step2-card{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-panel-bg);flex-direction:column;display:flex}.takeoff-step2-card--open{border-color:var(--color-primary);border-width:var(--border-width-strong)}.takeoff-step2-card-head{align-items:center;gap:var(--space-form-gap);padding:var(--space-form-gap);cursor:pointer;display:flex}.takeoff-step2-card-number,.takeoff-step2-card-name{font-weight:var(--font-weight-bold)}.takeoff-step2-card-spacer{flex:1}.takeoff-step2-card-chevron{color:var(--color-text-sub)}.takeoff-part-card-excluded{padding:0 var(--space-form-gap);border:var(--border-width-base) solid var(--status-warning-border);border-radius:var(--radius-small);background:var(--status-warning-bg);white-space:nowrap}.takeoff-part-card-complete{padding:0 var(--space-form-gap)}.takeoff-part-cards-basis{padding-top:var(--space-form-gap);border-top:var(--border-width-base) solid var(--color-border)}.takeoff-part-cards-basis>summary{cursor:pointer;font-weight:var(--font-weight-bold)}.takeoff-part-state-btn{padding:0 var(--space-form-gap);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-small);background:var(--color-readonly-bg);color:var(--color-text-sub);font-size:inherit;white-space:nowrap;cursor:pointer}.takeoff-part-state-btn:disabled{cursor:default}.takeoff-part-state-btn--done{border-color:var(--status-success-border);background:var(--status-success-bg);color:var(--color-success);font-weight:var(--font-weight-medium)}.takeoff-part-state-btn--target{border-color:var(--status-primary-border);background:var(--status-primary-bg);color:var(--color-primary)}.takeoff-part-state-btn--excluded{border-color:var(--status-warning-border);background:var(--status-warning-bg);color:var(--color-text-main)}.takeoff-part-card-toggle{padding:0 var(--space-form-gap);font-size:inherit;cursor:pointer;background:0 0;border:none}.takeoff-step2-direction-select{padding:var(--space-input-padding-y) var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-editable-bg);color:var(--color-text-main);font-size:var(--font-size-xs)}.takeoff-part-card-head--swatch{padding-left:calc(var(--space-form-gap) + var(--radius-small));padding-right:calc(var(--space-form-gap) - var(--radius-small));position:relative}.takeoff-part-card-swatch{top:15%;left:calc(var(--radius-small) / 2);width:var(--takeoff-tool-swatch-width);border-radius:calc(var(--takeoff-tool-swatch-width) / 2);height:70%;position:absolute}.takeoff-part-card--selected{border-color:var(--color-primary);border-width:var(--border-width-strong);background:var(--status-primary-bg)}.takeoff-step2-card-body{gap:var(--space-form-gap);padding:var(--space-form-gap);border-top:var(--border-width-base) solid var(--color-border);flex-direction:column;display:flex}.takeoff-right-panel-body .takeoff-basis-panel,.takeoff-right-panel-body .takeoff-review-panel,.takeoff-right-panel-body .takeoff-quantity-panel,.takeoff-right-panel-body .takeoff-ai-panel{background:0 0;border:none;width:auto;max-height:none;padding:0;overflow:visible}.takeoff-basis-confirmed--set{font-weight:var(--font-weight-semibold)}.takeoff-basis-change{gap:var(--space-card-gap);color:var(--color-text-sub);display:flex}.takeoff-quantity-panel{gap:var(--space-form-gap);font-size:var(--font-size-xs);color:var(--color-text-main);flex-direction:column;display:flex}.takeoff-quantity-section{gap:var(--radius-small);flex-direction:column;display:flex}.takeoff-quantity-list{gap:var(--radius-small);flex-direction:column;margin:0;display:flex}.takeoff-quantity-row{justify-content:space-between;align-items:baseline;gap:var(--space-form-gap);display:flex}.takeoff-quantity-row dt{color:var(--color-text-sub)}.takeoff-quantity-row dd{font-variant-numeric:tabular-nums;margin:0}.takeoff-quantity-row--total{padding-top:var(--radius-small);border-top:var(--border-width-base) solid var(--color-border);font-weight:var(--font-weight-semibold)}.takeoff-quantity-row--total dt{color:var(--color-text-main)}.takeoff-quantity-note{color:var(--color-text-sub)}.takeoff-step-panel{gap:var(--space-form-gap);font-size:var(--font-size-xs);color:var(--color-text-main);flex-direction:column;display:flex}.takeoff-step-panel-note{padding:var(--space-form-gap) var(--space-input-padding-x);border:var(--border-width-base) solid var(--status-primary-border);border-radius:var(--radius-card);background:var(--status-primary-bg)}.takeoff-step-panel-rows{gap:var(--space-form-gap);flex-direction:column;display:flex}.takeoff-step-panel-row{gap:var(--radius-small);padding:var(--space-form-gap);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);flex-direction:column;display:flex}.takeoff-step-panel-row--active{border-color:var(--status-warning-border);background:var(--status-warning-bg)}.takeoff-prep-target{background:var(--color-panel-bg)}.takeoff-prep-target,.takeoff-prep-target--selected{cursor:pointer}.takeoff-prep-target--selected{border-color:var(--color-primary);border-width:var(--border-width-strong);background:var(--status-primary-bg)}.takeoff-prep-status--done{color:var(--color-success);font-weight:var(--font-weight-medium)}.takeoff-step-panel-actions{align-items:center;gap:var(--space-form-gap);flex-wrap:wrap;display:flex}.takeoff-right-panel-confirm{align-items:center;gap:var(--space-form-gap);padding:var(--space-form-gap) var(--space-input-padding-x);border-bottom:var(--border-width-base) solid var(--color-border);flex-wrap:wrap;display:flex}.takeoff-right-panel-confirm-spacer{flex:auto}.takeoff-step-confirm{padding:var(--space-form-gap) var(--space-card-gap);border:var(--border-width-base) solid var(--color-primary);border-radius:var(--radius-button);background:var(--color-primary);color:var(--button-primary-text);font-size:var(--font-size-button);font-weight:var(--font-weight-semibold);cursor:pointer}.takeoff-step-confirm--done{border-color:var(--status-success-border);background:var(--status-success-bg);color:var(--color-success);cursor:default}.takeoff-step-confirm:disabled{border-color:var(--status-disabled-border);background:var(--button-disabled-bg);color:var(--button-disabled-text);cursor:default}.takeoff-step-confirm--done:disabled{border-color:var(--status-success-border);background:var(--status-success-bg);color:var(--color-success)}.takeoff-step-confirm-blocked{color:var(--color-text-sub);font-size:var(--font-size-xs)}.takeoff-tool-rail-input-wrap{gap:var(--space-form-gap);margin-bottom:var(--space-form-gap);flex-direction:column;display:flex}.takeoff-tool-rail-input-label{font-size:var(--font-size-xs);color:var(--color-text-sub)}.takeoff-tool-rail-input{box-sizing:border-box;width:100%;padding:var(--space-input-padding-y) var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-editable-bg);color:var(--color-text-main);font-size:var(--font-size-caption)}.takeoff-tool-rail-input-hint{font-size:var(--font-size-xs);color:var(--color-text-sub)}.takeoff-tool-rail-inline-input{align-items:center;gap:var(--space-form-gap);min-width:0;display:flex}.takeoff-tool-rail-inline-input .takeoff-tool-rail-input-label{flex:none}.takeoff-tool-rail-input--inline{min-width:0;padding:calc(var(--space-form-gap) / 2) var(--space-form-gap);font-size:var(--font-size-xs);flex:auto}.takeoff-tool-rail-heading{justify-content:space-between;align-items:center;gap:var(--space-form-gap);display:flex}.takeoff-tool-rail-collapse{text-align:left;cursor:pointer;background:0 0;border:none;margin:0;padding-top:0;padding-left:0;padding-right:0;font-family:inherit}.takeoff-tool-rail-checkbox{align-items:center;gap:var(--space-form-gap);font-size:var(--font-size-xs);color:var(--color-text-sub);cursor:pointer;white-space:nowrap;display:inline-flex}.takeoff-tool-rail-checkbox--block{white-space:normal;color:var(--color-text-main);align-items:flex-start}.takeoff-tool-rail-checkbox--block input{flex:none;margin:0}.takeoff-tool-rail-input-hint{overflow-wrap:anywhere}.takeoff-tool-rail--wide{flex:0 0 196px;width:196px}.takeoff-editor-work{display:contents}.takeoff-editor-work[hidden]{display:none}.takeoff-step6-output{gap:var(--space-form-gap);padding-bottom:var(--space-form-gap);border-bottom:var(--border-width-base) solid var(--color-border);flex-direction:column;display:flex}.takeoff-step6-output-group{align-items:center;gap:var(--space-form-gap);flex-wrap:wrap;display:flex}.takeoff-step6-output-label{font-weight:var(--font-weight-semibold)}.takeoff-step6-output-button{padding:var(--space-input-padding-y) var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-readonly-bg);color:var(--color-text-sub);font-size:var(--font-size-caption);cursor:not-allowed}.takeoff-results-swatch{width:var(--takeoff-quantity-swatch-width);height:var(--takeoff-quantity-swatch-height);margin-right:calc(var(--space-form-gap) / 2);border-radius:var(--takeoff-quantity-swatch-radius);vertical-align:middle;display:inline-block}.takeoff-results-swatch--wall{background:var(--takeoff-wall-outline)}.takeoff-results-swatch--opening{background:var(--takeoff-wall-opening)}.takeoff-results-swatch--other{background:var(--takeoff-other-outline)}.takeoff-results-swatch--scaffold{background:var(--takeoff-sem-scaffold)}.takeoff-results-swatch--sash{background:var(--takeoff-sem-sash)}.takeoff-results-swatch--trim{background:var(--takeoff-sem-trim)}.takeoff-results-swatch--joint{background:var(--takeoff-sem-joint)}.takeoff-results-swatch--fascia{background:var(--takeoff-sem-fascia)}.takeoff-results-swatch--eaves{background:var(--takeoff-sem-eaves)}.takeoff-results-swatch--pipe{background:var(--takeoff-sem-pipe)}.takeoff-results-swatch--custom{background:var(--takeoff-sem-custom)}.takeoff-results-about-toggle{color:var(--color-text-sub);font-family:inherit;font-size:var(--font-size-xs);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding-left:0;padding-right:0}.takeoff-results-about{gap:var(--space-form-gap);flex-direction:column;display:flex}.takeoff-step6-output-button--active:not(:disabled){border-color:var(--color-primary);background:var(--color-panel-bg);color:var(--color-primary);cursor:pointer}.takeoff-step6-panel .takeoff-results{padding:0}.takeoff-results-host{position:relative}.takeoff-results{gap:var(--space-form-gap);padding:var(--space-card-gap);color:var(--color-text-main);font-size:var(--font-size-xs);flex-direction:column;display:flex}.takeoff-results-header{align-items:center;gap:var(--space-form-gap);flex-wrap:wrap;display:flex}.takeoff-results-title{font-size:var(--font-size-section-title);font-weight:var(--font-weight-bold)}.takeoff-results-meta{color:var(--color-text-sub)}.takeoff-results-header-spacer{flex:auto}.takeoff-results-back{padding:var(--space-input-padding-y) var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-button);background:var(--color-panel-bg);color:var(--color-text-main);font-size:var(--font-size-button);cursor:pointer}.takeoff-results-sections{gap:var(--space-card-gap);grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));display:grid}.takeoff-results-section{gap:var(--radius-small);padding:var(--space-form-gap);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);flex-direction:column;display:flex}.takeoff-results-section-title{font-weight:var(--font-weight-bold)}.takeoff-results-row--uncollected dd{color:var(--color-text-sub)}.takeoff-results-row--fallback dt:after{content:"（仮）";color:var(--color-text-sub)}.takeoff-dev-note{margin:0 0 var(--space-sidebar-padding);padding:var(--space-input-padding-x) var(--space-card-gap);border:var(--border-width-base) solid var(--status-warning-border);border-radius:var(--radius-card);background:var(--status-warning-bg);color:var(--color-text-main);font-size:var(--font-size-caption)}.takeoff-project-header{align-items:center;gap:var(--space-card-gap);margin:0 0 var(--space-sidebar-padding);flex-wrap:wrap;display:flex}.takeoff-project-back{height:var(--height-button-small);padding:0 var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-small);background:var(--color-panel-bg);color:var(--color-text-main);font-size:var(--font-size-caption);cursor:pointer;white-space:nowrap}.takeoff-project-name{font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);color:var(--color-text-main)}.takeoff-history{gap:var(--space-sidebar-padding);width:100%;max-width:560px;margin-bottom:var(--space-sidebar-padding);text-align:left;flex-direction:column;display:flex}.takeoff-history-section{gap:var(--space-form-gap);flex-direction:column;display:flex}.takeoff-history-title{font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);color:var(--color-text-sub);margin:0}.takeoff-history-list{gap:var(--space-form-gap);flex-direction:column;display:flex}.takeoff-history-card{width:100%;padding:var(--space-input-padding-x) var(--space-card-gap);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-input);background:var(--color-panel-bg);color:var(--color-text-main);text-align:left;cursor:pointer;flex-direction:column;align-items:flex-start;gap:2px;display:flex}.takeoff-history-card:disabled{cursor:progress;opacity:.6}.takeoff-history-card--current{border-color:var(--color-primary)}.takeoff-history-card--current .takeoff-history-name{font-size:var(--font-size-section-title);font-weight:var(--font-weight-bold)}.takeoff-history-name{font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.takeoff-history-date{font-size:var(--font-size-xs);color:var(--color-text-sub)}.takeoff-history-note,.takeoff-history-message{font-size:var(--font-size-caption);color:var(--color-text-sub);line-height:1.6}.takeoff-history-message{color:var(--color-danger)}.takeoff-workspace-title{margin:0 0 var(--space-sidebar-padding);font-size:var(--font-size-page-title);font-weight:var(--font-weight-bold);color:var(--color-text-main)}.takeoff-viewport-wrap{margin-bottom:var(--space-sidebar-padding)}.takeoff-viewport{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-readonly-bg);justify-content:center;align-items:center;min-height:480px;display:flex;overflow:hidden}.takeoff-viewport-empty{color:var(--color-text-sub);font-size:var(--font-size-caption)}.takeoff-viewport-image{object-fit:contain;max-width:100%;max-height:480px}.takeoff-viewport-pdf{border:none;width:100%;height:480px}.takeoff-file-picker{align-items:center;gap:var(--space-card-gap);flex-wrap:wrap;display:flex}.takeoff-hidden-file-input{display:none}.takeoff-file-picker-info{flex-direction:column;display:flex}.takeoff-file-picker-name{font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);color:var(--color-text-main)}.takeoff-file-picker-format{font-size:var(--font-size-xs);color:var(--color-text-sub)}.takeoff-drive-picker-overlay{z-index:1000;background:var(--modal-backdrop-bg);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.takeoff-drive-picker{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-panel-bg);width:520px;max-width:90vw;max-height:80vh;box-shadow:var(--shadow-popover);flex-direction:column;display:flex;overflow:hidden}.takeoff-drive-picker-header{justify-content:space-between;align-items:center;gap:var(--space-card-gap);padding:var(--space-sidebar-padding) var(--space-header-padding-x);border-bottom:var(--border-width-base) solid var(--color-border);background:var(--table-header-bg);display:flex}.takeoff-drive-picker-title{font-size:var(--font-size-section-title);font-weight:var(--font-weight-bold);color:var(--color-text-main)}.takeoff-drive-picker-close{cursor:pointer;padding:0 var(--radius-small);line-height:1;font-size:var(--font-size-section-title);color:var(--color-text-sub);background:0 0;border:none}.takeoff-drive-picker-body{padding:var(--space-header-padding-x);overflow-y:auto}.takeoff-drive-picker-note,.takeoff-drive-picker-error{font-size:var(--font-size-caption);color:var(--color-text-sub);margin:0;line-height:1.6}.takeoff-drive-picker-error{color:var(--color-danger)}.takeoff-drive-picker-grid{gap:var(--space-card-gap);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));margin:0;padding:0;list-style:none;display:grid}.takeoff-drive-picker-card{align-items:stretch;gap:var(--space-form-gap);width:100%;padding:var(--space-form-gap);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-input);background:var(--color-panel-bg);color:var(--color-text-main);font-size:var(--font-size-caption);text-align:left;cursor:pointer;flex-direction:column;display:flex}.takeoff-drive-picker-card:disabled{cursor:not-allowed;opacity:.6}.takeoff-drive-picker-thumb{border-radius:var(--radius-small);background:var(--color-readonly-bg);justify-content:center;align-items:center;height:110px;display:flex;position:relative;overflow:hidden}.takeoff-drive-picker-thumb-img{object-fit:contain;max-width:100%;max-height:100%}.takeoff-drive-picker-thumb-fallback{font-size:var(--font-size-caption);color:var(--color-text-sub)}.takeoff-drive-picker-badge{right:var(--radius-small);bottom:var(--radius-small);padding:0 var(--radius-small);border-radius:var(--radius-small);background:var(--status-disabled-bg);color:var(--color-text-sub);font-size:calc(var(--font-size-caption) - 2px);position:absolute}.takeoff-drive-picker-card-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.takeoff-file-picker-error{width:100%;padding:var(--space-input-padding-x) var(--space-card-gap);border:var(--border-width-base) solid var(--status-danger-border);border-radius:var(--radius-small);background:var(--status-danger-bg);color:var(--color-danger);font-size:var(--font-size-caption)}.takeoff-drawing-set{gap:var(--space-form-gap);margin:0 0 var(--space-sidebar-padding);flex-direction:column;display:flex}.takeoff-drawing-set-row{align-items:center;gap:var(--space-form-gap);flex-wrap:wrap;display:flex}.takeoff-drawing-set-title,.takeoff-drawing-set-note{font-size:var(--font-size-caption);color:var(--color-text-sub)}.takeoff-drawing-set-tabs{gap:var(--space-form-gap);flex-wrap:wrap;display:inline-flex}.takeoff-drawing-set-tab-wrap{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-small);display:inline-flex;overflow:hidden}.takeoff-drawing-set-tab,.takeoff-drawing-set-remove,.takeoff-drawing-set-add{height:var(--height-button-small);padding:0 var(--space-input-padding-x);background:var(--color-panel-bg);color:var(--color-text-main);font-size:var(--font-size-caption);cursor:pointer;border:0}.takeoff-drawing-set-tab--active,.takeoff-drawing-set-tab--active:disabled{background:var(--status-primary-strong-bg);color:var(--status-primary-strong-text);cursor:default}.takeoff-drawing-set-remove{border-left:var(--border-width-base) solid var(--color-border);color:var(--color-text-sub)}.takeoff-drawing-set-add{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-small)}.takeoff-drawing-set-tab:disabled,.takeoff-drawing-set-remove:disabled,.takeoff-drawing-set-add:disabled{cursor:default}.takeoff-drawing-set-add-panel{gap:var(--space-form-gap);padding:var(--space-input-padding-x) var(--space-card-gap);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-panel-bg);flex-direction:column;display:flex}.takeoff-drawing-set-add-panel--row{flex-basis:100%}.takeoff-drawing-set-warning{padding:var(--space-input-padding-x) var(--space-card-gap);border:var(--border-width-base) solid var(--status-warning-border);border-radius:var(--radius-card);background:var(--status-warning-bg);color:var(--color-text-main);font-size:var(--font-size-caption)}.takeoff-drawing-set--panel{padding:var(--space-form-gap);border-bottom:var(--border-width-base) solid var(--color-border);margin:0}.takeoff-drawing-set--panel .takeoff-drawing-set-tabs{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.takeoff-drawing-set--panel .takeoff-drawing-set-tab-wrap{min-width:0;display:flex}.takeoff-drawing-set-hide{margin-left:auto}.takeoff-drawing-set--panel .takeoff-drawing-set-tab{min-width:0;padding:0 var(--space-input-padding-x);text-align:left;white-space:nowrap;text-overflow:ellipsis;flex:auto;overflow:hidden}.takeoff-drawing-set-tab-cell{min-width:0;position:relative}.takeoff-drawing-set-tab-cell .takeoff-drawing-set-tab-wrap{width:100%}.takeoff-drawing-set-more{padding:0 var(--space-form-gap);flex:none}.takeoff-drawing-set-menu{z-index:10;gap:var(--radius-small);min-width:100%;padding:var(--space-form-gap);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-small);background:var(--color-panel-bg);flex-direction:column;display:flex;position:absolute;top:100%;right:0}.takeoff-drawing-set-menu-item{height:var(--height-button-small);padding:0 var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-small);background:var(--color-panel-bg);color:var(--color-text-main);font-size:var(--font-size-caption);text-align:left;white-space:nowrap;cursor:pointer}.takeoff-drawing-set-menu-item:disabled{color:var(--color-text-sub);cursor:default}.takeoff-drawing-set-status{padding:var(--space-input-padding-x) var(--space-card-gap);border:var(--border-width-base) solid var(--status-primary-border);border-radius:var(--radius-card);background:var(--status-primary-bg);color:var(--color-text-main);font-size:var(--font-size-caption)}.takeoff-drawing-set--panel{border-bottom:none}.takeoff-drawing-set--panel .takeoff-drawing-set-tabs{border-bottom:var(--border-width-base) solid var(--color-border);gap:0}.takeoff-drawing-set--panel .takeoff-drawing-set-tab-wrap{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-small) var(--radius-small) 0 0;background:var(--color-page-bg);margin-bottom:calc(-1 * var(--border-width-base))}.takeoff-drawing-set--panel .takeoff-drawing-set-tab-cell+.takeoff-drawing-set-tab-cell .takeoff-drawing-set-tab-wrap{margin-left:calc(-1 * var(--border-width-base))}.takeoff-drawing-set--panel .takeoff-drawing-set-tab-wrap--active{z-index:1;background:var(--color-readonly-bg);border-top:var(--border-width-strong) solid var(--color-primary);border-bottom-color:var(--color-readonly-bg);position:relative}.takeoff-drawing-set--panel .takeoff-drawing-set-tab,.takeoff-drawing-set--panel .takeoff-drawing-set-remove{color:var(--color-text-sub);background:0 0}.takeoff-drawing-set--panel .takeoff-drawing-set-tab--active,.takeoff-drawing-set--panel .takeoff-drawing-set-tab--active:disabled{color:var(--color-primary);font-weight:var(--font-weight-semibold);background:0 0}.takeoff-entry{gap:var(--space-card-gap);flex-direction:column;display:flex}.takeoff-entry-notice{padding:var(--space-input-padding-x) var(--space-card-gap);border:var(--border-width-base) solid var(--status-success-border);border-radius:var(--radius-card);background:var(--status-success-bg);color:var(--color-text-main)}.takeoff-entry-options{gap:var(--space-card-gap);flex-wrap:wrap;display:flex}.takeoff-entry-option,.takeoff-entry-select{align-items:flex-start;gap:var(--space-form-gap);padding:var(--space-sidebar-padding);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-panel-bg);flex-direction:column;display:flex}.takeoff-entry-option{flex:320px}.takeoff-entry-option-title{font-size:var(--font-size-section-title);font-weight:var(--font-weight-bold);color:var(--color-text-main);margin:0}.takeoff-entry-option-text{color:var(--color-text-sub);margin:0}.takeoff-entry-error{padding:var(--space-input-padding-x) var(--space-card-gap);border:var(--border-width-base) solid var(--status-danger-border);border-radius:var(--radius-card);background:var(--status-danger-bg);color:var(--color-danger);margin:0}.takeoff-adopt.takeoff-entry-confirm{width:640px}.takeoff-entry-warning{align-items:center;gap:var(--space-form-gap);margin:0 0 var(--space-card-gap);padding:var(--space-input-padding-x) var(--space-card-gap);border:var(--border-width-base) solid var(--status-warning-border);border-radius:var(--radius-card);background:var(--status-warning-bg);color:var(--color-text-main);flex-wrap:wrap;display:flex}.takeoff-measurement-layer{pointer-events:none}.takeoff-measurement-frame{fill:none;stroke:var(--color-danger);stroke-width:1px;stroke-dasharray:8 5;pointer-events:none}.takeoff-measurement-guide-line{stroke:var(--takeoff-dim-leader-wall);stroke-width:var(--takeoff-dim-leader-width);stroke-dasharray:var(--takeoff-dim-leader-dash);pointer-events:none}.takeoff-measurement-guide-arrow{fill:none;stroke:var(--takeoff-dim-leader-wall);stroke-width:var(--takeoff-dim-leader-width);stroke-linejoin:round;pointer-events:none}.takeoff-measurement-guide-arrow--filled{fill:var(--takeoff-dim-leader-wall)}.takeoff-measurement-frame-handle{fill:var(--status-danger-bg);stroke:var(--color-danger);stroke-width:2px;cursor:grab;pointer-events:all}.takeoff-measurement-input{width:6em;padding:var(--space-form-gap) var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);font-size:var(--font-size-xs);color:var(--color-text-main);background:var(--color-editable-bg)}.takeoff-measurement-unit{color:var(--color-text-sub);font-size:var(--font-size-xs);align-items:center;display:inline-flex}.takeoff-measurement-status{color:var(--color-text-sub);font-size:var(--font-size-xs);white-space:nowrap;align-items:center;display:inline-flex}.takeoff-measurement-dimension-text{fill:var(--takeoff-text-dimension-wall);pointer-events:none;-webkit-user-select:none;user-select:none}.takeoff-editor-main{gap:var(--space-card-gap);align-items:stretch;display:flex}.takeoff-editor-main>.takeoff-editor-stage{flex:1;min-width:0}.takeoff-review-panel{gap:var(--space-form-gap);width:370px;max-height:clamp(560px,100vh - 290px,1400px);padding:var(--space-form-gap);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-readonly-bg);font-size:var(--font-size-xs);color:var(--color-text-main);flex-direction:column;flex-shrink:0;display:flex;overflow-y:auto}.takeoff-review-panel-collapsed{flex-shrink:0;align-items:flex-start;display:flex}.takeoff-review-panel-open-button{padding:var(--space-form-gap);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-panel);color:var(--color-text-main);cursor:pointer;justify-content:center;align-items:center;line-height:0;display:inline-flex}.takeoff-review-panel-header{justify-content:space-between;align-items:center;gap:var(--space-form-gap);display:flex}.takeoff-review-panel-title{font-weight:var(--font-weight-semibold)}.takeoff-review-empty{color:var(--color-text-sub)}.takeoff-review-row{gap:var(--space-form-gap);padding:var(--space-form-gap);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-editable-bg);flex-direction:column;display:flex}.takeoff-review-row-name{align-items:center;gap:var(--space-form-gap);flex-wrap:wrap;display:flex}.takeoff-review-label{font-weight:var(--font-weight-semibold)}.takeoff-review-direction{color:var(--color-text-sub)}.takeoff-review-status{color:var(--color-text-sub);white-space:nowrap;margin-left:auto}.takeoff-review-status--recheck{color:var(--color-danger)}.takeoff-review-values{align-items:center;gap:var(--space-form-gap);white-space:nowrap;flex-wrap:wrap;display:flex}.takeoff-review-values-heading{color:var(--color-text-sub)}.takeoff-review-recheck{align-items:center;gap:var(--space-form-gap);white-space:nowrap;flex-wrap:wrap;display:flex}.takeoff-adopt-overlay{z-index:1000;background:var(--modal-backdrop-bg);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.takeoff-adopt{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-panel-bg);width:1200px;max-width:96vw;max-height:94vh;box-shadow:var(--shadow-popover);flex-direction:column;display:flex;overflow:hidden}.takeoff-adopt-header{justify-content:space-between;align-items:center;gap:var(--space-card-gap);padding:var(--space-sidebar-padding) var(--space-header-padding-x);border-bottom:var(--border-width-base) solid var(--color-border);background:var(--table-header-bg);display:flex}.takeoff-adopt-title{font-size:var(--font-size-section-title);font-weight:var(--font-weight-bold);color:var(--color-text-main)}.takeoff-adopt-close{cursor:pointer;font-size:var(--font-size-section-title);color:var(--color-text-sub);background:0 0;border:none}.takeoff-adopt-body{gap:var(--space-section-gap);padding:var(--space-header-padding-y) var(--space-header-padding-x);flex-direction:column;display:flex;overflow-y:auto}.takeoff-adopt-note{font-size:var(--font-size-caption);color:var(--color-text-sub);margin:0}.takeoff-adopt-error{font-size:var(--font-size-caption);color:var(--color-danger);margin:0}.takeoff-adopt-toolbar{align-items:center;gap:var(--space-card-gap);flex-wrap:wrap;display:flex}.takeoff-adopt-toggle{align-items:center;gap:var(--space-form-gap);font-size:var(--font-size-caption);color:var(--color-text-main);display:inline-flex}.takeoff-adopt-toggle--gap{border-bottom:var(--border-width-base) solid var(--color-warning)}.takeoff-adopt-toggle--overlap{border-bottom:var(--border-width-base) solid var(--color-info)}.takeoff-adopt-toggle--suspect{border-bottom:var(--border-width-base) solid var(--color-danger)}.takeoff-adopt-panes{gap:var(--space-card-gap);grid-template-columns:1fr 1fr;display:grid}.takeoff-adopt-panes--single{grid-template-columns:1fr}.takeoff-adopt-pane{gap:var(--space-form-gap);flex-direction:column;min-width:0;display:flex}.takeoff-adopt-pane-label{font-size:var(--font-size-caption);font-weight:var(--font-weight-bold);color:var(--color-text-main)}.takeoff-adopt-pane-scroll{border:var(--border-width-base) solid var(--color-border);background:var(--color-readonly-bg);max-height:56vh;overflow:auto}.takeoff-adopt-pane-svg{display:block}.takeoff-adopt-pane-svg--fit{width:100%;height:auto;max-height:56vh}.takeoff-adopt-range-before{fill:none;stroke:var(--color-warning);stroke-width:2px;stroke-dasharray:6 4}.takeoff-adopt-range-after{fill:none;stroke:var(--color-primary);stroke-width:2px}.takeoff-adopt-mark-gap{fill:var(--color-warning);fill-opacity:.45}.takeoff-adopt-mark-overlap{fill:var(--color-info);fill-opacity:.4}.takeoff-adopt-mark-suspect{fill:var(--color-danger);fill-opacity:.8}.takeoff-adopt-check{gap:var(--space-form-gap);font-size:var(--font-size-caption);color:var(--color-text-main);flex-direction:column;display:flex}.takeoff-adopt-warning{gap:var(--space-form-gap);padding:var(--space-input-padding-y) var(--space-input-padding-x);border:var(--border-width-base) solid var(--status-danger-border);border-radius:var(--radius-card);background:var(--status-warning-bg);font-size:var(--font-size-caption);color:var(--color-text-main);flex-direction:column;display:flex}.takeoff-adopt-warning--strong{background:var(--status-danger-bg)}.takeoff-adopt-strong{font-weight:var(--font-weight-bold);color:var(--color-danger)}.takeoff-adopt-actions{justify-content:flex-end;gap:var(--space-button-gap);padding:var(--space-header-padding-y) var(--space-header-padding-x);border-top:var(--border-width-base) solid var(--color-border);display:flex}.takeoff-adopt-pages{gap:var(--space-card-gap);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));margin:0;padding:0;list-style:none;display:grid}.takeoff-adopt-page{gap:var(--space-form-gap);padding:var(--space-input-padding-y) var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-readonly-bg);flex-direction:column;display:flex}.takeoff-adopt-page--selected{border-color:var(--color-primary);background:var(--color-panel-bg)}.takeoff-adopt-page-thumb{object-fit:contain;border:var(--border-width-base) solid var(--color-border);background:var(--color-panel-bg);max-width:100%;max-height:160px;display:block}.takeoff-pdf{gap:var(--space-card-gap);flex-direction:column;display:flex}.takeoff-pdf-controls{align-items:center;gap:var(--space-form-gap);display:flex}.takeoff-pdf-page-label{font-family:monospace;font-size:var(--font-size-xs);color:var(--color-text-sub);text-align:center;min-width:64px}.takeoff-pdf-loading{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-readonly-bg);height:560px;color:var(--color-text-sub);font-size:var(--font-size-caption);justify-content:center;align-items:center;display:flex}.takeoff-pdf-error{padding:var(--space-input-padding-x) var(--space-card-gap);border:var(--border-width-base) solid var(--status-danger-border);border-radius:var(--radius-small);background:var(--status-danger-bg);color:var(--color-danger);font-size:var(--font-size-caption)}.takeoff-pilot{gap:var(--space-sidebar-padding);flex-direction:column;display:flex}.takeoff-pilot-section{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-panel-bg);padding:var(--space-card-gap);gap:var(--space-form-gap);flex-direction:column;display:flex}.takeoff-pilot-section-title{font-size:var(--font-size-section-title);font-weight:var(--font-weight-semibold);color:var(--color-text-main);margin:0}.takeoff-pilot-row{align-items:center;gap:var(--space-card-gap);flex-wrap:wrap;display:flex}.takeoff-pilot-note{font-size:var(--font-size-caption);color:var(--color-text-sub);margin:0}.takeoff-pilot-status{font-size:var(--font-size-table);color:var(--color-text-main)}.takeoff-pilot-status--ok{color:var(--color-success);font-weight:var(--font-weight-semibold)}.takeoff-pilot-status--blocked{color:var(--color-danger);font-weight:var(--font-weight-semibold)}.takeoff-pilot-blocker{border:var(--border-width-base) solid var(--status-danger-border);border-radius:var(--radius-card);background:var(--status-danger-bg);padding:var(--space-input-padding-y) var(--space-card-gap);color:var(--color-text-main);font-size:var(--font-size-table)}.takeoff-pilot-warn{border:var(--border-width-base) solid var(--status-warning-border);border-radius:var(--radius-card);background:var(--status-warning-bg);padding:var(--space-input-padding-y) var(--space-card-gap);color:var(--color-text-main);font-size:var(--font-size-table)}.takeoff-pilot-table{border-collapse:collapse;width:100%;font-size:var(--font-size-table);color:var(--color-text-main)}.takeoff-pilot-table th{text-align:left;background:var(--table-header-bg);border-bottom:var(--border-width-base) solid var(--color-border);padding:var(--space-table-cell-y) var(--space-table-cell-x);font-weight:var(--font-weight-semibold);white-space:nowrap}.takeoff-pilot-table td{border-bottom:var(--border-width-base) solid var(--color-border);padding:var(--space-table-cell-y) var(--space-table-cell-x);white-space:nowrap}.takeoff-pilot-table tr[data-selected=true] td{background:var(--status-primary-bg)}.takeoff-pilot-cell--num{font-family:var(--font-family-number);text-align:right}.takeoff-pilot-tag{border-radius:var(--radius-small);padding:0 var(--space-input-padding-x);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);display:inline-block}.takeoff-pilot-tag--ok{background:var(--status-success-bg);color:var(--color-success)}.takeoff-pilot-tag--ng{background:var(--status-danger-bg);color:var(--color-danger)}.takeoff-pilot-tag--pending{background:var(--status-disabled-bg);color:var(--color-text-sub)}.takeoff-pilot-preview{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-small);background:var(--color-panel);max-width:100%;display:inline-block;position:relative;overflow:hidden}.takeoff-pilot-preview-image{max-width:100%;height:auto;display:block}.takeoff-pilot-overlay{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.takeoff-pilot-cand{fill:none;stroke:var(--color-primary);stroke-width:2px}.takeoff-pilot-cand--opening{stroke:var(--color-warning)}.takeoff-pilot-cand--active{stroke-width:4px}.takeoff-pilot-ref{fill:none;stroke:var(--color-success);stroke-width:2px;stroke-dasharray:8 6}.takeoff-pilot-ref--opening{stroke:var(--color-info)}.takeoff-pilot-legend{gap:var(--space-card-gap);font-size:var(--font-size-caption);color:var(--color-text-sub);flex-wrap:wrap;display:flex}.takeoff-pilot-swatch{width:var(--space-card-gap);height:var(--border-width-strong);vertical-align:middle;margin-right:var(--radius-small);display:inline-block}.takeoff-pilot-swatch--wall{background:var(--color-primary)}.takeoff-pilot-swatch--opening{background:var(--color-warning)}.takeoff-pilot-swatch--ref-wall{background:var(--color-success)}.takeoff-pilot-swatch--ref-opening{background:var(--color-info)}.takeoff-pilot-progress{font-size:var(--font-size-table);color:var(--color-text-main);font-family:var(--font-family-number)}.takeoff-pilot-scroll{max-height:420px;overflow:auto}:root{--color-primary:#1677ff;--color-secondary:#6b7280;--color-success:#0b8f3a;--color-warning:#fa8c16;--color-danger:#ff4d4f;--color-info:#0ea5e9;--color-selected:#374151;--color-disabled:#9ca3af;--color-page-bg:#f3f4f6;--color-panel-bg:#fff;--color-sidebar-bg:#111827;--color-sidebar-text:#f9fafb;--color-sidebar-active-bg:#374151;--color-border:#d1d5db;--color-text-main:#111827;--color-text-sub:#6b7280;--color-table-header-bg:#f9fafb;--color-table-row-hover:#f3f4f6;--color-readonly-bg:#f9fafb;--color-editable-bg:#fff;--color-section-bg:#fff;--color-muted:var(--color-text-sub);--color-text:var(--color-text-main);--color-panel:var(--color-panel-bg);--color-bg:var(--color-page-bg);--color-actual-pending:#c46a16;--color-alignment-guide:#e6399b;--takeoff-sem-sash:#fb923c;--takeoff-sem-sash-selected:#ea580c;--takeoff-sem-joint:#4ade80;--takeoff-sem-joint-selected:#15803d;--takeoff-sem-trim:#e879f9;--takeoff-sem-trim-selected:#a21caf;--takeoff-sem-fascia:#fb7185;--takeoff-sem-fascia-selected:#be123c;--takeoff-sem-eaves:#22d3ee;--takeoff-sem-eaves-selected:#0e7490;--takeoff-sem-pipe:#818cf8;--takeoff-sem-pipe-selected:#4338ca;--takeoff-sem-custom:#facc15;--takeoff-sem-custom-selected:#a16207;--takeoff-roof-face:var(--color-primary);--takeoff-roof-ridge:var(--color-primary);--takeoff-roof-hip:var(--color-primary);--takeoff-roof-valley:var(--color-danger);--takeoff-roof-slope-change:#e879f9;--takeoff-roof-other:var(--color-text-sub);--takeoff-roof-candidate:var(--color-info);--takeoff-roof-eave:var(--color-success);--takeoff-roof-verge:#7c3aed;--takeoff-roof-wall-h:var(--color-warning);--takeoff-roof-wall-s:var(--status-warning-strong);--takeoff-wall-face:var(--color-primary);--takeoff-wall-opening:var(--color-warning);--takeoff-roof-ridge-width:2.5px;--takeoff-roof-ridge-dash:none;--takeoff-roof-hip-width:2px;--takeoff-roof-hip-dash:10 4;--takeoff-roof-valley-width:2px;--takeoff-roof-valley-dash:10 4;--takeoff-roof-slope-change-width:var(--roof-layer-roof-width,3.5px);--takeoff-roof-slope-change-dash:4 4;--takeoff-roof-other-width:var(--roof-layer-roof-width,3.5px);--takeoff-roof-other-dash:6 4;--takeoff-roof-candidate-width:2px;--takeoff-roof-candidate-dash:10 6;--takeoff-roof-eave-width:2px;--takeoff-roof-eave-dash:none;--takeoff-roof-verge-width:2px;--takeoff-roof-verge-dash:none;--takeoff-roof-wall-h-width:2px;--takeoff-roof-wall-h-dash:none;--takeoff-roof-wall-s-width:2px;--takeoff-roof-wall-s-dash:none;--takeoff-sem-sash-width:2px;--takeoff-sem-sash-dash:none;--takeoff-sem-joint-width:2px;--takeoff-sem-joint-dash:none;--takeoff-sem-trim-width:2px;--takeoff-sem-trim-dash:none;--takeoff-sem-fascia-width:2px;--takeoff-sem-fascia-dash:none;--takeoff-sem-eaves-width:2px;--takeoff-sem-eaves-dash:none;--takeoff-sem-pipe-width:2px;--takeoff-sem-pipe-dash:none;--takeoff-sem-custom-width:2px;--takeoff-sem-custom-dash:none;--takeoff-sem-scaffold-width:2px;--takeoff-sem-scaffold-dash:none;--takeoff-wall-outline:var(--takeoff-wall-face);--takeoff-wall-outline-width:2px;--takeoff-wall-outline-dash:none;--takeoff-dim-leader:#60a5fa;--takeoff-dim-leader-wall:var(--color-danger);--takeoff-quantity-swatch-width:18px;--takeoff-quantity-swatch-height:5px;--takeoff-quantity-swatch-radius:2px;--takeoff-tool-swatch-width:4px;--takeoff-print-page-margin:8mm;--takeoff-print-column-gap:4mm;--takeoff-print-figure-width:311mm;--takeoff-print-figure-height:255mm;--takeoff-dim-leader-width:1px;--takeoff-dim-leader-dash:8 5;--takeoff-roof-face-opacity:.3;--takeoff-wall-face-opacity:.16;--takeoff-wall-opening-opacity:.16;--takeoff-wall-fill:var(--status-primary-bg);--takeoff-wall-fill-opacity:var(--takeoff-wall-face-opacity);--takeoff-opening-fill:var(--status-warning-bg);--takeoff-opening-fill-opacity:var(--takeoff-wall-opening-opacity);--takeoff-other-fill:var(--status-complete-soft-bg);--takeoff-other-fill-opacity:.16;--takeoff-scaffold-fill:var(--takeoff-sem-scaffold);--takeoff-scaffold-fill-opacity:.12;--takeoff-other-outline:var(--status-complete-soft-text);--takeoff-other-outline-width:2px;--takeoff-other-outline-dash:none;--takeoff-text-dimension:var(--color-text-main);--takeoff-text-dimension-wall:var(--color-danger);--takeoff-text-label:var(--color-text-main);--takeoff-text-dimension-size:24px;--takeoff-text-label-size:14px;--takeoff-direction-frame:#5a5a5a;--takeoff-direction-frame-width:1px;--takeoff-direction-frame-dash:4 4;--takeoff-text-direction:#333;--takeoff-text-direction-size:14px;--takeoff-sem-scaffold:#14b8a6;--takeoff-sem-scaffold-selected:#0f766e;--takeoff-sem-scaffold-input:#78716c;--takeoff-sem-scaffold-input-selected:#44403c;--status-success-bg:#e8f8ef;--status-success-border:#bfebd0;--status-primary-bg:#eaf3ff;--status-primary-border:#cfe5ff;--status-primary-strong-bg:#1677ff;--status-primary-strong-border:#0958d9;--status-primary-strong-text:#fff;--status-warning-bg:#fff3e6;--status-warning-border:#ffd9b0;--status-yellow-bg:#fff9cc;--status-yellow-border:#f2d85c;--status-yellow-text:#8a6a00;--status-warning-strong:#c2410c;--status-warning-strong-border:#e8590c;--status-warning-strong-bg:#ffe3c2;--status-danger-bg:#ffecef;--status-danger-border:#ffc9cf;--status-disabled-bg:#f1f3f5;--status-disabled-border:#d9dee5;--status-neutral-soft-bg:#f5f5f5;--status-neutral-soft-border:#e0e0e0;--status-neutral-soft-text:#666;--status-tentative-soft-bg:#fff8e0;--status-tentative-soft-border:#f5d76e;--status-tentative-soft-text:#d97706;--status-reported-soft-bg:#e8f4ff;--status-reported-soft-border:#9ecbff;--status-reported-soft-text:#1677ff;--status-complete-soft-bg:#f0ecff;--status-complete-soft-border:#c7b8ff;--status-complete-soft-text:#5b4cc4;--status-inspected-soft-bg:#e8f8ec;--status-inspected-soft-border:#9fd8ad;--status-inspected-soft-text:#16803a;--layout-sidebar-width:220px;--layout-main-width:1250px;--layout-min-width:1470px;--layout-header-search-min-width:260px;--layout-customer-search-min-width:380px;--photo-grid-thumb-min:104px;--photo-folder-card-min:160px;--space-page-x:24px;--space-page-y:24px;--space-sidebar-padding:16px;--space-sidebar-title-bottom:12px;--space-sidebar-item-y:10px;--space-sidebar-item-x:8px;--space-header-padding-y:12px;--space-header-padding-x:20px;--space-input-padding-y:8px;--space-input-padding-x:10px;--space-card-gap:12px;--space-card-row-gap:12px;--space-section-gap:12px;--space-form-gap:8px;--space-table-cell-x:8px;--space-table-cell-y:8px;--space-button-gap:12px;--height-header:48px;--height-table-header:40px;--height-table-row:40px;--height-input:36px;--height-button-small:28px;--height-button:36px;--height-button-large:44px;--textarea-min-height:80px;--popover-width:160px;--popover-item-height:36px;--font-family-base:"Segoe UI", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;--font-family-number:"Segoe UI", Arial, sans-serif;--font-size-page-title:24px;--font-size-section-title:18px;--font-size-body:16px;--font-size-caption:14px;--font-size-table:14px;--font-size-button:14px;--font-size-sidebar:14px;--font-size-label:14px;--font-size-xs:12px;--font-size-xxs:11px;--font-size-tiny:10px;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--radius-card:8px;--radius-button:6px;--radius-input:6px;--radius-popover:6px;--radius-table:6px;--radius-small:4px;--shadow-card:0 1px 3px #1118271a;--shadow-popover:0 8px 24px #1118271f;--border-width-base:1px;--border-width-strong:2px;--grid-sel-range-shadow:inset 0 0 0 var(--border-width-base) var(--input-focus-border-color);--grid-sel-anchor-shadow:inset 0 0 0 var(--border-width-strong) var(--input-focus-border-color);--grid-drop-before-shadow:inset 0 var(--border-width-strong) 0 0 var(--color-primary);--grid-drop-after-shadow:inset 0 calc(-1 * var(--border-width-strong)) 0 0 var(--color-primary);--grid-readonly-bg:var(--color-readonly-bg);--grid-readonly-text:var(--color-text-sub);--grid-row-major-bg:var(--status-primary-bg);--grid-col-ops-w:44px;--grid-col-no-w:60px;--grid-col-qty-w:68px;--grid-col-unit-w:calc(2em + 18px);--grid-col-vendor-w:150px;--grid-col-text-w:340px;--button-normal-bg:#fff;--button-primary-bg:#1677ff;--button-primary-text:#fff;--button-secondary-bg:#6b7280;--button-secondary-text:#fff;--button-danger-bg:#ff4d4f;--button-danger-text:#fff;--button-disabled-bg:#9ca3af;--button-disabled-text:#f3f4f6;--button-link-text:#1677ff;--button-icon-bg:#fff;--button-icon-hover-bg:#f3f4f6;--popover-bg:#fff;--popover-border-color:#d1d5db;--popover-item-hover-bg:#f3f4f6;--popover-item-text:#111827;--popover-danger-text:#ff4d4f;--table-min-width:100%;--table-action-width:120px;--table-header-bg:#f9fafb;--table-header-text:#111827;--table-row-bg:#fff;--table-row-hover-bg:#f3f4f6;--table-row-selected-bg:#374151;--table-border-color:#d1d5db;--table-empty-text-color:#6b7280;--loading-text-color:#6b7280;--loading-bg:#f9fafb;--empty-text-color:#6b7280;--empty-bg:#fff;--error-text-color:#ff4d4f;--error-bg:#ffecef;--error-border-color:#ff4d4f;--detail-section-bg:#fff;--detail-section-header-bg:#f9fafb;--detail-section-border-color:#d1d5db;--detail-section-padding:24px;--input-placeholder-color:#6b7280;--input-focus-border-color:#1677ff;--modal-backdrop-bg:#11182773;--opacity-sidebar-title:.8;--m-overall-day-width:24px;--m-overall-project-bar-color:#fff3bf;--m-overall-project-row-height:36px;--m-overall-phase-row-height:36px;--m-overall-task-row-height:40px;--m-overall-project-bar-height:6px;--m-overall-phase-bar-height:6px;--m-overall-task-bar-height:26px;--m-overall-project-font-size:15px;--m-overall-phase-font-size:15px;--m-overall-task-font-size:15px;--m-overall-month-header-height:24px;--m-overall-date-header-height:36px;--m-overall-today-cell-bg:#1677ff1f;--m-overall-today-text-color:#1677ff;--mobile-action-start-bg:var(--color-success);--mobile-action-report-bg:var(--color-primary);--mobile-action-complete-bg:var(--status-complete-soft-text);font-family:var(--font-family-base)}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-family-base);font-size:var(--font-size-caption);color:var(--color-text-main);background:var(--color-page-bg);line-height:1.5}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{height:100vh;display:flex;overflow:hidden}.app-shell__main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.app-shell__content{min-height:0;padding:var(--space-page-y) var(--space-page-x);flex:1;overflow:auto}.page{width:100%}.page-section{background:var(--color-panel-bg);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);margin-bottom:16px;padding:16px}.page-section__title{font-size:var(--font-size-section-title);font-weight:var(--font-weight-bold);margin:0 0 12px}.page-grid{gap:var(--space-card-gap);grid-template-columns:repeat(3,1fr);display:grid}.page-grid--two{grid-template-columns:1fr 1fr}.project-list-pagination{align-items:center;gap:var(--space-button-gap);margin-bottom:var(--space-section-gap);display:flex}.project-list-pagination__nav{align-items:center;gap:var(--space-button-gap);display:flex}.project-list-pagination__info{color:var(--color-text-sub);white-space:nowrap;font-size:var(--font-size-caption)}.project-card-list{gap:var(--space-card-gap);flex-direction:column;display:flex}.project-card-list__empty{color:var(--color-text-sub);font-size:var(--font-size-caption);margin:0}.project-card{background:var(--color-panel-bg);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:12px}.project-card--clickable{cursor:pointer;transition:border-color .15s,box-shadow .15s}.project-card--clickable:hover{border-color:var(--color-primary);box-shadow:var(--shadow-popover)}.project-card__name{font-size:var(--font-size-caption);font-weight:var(--font-weight-bold);color:var(--color-text-main);margin-bottom:4px;line-height:1.4}.project-card__customer{color:var(--color-text-sub);margin-bottom:4px;font-size:12px}.project-card__schedule{color:var(--color-text-main);margin-bottom:10px;font-size:12px}.project-card__statuses{flex-wrap:wrap;gap:6px;display:flex}.project-card__header{justify-content:space-between;align-items:flex-start;gap:var(--space-form-gap);display:flex}.project-card__action{padding:0 var(--space-form-gap);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-small);font-size:var(--font-size-xxs);font-weight:var(--font-weight-medium);white-space:nowrap;cursor:pointer;flex-shrink:0;line-height:1.8}.project-card__action:disabled{opacity:.5;cursor:not-allowed}.project-card__action--start{background:var(--button-primary-bg);border-color:var(--button-primary-bg);color:var(--button-primary-text)}.project-card__action--complete{background:var(--color-success);border-color:var(--color-success);color:var(--button-primary-text)}.project-card__action--exclude{background:var(--color-panel-bg);color:var(--color-text-sub);margin-left:auto}.top-dialog__text{font-size:var(--font-size-caption);color:var(--color-text-main);margin:0}.top-dialog__project-name{font-size:var(--font-size-caption);font-weight:var(--font-weight-bold);color:var(--color-text-main);margin:0}.top-dialog__field{gap:var(--space-form-gap);font-size:var(--font-size-caption);color:var(--color-text-sub);flex-direction:column;display:flex}.top-dialog__warning{padding:var(--space-input-padding-y) var(--space-input-padding-x);background:var(--status-warning-bg);border:var(--border-width-base) solid var(--status-warning-border);border-radius:var(--radius-card);font-size:var(--font-size-caption);color:var(--status-warning-strong);white-space:pre-line;margin:0}.top-dialog__error{font-size:var(--font-size-caption);color:var(--color-danger);margin:0}.top-side-block__header-right{align-items:center;gap:var(--space-form-gap);display:flex}.status-pill{font-size:11px;font-weight:var(--font-weight-medium);border:var(--border-width-base) solid transparent;cursor:pointer;border-radius:999px;justify-content:center;align-items:center;padding:3px 10px;transition:opacity .15s;display:inline-flex}.status-pill:hover{opacity:.85}.status-pill--warning{color:#be123c;background:#fff1f2;border-color:#fda4af}.status-pill--caution{color:#c2410c;background:#fff7ed;border-color:#fdba74}.status-pill--success{color:var(--color-success);background:var(--status-success-bg);border-color:var(--status-success-border)}.status-pill--neutral{color:#374151;background:#f3f4f6;border-color:#d1d5db}.status-pill--notApplicable{color:#9ca3af;background:#fff;border-color:#d1d5db;text-decoration:none;position:relative}.status-pill--notApplicable:after{content:"";pointer-events:none;background:#cbd5e1;height:1px;position:absolute;top:50%;left:8px;right:8px;transform:translateY(-50%)}.api-status{border-radius:var(--radius-small);opacity:.85;z-index:100;padding:4px 10px;font-size:11px;position:fixed;bottom:16px;right:16px}.api-status--connected{color:var(--color-success);background:var(--status-success-bg);border:var(--border-width-base) solid var(--status-success-border)}.api-status--disconnected{color:var(--color-danger);background:var(--status-danger-bg);border:var(--border-width-base) solid var(--status-danger-border)}.date-weekday{font-size:var(--font-size-caption);color:var(--color-text-sub);white-space:nowrap}.date-warning{color:var(--color-danger)}.flexible-date-input{flex-direction:column;gap:4px;display:flex}.flexible-date-input__row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.flexible-date-input__text{width:160px;padding:var(--space-input-padding-y) var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-input);background:var(--color-editable-bg);color:var(--color-text-main);height:var(--height-input);font-size:var(--font-size-caption)}.flexible-date-input__calendar-btn{width:var(--height-input);height:var(--height-input);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-input);background:var(--color-panel-bg);cursor:pointer;justify-content:center;align-items:center;padding:0;font-size:16px;line-height:1;display:inline-flex}.flexible-date-input__calendar-btn:hover{background:var(--color-table-row-hover)}.flexible-date-input__picker{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.flexible-date-input__error{font-size:var(--font-size-caption)}.placeholder-page{background:var(--color-panel-bg);border:var(--border-width-base) dashed var(--color-border);border-radius:var(--radius-card);min-height:320px;color:var(--color-text-sub);font-size:var(--font-size-body);justify-content:center;align-items:center;display:flex}.top-page{height:calc(100vh - var(--height-header) - 2 * var(--space-page-y));flex-direction:column;gap:8px;min-height:480px;display:flex;overflow:hidden}.top-confirmation-bar{background:var(--color-panel-bg);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.top-confirmation-bar__left{flex-direction:column;gap:2px;display:flex}.top-confirmation-bar__title{font-size:var(--font-size-body);font-weight:var(--font-weight-bold);color:var(--color-text-main);line-height:1.4}.top-confirmation-bar__counts{font-size:var(--font-size-caption);color:var(--color-text-sub)}.top-confirmation-bar__date{font-size:var(--font-size-caption);color:var(--color-text-sub);white-space:nowrap;font-variant-numeric:tabular-nums}.top-board{gap:var(--space-card-gap);flex:1;grid-template-columns:1fr 1fr 1fr 1fr;min-height:410px;display:grid;overflow:hidden}.top-project-column{background:var(--color-panel-bg);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);min-width:0;box-shadow:var(--shadow-card);flex-direction:column;display:flex;overflow:hidden}.top-project-column__header{border-bottom:var(--border-width-base) solid var(--color-border);background:var(--color-table-header-bg);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 12px 8px;display:flex}.top-project-column__title{font-size:var(--font-size-caption);font-weight:var(--font-weight-bold);color:var(--color-text-main);margin:0;line-height:1.3}.top-project-column__count{font-size:11px;font-weight:var(--font-weight-medium);background:var(--color-border);color:var(--color-text-sub);border-radius:10px;flex-shrink:0;padding:1px 8px}.top-project-column__body{flex:1;min-height:0;padding:8px;overflow-y:auto}.top-right-column{gap:var(--space-section-gap);flex-direction:column;min-width:0;min-height:390px;display:flex;overflow:hidden}.top-side-block{background:var(--color-panel-bg);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);min-height:0;box-shadow:var(--shadow-card);flex-direction:column;display:flex;overflow:hidden}.top-side-block--completed{flex:1;min-height:44px}.top-side-block--memo,.top-side-block--recent{flex-shrink:0}.top-side-block--memo .top-side-block__body{max-height:160px;overflow-y:auto}.top-side-block--recent .top-side-block__body{max-height:92px;overflow-y:auto}.top-side-block__header{border-bottom:var(--border-width-base) solid var(--color-border);background:var(--color-table-header-bg);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 12px 8px;display:flex}.top-side-block__title{font-size:var(--font-size-caption);font-weight:var(--font-weight-bold);color:var(--color-text-main);margin:0}.top-side-block__count{font-size:11px;font-weight:var(--font-weight-medium);background:var(--color-border);color:var(--color-text-sub);border-radius:10px;padding:1px 8px}.top-side-block__body{padding:8px;overflow:hidden}.top-side-block__body--scrollable{flex:1;min-height:0;overflow-y:auto}.top-memo-actions{gap:6px;margin-bottom:8px;display:flex}.top-memo-btn{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-button);background:var(--color-panel-bg);color:var(--color-text-main);cursor:pointer;align-items:center;padding:4px 10px;font-size:12px;display:inline-flex}.top-memo-btn:disabled{cursor:not-allowed;opacity:.5;color:var(--color-text-sub)}.top-memo-list-label{color:var(--color-text-sub);margin:0 0 4px;font-size:12px}.top-memo-empty{color:var(--color-text-sub);margin:0;font-size:12px}.top-memo-list{margin:0;padding:0;list-style:none}.top-memo-list li{font-size:var(--font-size-caption);color:var(--color-text-main);border-bottom:var(--border-width-base) solid var(--color-border);cursor:pointer;border-radius:3px;padding:4px 2px;line-height:1.4}.top-memo-list li:last-child{border-bottom:none}.top-memo-list li:hover{background:var(--color-table-row-hover)}.memo-popup-backdrop{z-index:2000;background:#0006;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.memo-popup{background:var(--color-panel-bg);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);width:min(520px,96vw);max-height:80vh;box-shadow:var(--shadow-card);flex-direction:column;display:flex;overflow:hidden}.memo-popup__header{border-bottom:var(--border-width-base) solid var(--color-border);background:var(--color-table-header-bg);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.memo-popup__title{font-size:var(--font-size-body);font-weight:var(--font-weight-bold);color:var(--color-text-main)}.memo-popup__close-btn{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-button);background:var(--color-panel-bg);color:var(--color-text-sub);cursor:pointer;padding:3px 12px;font-size:12px}.memo-popup__body{flex-direction:column;flex:1;gap:12px;min-height:0;padding:16px;display:flex;overflow-y:auto}.memo-popup__limit-msg{background:var(--status-warning-bg);border:var(--border-width-base) solid var(--status-warning-border);border-radius:var(--radius-card);font-size:var(--font-size-caption);color:var(--color-warning);margin:0;padding:10px 12px}.memo-popup__textarea{box-sizing:border-box;border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-input);width:100%;font-size:var(--font-size-caption);resize:vertical;min-height:140px;color:var(--color-text-main);background:var(--color-editable-bg);flex-shrink:0;padding:10px;font-family:inherit}.memo-popup__actions{flex-shrink:0;gap:8px;display:flex}.memo-popup__btn--primary{background:var(--button-primary-bg);color:var(--button-primary-text);border-radius:var(--radius-button);cursor:pointer;font-size:var(--font-size-caption);border:none;padding:6px 20px}.memo-popup__btn--primary:disabled{opacity:.45;cursor:not-allowed}.memo-popup__btn--secondary{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-button);background:var(--color-panel-bg);color:var(--color-text-main);cursor:pointer;font-size:var(--font-size-caption);padding:6px 16px}.memo-popup__btn--danger{border:var(--border-width-base) solid var(--color-danger);border-radius:var(--radius-button);background:var(--color-panel-bg);color:var(--color-danger);cursor:pointer;font-size:var(--font-size-caption);padding:6px 14px}.memo-popup__btn--danger-sm{border:var(--border-width-base) solid var(--color-danger);border-radius:var(--radius-button);background:var(--color-panel-bg);color:var(--color-danger);cursor:pointer;white-space:nowrap;flex-shrink:0;padding:3px 10px;font-size:12px}.memo-popup__empty{color:var(--color-text-sub);font-size:var(--font-size-caption);text-align:center;margin:0;padding:24px 0}.memo-popup__back-btn{cursor:pointer;font-size:var(--font-size-caption);color:var(--color-primary);background:0 0;border:none;flex-shrink:0;padding:0;text-decoration:underline;display:inline-block}.memo-popup__list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.memo-popup__list-item{border-bottom:var(--border-width-base) solid var(--color-border);align-items:center;gap:8px;padding:8px 4px;display:flex}.memo-popup__list-item:last-child{border-bottom:none}.memo-popup__list-item-btn{text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;gap:2px;min-width:0;padding:0;display:flex}.memo-popup__list-item-btn:hover .memo-popup__list-title{color:var(--color-primary)}.memo-popup__list-title{font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);color:var(--color-text-main);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.memo-popup__list-preview{color:var(--color-text-sub);text-overflow:ellipsis;white-space:nowrap;font-size:12px;display:block;overflow:hidden}.memo-popup__list-date{color:var(--color-text-sub);font-size:11px;display:block}.top-recent-empty{color:var(--color-text-sub);margin:0;font-size:12px}.top-recent-list{margin:0;padding:0;list-style:none}.top-recent-item{border-bottom:var(--border-width-base) solid var(--color-border);font-size:var(--font-size-caption);color:var(--color-text-main);text-overflow:ellipsis;white-space:nowrap;border-radius:3px;padding:4px 2px;line-height:1.4;overflow:hidden}.top-recent-item:last-child{border-bottom:none}.top-recent-item--clickable{cursor:pointer}.top-recent-item--clickable:hover{background:var(--color-table-row-hover)}.top-recent-item--clickable:focus{outline:2px solid var(--color-primary);outline-offset:1px}.top-recent-item__name{font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);color:var(--color-text-main)}.top-recent-item__action{color:var(--color-text-sub);margin-left:6px;font-size:12px}.top-recent-item__date{color:var(--color-text-sub);margin-top:1px;font-size:12px}.project-five-state-panel{background:var(--color-panel-bg);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);margin-bottom:var(--space-section-gap);box-shadow:var(--shadow-card);padding:20px}.project-five-state-panel__header{margin-bottom:16px}.project-five-state-panel__title{font-size:var(--font-size-section-title);font-weight:var(--font-weight-bold);color:var(--color-text-main);margin:0 0 6px}.project-five-state-panel__desc{font-size:var(--font-size-caption);color:var(--color-text-sub);margin:0;line-height:1.5}.project-five-state-panel__rows{flex-direction:column;gap:10px;margin-bottom:16px;display:flex}.project-five-state-row{border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-table-header-bg);padding:12px 14px}.project-five-state-row__top{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.project-five-state-row__label-area{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.project-five-state-row__label{font-size:var(--font-size-body);font-weight:var(--font-weight-bold);color:var(--color-text-main)}.project-five-state-row__description{font-size:var(--font-size-caption);color:var(--color-text-sub);line-height:1.4}.project-five-state-row__select{border-radius:var(--radius-button);border:var(--border-width-base) solid var(--color-border);font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);cursor:pointer;height:var(--height-button-small);font-family:var(--font-family-base);flex-shrink:0;padding:4px 8px}.project-five-state-row__select--pending{background:var(--status-disabled-bg);color:var(--color-text-sub);border-color:var(--status-disabled-border)}.project-five-state-row__select--ok{background:var(--status-success-bg);color:var(--color-success);border-color:var(--status-success-border)}.project-five-state-row__select--notApplicable{background:var(--status-disabled-bg);color:var(--color-disabled);border-color:var(--status-disabled-border)}.project-five-state-row__memo{width:100%;padding:var(--space-input-padding-y) var(--space-input-padding-x);border:var(--border-width-base) solid var(--color-border);border-radius:var(--radius-input);background:var(--color-editable-bg);color:var(--color-text-main);font-size:var(--font-size-caption);resize:vertical;box-sizing:border-box;min-height:50px;font-family:var(--font-family-base)}.project-five-state-row__memo::placeholder{color:var(--input-placeholder-color)}.project-five-state-panel__footer{align-items:center;gap:12px;display:flex}.project-five-state-panel__save-btn{height:var(--height-button);background:var(--button-primary-bg);color:var(--button-primary-text);border-radius:var(--radius-button);font-size:var(--font-size-button);font-weight:var(--font-weight-medium);cursor:pointer;font-family:var(--font-family-base);border:none;justify-content:center;align-items:center;padding:0 20px;display:inline-flex}.project-five-state-panel__save-btn:hover{opacity:.88}.project-five-state-panel__saved-msg{font-size:var(--font-size-caption);color:var(--color-success);font-weight:var(--font-weight-medium)}
