.admin-layout{display:flex;flex-direction:column;min-height:100vh}.sidebar{position:sticky;top:.5rem;z-index:100;width:min(calc(100% - 2rem),1180px);margin:1rem auto 0;background:var(--color-primary);border:1px solid var(--color-primary-hover);border-radius:var(--radius);color:#fff;display:flex;align-items:center;gap:1rem;padding:.75rem 1rem}.sidebar-brand{flex:0 0 auto;min-width:9rem;padding:0 1rem 0 0;border-right:1px solid rgba(255,255,255,.28)}.sidebar-brand h1{font-size:1.125rem;font-weight:700}.sidebar-brand p{font-size:.8125rem;color:#ffffffdb;font-weight:600;margin-top:.25rem}.sidebar-nav{flex:1;min-width:0;padding:0;display:flex;flex-direction:row;gap:.25rem;overflow-x:auto;scrollbar-width:thin}.sidebar-nav a{padding:.625rem .75rem;border-radius:var(--radius);color:#ffffffe6;font-size:.9375rem;font-weight:600;transition:background .15s,color .15s;white-space:nowrap}.sidebar-nav a:hover{background:#ffffff1f;color:#fff}.sidebar-nav a.active{background:#fff3;color:#fff;font-weight:700}.sidebar-footer{display:flex;flex:0 0 auto;align-items:center;gap:.75rem;padding:0 0 0 1rem;border-left:1px solid rgba(255,255,255,.28)}.user-info{font-size:.875rem;font-weight:600;margin-bottom:0;color:#ffffffdb}.user-role{display:block;font-size:.75rem;color:#ffffffdb;font-weight:600;margin-top:.125rem}.sidebar-footer button{width:auto;background:transparent;border-color:#ffffffb3;color:#fff;font-weight:700}.sidebar-footer button:hover:not(:disabled){background:#ffffff29}.main-content{width:min(calc(100% - 2rem),1180px);margin:0 auto;padding:2rem 0 3rem;overflow-x:auto;min-width:0}.page-header{margin-bottom:1.5rem}.page-header h2{font-size:1.5rem;font-weight:600}.page-header p{color:var(--color-text-muted);margin-top:.25rem;font-size:.9375rem}.mobile-header,.mobile-bottom-nav,.sidebar-overlay{display:none}.scroll-top-button{position:fixed;right:1.25rem;bottom:1.25rem;z-index:90;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:0;width:3.25rem;height:3.25rem;border:1px solid rgba(255,255,255,.45);border-radius:999px;background:var(--color-primary);color:#fff;box-shadow:0 6px 18px #23272f38;font-size:.6875rem;font-weight:700;line-height:1;padding:0}.scroll-top-button span{font-size:1rem;line-height:.9}@media(max-width:900px){.admin-layout{flex-direction:column;padding-top:56px;padding-bottom:64px}.mobile-header{display:flex;align-items:center;gap:.75rem;position:fixed;top:0;left:0;right:0;height:56px;padding:0 1rem;background:var(--color-header-bg);border-bottom:1px solid var(--color-header-border);color:var(--color-nav-text);z-index:100}.mobile-header-title{display:flex;flex-direction:column;min-width:0}.mobile-header-title strong{font-size:.9375rem;line-height:1.2}.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;padding:0;background:none;color:var(--color-nav-text);border-radius:var(--radius);flex-shrink:0}.menu-toggle:hover{background:#ffffff24}.menu-toggle span{display:block;width:20px;height:2px;background:currentColor;border-radius:1px;margin:0 auto}.sidebar{position:fixed;top:0;left:0;bottom:0;width:280px;max-width:85vw;margin:0;border-radius:0;z-index:200;background:var(--color-primary);border-right-color:var(--color-primary-hover);color:#fff;align-items:stretch;flex-direction:column;gap:0;padding:0;transform:translate(-100%);transition:transform .25s ease;box-shadow:none}.sidebar .sidebar-brand,.sidebar .sidebar-footer{border-color:#ffffff47}.sidebar .sidebar-brand{min-width:0;padding:1.5rem;border-right:0;border-bottom:1px solid rgba(255,255,255,.28)}.sidebar .sidebar-nav{flex:1;flex-direction:column;padding:1rem .75rem;overflow-y:auto}.sidebar .sidebar-footer{display:block;padding:1rem 1.5rem;border-top:1px solid rgba(255,255,255,.28);border-left:0}.sidebar .user-info{margin-bottom:.75rem}.sidebar .sidebar-brand p,.sidebar .user-info,.sidebar .user-role{color:#ffffffdb}.sidebar .sidebar-nav a{color:#ffffffe6}.sidebar .sidebar-nav a:hover{background:#ffffff1f;color:#fff}.sidebar .sidebar-nav a.active{background:#fff3;color:#fff}.sidebar .sidebar-footer button{width:100%;border-color:#ffffffb3;background:transparent;color:#fff}.sidebar .sidebar-footer button:hover:not(:disabled){background:#ffffff29}.sidebar.sidebar-open{transform:translate(0);box-shadow:8px 0 28px #0000006b}.sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;background:#0006;border:none;padding:0;cursor:pointer}.main-content{padding:1rem;width:100%;max-width:none;margin:0}.scroll-top-button{right:1rem;bottom:5rem}.page-header h2{font-size:1.25rem}.mobile-bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;height:64px;background:var(--color-surface);border-top:1px solid var(--color-border);z-index:100;overflow-x:auto;-webkit-overflow-scrolling:touch}.mobile-bottom-nav a{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;padding:.5rem .25rem;font-size:.75rem;color:var(--color-text-muted);text-align:center;white-space:nowrap}.mobile-bottom-nav a.active{color:var(--color-primary);font-weight:600;background:#96a68f29}.form-row{flex-direction:column;align-items:stretch}.form-row .form-group{min-width:0;margin-bottom:.75rem}.form-row button{width:100%}table th,table td{padding:.5rem .625rem;font-size:.875rem}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem;background:linear-gradient(180deg,#eef0f2,#f7f7f8)}.login-card{width:100%;max-width:400px}.login-header{text-align:center;margin-bottom:2rem}.login-header h1{font-size:1.25rem;font-weight:700;line-height:1.4}.login-header p{color:var(--color-text-muted);margin-top:.5rem;font-size:.9375rem}.login-btn{width:100%;margin-top:.5rem;padding:.75rem}.auth-switch{text-align:center;margin-top:1.25rem;font-size:.875rem;color:var(--color-text-muted)}.auth-switch a{color:var(--color-primary);font-weight:500;margin-left:.25rem}.auth-switch a:hover{text-decoration:underline}.accounts-page{display:flex;flex-direction:column;gap:1rem}.accounts-section{padding:1.25rem}.account-cards{display:none}.account-card{border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem;background:var(--color-bg)}.account-card+.account-card{margin-top:.75rem}.account-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.75rem}.account-card-name{font-size:1rem;font-weight:600;line-height:1.3}.account-card-username{font-size:.8125rem;color:var(--color-text-muted);margin-top:.125rem}.account-status{flex-shrink:0;font-size:.75rem;font-weight:500;padding:.25rem .625rem;border-radius:999px;white-space:nowrap}.account-status--approved{background:var(--color-success-surface);color:var(--color-success-text)}.account-status--pending{background:var(--color-warning-surface);color:var(--color-warning-text)}.account-status--rejected{background:var(--color-danger-surface);color:var(--color-danger-text)}.account-card-row{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem 0;border-top:1px solid var(--color-border)}.account-card-label{font-size:.8125rem;color:var(--color-text-muted);flex-shrink:0}.account-card-value{font-size:.875rem;text-align:right}.account-card-field{margin:.5rem 0 0;padding-top:.5rem;border-top:1px solid var(--color-border)}.account-card-field label{font-size:.8125rem}.account-self-tag{display:inline-block;margin-left:.375rem;font-size:.75rem;color:var(--color-primary);background:#96a68f29;padding:.125rem .5rem;border-radius:999px}.account-card-actions{display:flex;gap:.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--color-border)}.account-card-actions button{flex:1}.accounts-table-desktop{display:block}.table-actions{display:flex;gap:.5rem;flex-wrap:wrap}@media(max-width:768px){.accounts-section{padding:1rem}.account-cards{display:block}.accounts-table-desktop{display:none}}.mobile-picker{position:relative}.mobile-picker-label{display:block;margin-bottom:.375rem;font-size:.875rem;font-weight:500;text-align:left}.mobile-picker-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:44px;padding:.625rem .75rem;background:var(--color-surface-elevated);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius);font-size:16px;text-align:left}.mobile-picker-trigger:hover{background:#edeef0}.mobile-picker-placeholder{color:var(--color-text-muted)}.mobile-picker-chevron{color:var(--color-text-muted);font-size:.875rem;flex-shrink:0}.mobile-picker-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500}.mobile-picker-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000073;border:none;padding:0;border-radius:0}.mobile-picker-sheet{position:absolute;left:0;right:0;bottom:0;max-height:70vh;display:flex;flex-direction:column;background:var(--color-surface);border-top:1px solid var(--color-border);border-radius:16px 16px 0 0;box-shadow:0 -12px 32px #00000059}.mobile-picker-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1rem;border-bottom:1px solid var(--color-border)}.mobile-picker-header strong{font-size:1rem}.mobile-picker-header .btn-secondary{padding:.375rem .75rem;font-size:.875rem}.mobile-picker-options{overflow-y:auto;padding:.5rem;-webkit-overflow-scrolling:touch}.mobile-picker-option{width:100%;display:block;min-height:48px;margin-bottom:.375rem;padding:.75rem 1rem;background:var(--color-surface-elevated);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius);font-size:16px;text-align:left}.mobile-picker-option:hover,.mobile-picker-option.active{background:#96a68f29;border-color:var(--color-primary);color:var(--color-primary)}.mobile-picker-empty{text-align:center;color:var(--color-text-muted);padding:1.5rem 1rem}.mobile-picker-required{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.tool-management-tabs{display:inline-flex;gap:.35rem;margin-bottom:1.25rem;padding:.3rem;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface-elevated);box-shadow:var(--shadow-sm)}.tool-management-tabs a{min-width:112px;padding:.65rem 1.1rem;border-radius:9px;color:var(--color-text-muted);font-size:.9rem;font-weight:700;text-align:center;text-decoration:none;transition:background .15s,color .15s,box-shadow .15s}.tool-management-tabs a:hover{background:var(--color-surface);color:var(--color-text)}.tool-management-tabs a.active{background:var(--color-primary);color:#fff;box-shadow:0 3px 10px #52664d33}@media(max-width:600px){.tool-management-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.tool-management-tabs a{min-width:0}}.tools-page{display:flex;flex-direction:column;gap:1rem}.tools-section{padding:1.25rem}.section-title{font-size:1rem;font-weight:600;margin-bottom:1rem;text-align:left;display:flex;align-items:center;gap:.5rem}.section-count{font-size:.8125rem;font-weight:500;color:var(--color-text-muted)}.tools-list-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:1rem}.tools-list-heading .section-title{margin-bottom:0}.tool-title-color-controls{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.tool-title-color-controls label{display:inline-flex;align-items:center;gap:.375rem;font-size:.75rem;color:var(--color-text-muted);white-space:nowrap}.tool-title-color-controls input[type=color]{width:2.25rem;height:2rem;padding:.125rem;border:1px solid var(--color-border);border-radius:.5rem;background:var(--color-surface);cursor:pointer}.tools-desktop-only{display:block}.tools-mobile-toolbar{display:none}.tools-form{display:grid;grid-template-columns:repeat(4,1fr) auto;gap:.75rem;align-items:end}@media(max-width:1100px){.tools-form{grid-template-columns:repeat(2,1fr)}.tools-form .btn-submit{grid-column:1 / -1}}.tools-form .form-group{margin-bottom:0}.tools-form .btn-submit{height:42px;white-space:nowrap;padding:0 1.25rem}.tools-filter{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.tools-filter .form-group{margin-bottom:0}.tool-cards{display:none}.tool-card{border:1px solid var(--color-border);border-radius:var(--radius);padding:0;overflow:hidden;background:var(--color-bg)}.tool-card+.tool-card{margin-top:.75rem}.tool-card-main{padding:.875rem 1rem}.tool-card-name{font-size:1rem;font-weight:600;margin-bottom:.25rem}.tool-card-meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:.8125rem;color:inherit;margin-top:.25rem}.tool-badge{display:inline-block;padding:.125rem .5rem;background:#ffffff24;color:inherit;border-radius:999px;font-size:.75rem;font-weight:500}.tool-badge-restock{background:var(--color-warning-surface);color:var(--color-warning-text)}.tool-badge-brand{background:#ffffff1a;color:inherit}.tool-card-date{opacity:.82}.tool-name-cell{display:inline-flex;align-items:center;gap:.5rem;flex-wrap:wrap}.tool-restock-check{display:inline-flex;align-items:center;gap:.375rem;font-size:.875rem;color:var(--color-text-muted);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none}.tool-restock-check input{width:auto;accent-color:var(--color-primary);cursor:pointer}.tool-card-field{margin:.5rem 0}.tool-card .mobile-picker{margin:.75rem 1rem 0}.tool-card-field label{font-size:.8125rem}.tool-name-input{width:100%;font-weight:600}.tool-card-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;padding:.75rem 1rem 1rem}.tool-card-actions button{flex:1}.tool-table-desktop{display:block}.tool-table-desktop select{max-width:160px}.table-actions{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}@media(max-width:768px){.tools-page{gap:.75rem}.tools-desktop-only{display:none!important}.tools-mobile-toolbar{display:block;padding:.875rem}.tools-mobile-search{margin-bottom:.625rem}.tools-mobile-search label{font-size:.8125rem;margin-bottom:.25rem}.tools-mobile-actions{display:flex;gap:.5rem}.tools-toggle-btn{flex:1;padding:.5rem .75rem;font-size:.875rem}.tools-toggle-btn.active{box-shadow:inset 0 0 0 2px var(--color-primary)}.tools-toggle-btn.has-filter{color:var(--color-primary);border-color:var(--color-primary)}.tools-active-filters{display:flex;align-items:center;flex-wrap:wrap;gap:.375rem;margin-top:.625rem}.filter-chip{font-size:.75rem;padding:.2rem .5rem;background:#96a68f29;color:var(--color-primary);border-radius:999px}.filter-clear{background:none;color:var(--color-text-muted);padding:.2rem .5rem;font-size:.75rem;text-decoration:underline}.filter-clear:hover{background:none;color:var(--color-text)}.tools-mobile-panel{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:.625rem}.tools-mobile-panel .form-group{margin-bottom:0}.tools-mobile-panel .form-group label{font-size:.8125rem}.tools-mobile-panel .btn-submit{width:100%;margin-top:.25rem}.tools-section{padding:1rem}.tools-list-heading{flex-direction:column;align-items:stretch;gap:.625rem}.tool-title-color-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.tool-title-color-controls label{justify-content:space-between;padding:.5rem .625rem;border:1px solid var(--color-border);border-radius:.625rem;background:#ffffff08}.tool-cards{display:block}.tool-table-desktop{display:none}.form-group label{text-align:left}}.classifications-page{display:flex;flex-direction:column;gap:1rem}.classifications-section{padding:1.25rem}.section-title{font-size:1rem;font-weight:600;margin-bottom:1rem;text-align:left}.classifications-form{display:grid;grid-template-columns:1fr auto;gap:.75rem;align-items:end}.classifications-form .form-group{margin-bottom:0}.classifications-form .btn-submit{height:42px;white-space:nowrap}.classification-list{list-style:none;display:flex;flex-direction:column;gap:.75rem}.classification-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.875rem 1rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius)}.classification-item-main{flex:1;min-width:0}.classification-name{display:block;font-weight:500}.classification-count{display:block;font-size:.8125rem;color:var(--color-text-muted);margin-top:.125rem}.classification-actions{display:flex;gap:.5rem;flex-shrink:0}.classification-item input{width:100%}@media(max-width:768px){.classifications-section{padding:1rem}.classifications-form{grid-template-columns:1fr}.classifications-form .btn-submit{width:100%;height:44px}.classification-item{flex-direction:column;align-items:stretch}.classification-actions{width:100%}.classification-actions button{flex:1}}.quote-management-tabs{display:inline-flex;gap:.35rem;margin-bottom:1.25rem;padding:.3rem;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface-elevated);box-shadow:var(--shadow-sm)}.quote-management-tabs a{min-width:112px;padding:.65rem 1.1rem;border-radius:9px;color:var(--color-text-muted);font-size:.9rem;font-weight:700;text-align:center;text-decoration:none;transition:background .15s,color .15s,box-shadow .15s}.quote-management-tabs a:hover{background:var(--color-surface);color:var(--color-text)}.quote-management-tabs a.active{background:var(--color-primary);color:#fff;box-shadow:0 3px 10px #52664d33}@media(max-width:600px){.quote-management-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.quote-management-tabs a{min-width:0;padding-right:.45rem;padding-left:.45rem}}.quotes-create-section{padding:1.5rem}.quotes-create-heading{margin-bottom:1.25rem}.quotes-create-heading h3{margin-bottom:.25rem;font-size:1.125rem}.quotes-create-heading p,.quotes-category-fieldset>p,.quotes-create-actions>span{color:var(--color-text-muted);font-size:.875rem}.quotes-create-form{display:grid;gap:1.5rem}.quotes-basic-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,2fr) minmax(0,1fr);gap:1rem}.quotes-basic-grid label{display:flex;flex-direction:column;gap:.375rem;min-width:0;color:var(--color-text-muted);font-size:.875rem;font-weight:600}.quotes-basic-grid input,.quotes-basic-grid select{min-height:2.75rem;background:var(--color-surface-elevated)}.quotes-address-field{grid-column:auto}.quotes-category-fieldset{min-width:0;border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem}.quotes-category-fieldset legend{padding:0 .375rem;font-weight:700}.quotes-category-fieldset>p{margin-bottom:.875rem}.quotes-category-select-all{display:inline-flex;align-items:center;gap:.5rem;min-height:2.5rem;margin-bottom:.75rem;border:1px solid var(--color-primary);border-radius:var(--radius);background:#96a68f2e;padding:.5rem .875rem;font-weight:700;cursor:pointer}.quotes-category-select-all input{width:1rem;height:1rem;margin:0;padding:0;accent-color:var(--color-primary);cursor:pointer}.quotes-category-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.625rem}.quotes-category-option{display:flex;align-items:center;gap:.5rem;min-width:0;min-height:2.75rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface-elevated);padding:.625rem .75rem;font-weight:600;cursor:pointer}.quotes-category-option:has(input:checked){border-color:var(--color-primary);background:#96a68f2e}.quotes-category-option input{flex:0 0 auto;width:1rem;height:1rem;margin:0;padding:0;accent-color:var(--color-primary);cursor:pointer}.quotes-create-actions{display:flex;align-items:center;justify-content:flex-end;gap:1rem}.quotes-create-actions button{min-width:10rem;min-height:2.75rem;font-weight:700}.quotes-ready-message{border-radius:var(--radius);background:var(--color-success-surface);color:var(--color-success-text);padding:.75rem 1rem;font-weight:600}.quotes-projects-section{margin-top:1.5rem}.quotes-projects-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.quotes-projects-heading h3{font-size:1.125rem}.quotes-projects-heading span,.quotes-project-card-header span,.quotes-project-info dt{color:var(--color-text-muted);font-size:.8125rem}.quotes-project-list{display:grid;gap:1rem}.quotes-project-card{display:grid;gap:1rem;padding:1.25rem}.quotes-project-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.quotes-project-card-header h3{margin-bottom:.125rem;font-size:1.125rem}.quotes-project-status{display:inline-flex;align-items:center;min-height:1.875rem;border-radius:999px;background:var(--color-surface-elevated);padding:0 .75rem;font-weight:700;white-space:nowrap}.quotes-project-status.locked,.quotes-project-status.generated{background:#96a68f2e;color:var(--color-primary-hover)}.quotes-project-info{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,2fr) minmax(0,1fr);gap:.75rem}.quotes-project-info>div{min-width:0;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface-elevated);padding:.625rem .75rem}.quotes-project-info dd{margin-top:.125rem;font-weight:700;overflow-wrap:anywhere}.quotes-project-categories{display:flex;flex-wrap:wrap;gap:.375rem}.quotes-project-categories span{border-radius:999px;background:#96a68f2e;color:var(--color-primary-hover);padding:.25rem .625rem;font-size:.75rem;font-weight:700}.quotes-project-actions{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.5rem}.quotes-project-actions button,.quotes-project-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:2.625rem;padding:.5rem;font-weight:700;text-decoration:none;white-space:nowrap}@media(max-width:1000px){.quotes-basic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quotes-category-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.quotes-project-info{grid-template-columns:repeat(2,minmax(0,1fr))}.quotes-project-actions{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:600px){.quotes-create-section{padding:1rem}.quotes-create-heading{margin-bottom:1rem}.quotes-create-form{gap:1rem}.quotes-basic-grid{grid-template-columns:1fr;gap:.75rem}.quotes-address-field{grid-column:auto}.quotes-category-fieldset{padding:.75rem}.quotes-category-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.quotes-category-option{min-height:2.5rem;padding:.5rem .625rem;font-size:.875rem}.quotes-create-actions{align-items:stretch;flex-direction:column;gap:.5rem}.quotes-create-actions button{width:100%}.quotes-projects-section{margin-top:1rem}.quotes-project-card{gap:.75rem;padding:1rem}.quotes-project-info{grid-template-columns:1fr;gap:.5rem}.quotes-project-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.quotes-project-actions button:last-child{grid-column:span 2}}.quote-view-page{--quote-border: #b8beb9;--quote-section: #f5e5dc;--quote-total: #fff3a8}.quote-view-toolbar{display:flex;justify-content:space-between;gap:.75rem;margin-bottom:1rem}.quote-view-toolbar a{display:inline-flex;align-items:center;text-decoration:none}.quote-view-toolbar>div{display:flex;gap:.6rem}.quote-view-message{max-width:1100px;margin:0 auto 1rem;padding:.75rem 1rem;border-radius:8px}.quote-edit-hint{max-width:1100px;margin:0 auto 1rem;padding:.75rem 1rem;border:1px solid #d7dfd4;border-radius:8px;background:#eef2ec;color:var(--color-text-muted);font-size:.82rem;line-height:1.55}.quote-add-section{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,.75fr) auto auto;align-items:end;gap:.85rem;max-width:1100px;margin:0 auto 1rem;padding:1rem;border:1px solid #d7dfd4;border-radius:10px;background:#fff;box-shadow:var(--shadow-sm)}.quote-add-section h3,.quote-add-section p{margin:0}.quote-add-section h3{margin-bottom:.25rem;font-size:1rem}.quote-add-section p{color:var(--color-text-muted);font-size:.78rem;line-height:1.45}.quote-add-section-name{display:grid;gap:.35rem;font-size:.8rem}.quote-add-section-name input{width:100%;min-height:42px}.quote-add-section-variation{display:inline-flex;align-items:center;gap:.45rem;min-height:42px;padding:0 .75rem;border:1px solid var(--color-border);border-radius:8px;background:#f7f8f6;font-size:.82rem;white-space:nowrap;cursor:pointer}.quote-add-section-variation input{width:18px;height:18px}.quote-add-section>button{min-height:42px;white-space:nowrap}.quote-view-missing{display:grid;justify-items:start;gap:.75rem}.quote-document{max-width:1100px;margin:0 auto;padding:2rem;border:1px solid var(--color-border);border-radius:12px;background:#fff;color:#1f2521;box-shadow:var(--shadow-sm)}.quote-document-company h1,.quote-document-company h2{text-align:center}.quote-document-company h1{margin:0 0 .75rem;font-size:1.5rem;letter-spacing:.18em}.quote-document-company h2{margin:1.25rem 0 1rem;font-size:1.75rem;letter-spacing:.45em}.quote-document-company>div{display:flex;justify-content:space-between;gap:1rem;font-size:.85rem}.quote-document-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0 0 1rem;border-top:1px solid var(--quote-border);border-left:1px solid var(--quote-border)}.quote-document-meta>div{display:grid;grid-template-columns:95px minmax(0,1fr);border-right:1px solid var(--quote-border);border-bottom:1px solid var(--quote-border)}.quote-document-meta dt,.quote-document-meta dd{margin:0;padding:.55rem .65rem}.quote-document-meta dt{background:#eef2ec;font-weight:700}.quote-document-meta dd{overflow-wrap:anywhere}.quote-document-meta dd input{width:100%;min-height:34px;padding:.3rem .45rem;background:#fffdf0}.quote-document-table-wrap{overflow-x:auto}.quote-document-table{width:100%;min-width:780px;table-layout:fixed;border-collapse:collapse;font-size:.84rem}.quote-document-table.is-editing{min-width:1050px}.quote-col-index{width:7%}.quote-col-content{width:27%}.quote-col-quantity,.quote-col-unit{width:9%}.quote-col-price,.quote-col-total{width:11%}.quote-col-note{width:19%}.quote-col-action{width:7%}.quote-document-table th,.quote-document-table td{padding:.48rem .55rem;border:1px solid var(--quote-border);text-align:center;vertical-align:middle}.quote-document-table thead th{background:#dfeadb}.quote-document-table tbody td:nth-child(2),.quote-document-table tbody td:last-child{text-align:left}.quote-document-table tbody td:nth-child(2){min-width:230px}.quote-document-section th{background:var(--quote-section);text-align:left;font-size:.9rem}.quote-document-section th>div{display:flex;align-items:center;justify-content:flex-start;gap:.75rem;padding-right:.35rem}.quote-document-section button{flex:0 0 auto;min-height:30px;padding:.25rem .65rem;font-size:.75rem;white-space:nowrap}.quote-section-actions{display:flex;align-items:center;gap:.45rem}.quote-document-table input{width:100%;min-width:70px;min-height:36px;padding:.35rem .45rem;background:#fffdf0;font-size:.82rem}.quote-document-table td:nth-child(2) input{min-width:220px}.quote-document-table td:nth-child(7) input{min-width:150px}.quote-item-delete{min-height:34px;padding:.35rem .6rem;font-size:.75rem;white-space:nowrap}.quote-document-subtotal th,.quote-document-subtotal td,.quote-document-table tfoot th,.quote-document-table tfoot td{background:var(--quote-total);font-weight:800}.quote-document-subtotal th,.quote-document-table tfoot th{text-align:right}.quote-document-grand-total th,.quote-document-grand-total td{background:#dcebd8!important;font-size:1rem}.quote-document-empty{color:var(--color-text-muted)}.quote-document-terms{display:grid;gap:.85rem;margin-top:1.25rem;font-size:.78rem;line-height:1.6}.quote-document-terms>div{display:grid;grid-template-columns:145px minmax(0,1fr);border:1px solid #d2d7d3;border-radius:7px;overflow:hidden}.quote-document-terms>div>strong{padding:.7rem .8rem;background:#eef2ec;color:#344337;font-size:.8rem}.quote-document-payment>span{padding:.7rem .85rem;font-weight:600}.quote-document-notes>strong{border-right:1px solid #d2d7d3}.quote-document-terms ol{display:grid;gap:0;margin:0;padding:0;list-style-position:inside;counter-reset:quote-note}.quote-document-terms li{display:grid;grid-template-columns:26px 82px minmax(0,1fr);gap:.4rem;padding:.55rem .75rem;border-bottom:1px solid #e1e5e2;counter-increment:quote-note}.quote-document-terms li:before{content:counter(quote-note) ".";color:#5d695f;font-weight:700;text-align:right}.quote-document-terms li:last-child{border-bottom:0}.quote-document-terms li b{color:#344337;white-space:nowrap}.quote-document-signature{min-height:110px;margin-top:1.25rem;padding-top:.75rem;border-top:2px solid #d2d7d3;font-weight:700}@media(max-width:700px){.quote-add-section{grid-template-columns:1fr;align-items:stretch}.quote-add-section>button{width:100%}.quote-view-toolbar{align-items:stretch;flex-direction:column}.quote-view-toolbar a,.quote-view-toolbar button{justify-content:center;width:100%}.quote-view-toolbar>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.quote-document{margin:0 -.35rem;padding:1rem;border-radius:9px}.quote-document-company h1{font-size:1.15rem;letter-spacing:.08em}.quote-document-company h2{font-size:1.35rem}.quote-document-company>div,.quote-document-terms>div{flex-direction:column;grid-template-columns:1fr}.quote-document-company>div{display:flex}.quote-document-notes>strong{border-right:0;border-bottom:1px solid #d2d7d3}.quote-document-terms li{grid-template-columns:24px minmax(0,1fr)}.quote-document-terms li b,.quote-document-terms li span{grid-column:2}.quote-document-meta{grid-template-columns:1fr}}@media print{@page{size:A4 portrait;margin:11mm 10mm 12mm}html,body{width:100%;margin:0!important;padding:0!important;background:#fff!important}body,.quote-document,.quote-document *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.sidebar,.mobile-header,.mobile-bottom-nav,.scroll-top-button,.quote-view-no-print{display:none!important}.admin-layout,.quote-view-page,.main-content{display:block!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important;overflow:visible!important}.quote-document{width:100%;max-width:none;padding:0;border:0;border-radius:0;box-shadow:none;font-family:Noto Sans TC,Microsoft JhengHei,sans-serif;font-size:9.5pt}.quote-document-company{break-inside:avoid}.quote-document-company h1{margin:0 0 3mm;font-size:17pt;letter-spacing:.18em}.quote-document-company h2{margin:6mm 0 5mm;font-size:19pt;letter-spacing:.5em}.quote-document-company>div{font-size:8.5pt}.quote-document-meta{margin-bottom:5mm;break-inside:avoid}.quote-document-meta>div{grid-template-columns:25mm minmax(0,1fr)}.quote-document-meta dt,.quote-document-meta dd{padding:2.4mm 3mm}.quote-document-meta dt,.quote-document-table thead th{background:#e6eee2!important}.quote-document-table-wrap{overflow:visible}.quote-document-table{width:100%;min-width:0;table-layout:fixed;font-size:8.5pt}.quote-document-table thead{display:table-header-group}.quote-document-table tfoot{display:table-row-group}.quote-document-table th,.quote-document-table td{padding:1.8mm 1.6mm;border-color:#aeb8b0;line-height:1.35}.quote-document-section th{padding-top:2.2mm;padding-bottom:2.2mm;background:#f4e6dd!important;font-size:9pt}.quote-document-subtotal th,.quote-document-subtotal td,.quote-document-table tfoot th,.quote-document-table tfoot td{background:#fff2ae!important}.quote-document-grand-total th,.quote-document-grand-total td{background:#dcebd8!important}.quote-document-empty{color:#68716a}.quote-document-section,.quote-document-section+tr,.quote-document-table tr{break-inside:avoid}.quote-document-section{break-after:avoid}.quote-document-subtotal{break-before:avoid}.quote-document-terms{gap:3mm;margin-top:6mm;font-size:8.2pt;line-height:1.5}.quote-document-terms>div{grid-template-columns:30mm minmax(0,1fr);border-color:#c6cec8;border-radius:4px}.quote-document-terms>div>strong{padding:2.5mm 3mm;background:#e6eee2!important;font-size:8.3pt}.quote-document-payment{break-inside:avoid}.quote-document-payment>span{padding:2.5mm 3mm}.quote-document-notes>ol{break-inside:auto}.quote-document-terms li{grid-template-columns:5mm 20mm minmax(0,1fr);gap:1.5mm;padding:1.8mm 2.5mm;break-inside:avoid}.quote-document-signature{min-height:32mm;margin-top:6mm;padding-top:3mm;break-inside:avoid}}.beauty-page{width:100%}.beauty-page-header,.beauty-editor-toolbar,.beauty-toolbar-actions,.beauty-form-actions,.beauty-project-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.beauty-primary-link,.beauty-secondary-link{display:inline-flex;min-height:42px;align-items:center;justify-content:center;padding:.5rem 1rem;border-radius:var(--radius);font-weight:600}.beauty-primary-link{color:#fff;background:var(--color-primary)}.beauty-secondary-link{color:var(--color-text);background:var(--color-surface-elevated);border:1px solid var(--color-border)}.beauty-message{margin-bottom:1rem}.beauty-project-card{padding:0;overflow:hidden}.beauty-empty-state{padding:3.5rem 1rem;text-align:center;color:var(--color-text-muted)}.beauty-empty-state strong{display:block;margin-bottom:.375rem;color:var(--color-text);font-size:1.0625rem}.beauty-project-row{display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(320px,2fr) auto;align-items:center;gap:1.25rem;padding:1.25rem 1.5rem;border-bottom:1px solid var(--color-border)}.beauty-project-row:last-child{border-bottom:0}.beauty-project-main strong,.beauty-project-main span{display:block}.beauty-project-main span{margin-top:.25rem;color:var(--color-text-muted);font-size:.875rem}.beauty-project-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.beauty-project-meta dt{color:var(--color-text-muted);font-size:.75rem}.beauty-project-meta dd{margin-top:.125rem;font-size:.9375rem;font-weight:600}.beauty-project-actions .btn-danger{min-height:42px}.beauty-create-form{max-width:920px}.beauty-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.beauty-salesperson-mobile{display:none}.beauty-salesperson-desktop label{display:block;margin-bottom:.375rem;font-size:.875rem;font-weight:500}.beauty-salesperson-picker.compact{margin-bottom:0}.beauty-salesperson-picker.compact .beauty-salesperson-desktop{display:grid;grid-template-columns:6.25rem 1fr;align-items:center}.beauty-salesperson-picker.compact .beauty-salesperson-desktop label{margin:0;font-size:1rem;font-weight:400}.beauty-salesperson-picker.compact .beauty-salesperson-desktop label:after{content:"："}.beauty-salesperson-picker.compact select{min-height:36px;padding:.25rem .5rem;border-color:transparent;border-bottom-color:#aaa;border-radius:0;background:transparent;color:#111;font-size:1rem;font-weight:600}.beauty-address-field{grid-column:span 2}.beauty-form-actions{justify-content:flex-end;margin-top:.5rem}.beauty-editor-toolbar{margin-bottom:1rem}.beauty-editor-messages{padding:.75rem 1rem;margin-bottom:1rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface)}.beauty-editor-messages p{margin:0}.beauty-quote-sheet{width:100%;padding:3rem 4rem;background:#fff;border:1px solid var(--color-border);box-shadow:var(--shadow);color:#111}.beauty-quote-header h1{margin:0 0 4.25rem;text-align:center;text-decoration:underline;text-underline-offset:.3rem;font-size:1.75rem;letter-spacing:.4rem}.beauty-company-row{display:flex;justify-content:space-between;gap:1rem;font-weight:600}.beauty-quote-header h2{margin:.75rem 0;text-align:center;font-size:1.6rem;letter-spacing:.55rem}.beauty-quote-details{display:grid;grid-template-columns:minmax(0,2fr) minmax(250px,1fr);gap:2rem;margin-bottom:.75rem}.beauty-client-fields,.beauty-sales-fields{display:grid;gap:.5rem}.beauty-client-fields label{display:grid;grid-template-columns:6rem 1fr;align-items:center;gap:.5rem;font-weight:600}.beauty-client-fields input,.beauty-quote-table input{min-height:36px;padding:.35rem .45rem;border-color:transparent;border-bottom-color:#aaa;border-radius:0;background:transparent;color:#111}.beauty-client-fields input:focus,.beauty-quote-table input:focus{border-color:var(--color-primary);outline:2px solid rgba(150,166,143,.25)}.beauty-sales-fields>p{display:grid;grid-template-columns:6.25rem 1fr;align-items:center;min-height:36px}.beauty-sales-fields .mobile-picker{display:grid;grid-template-columns:6.25rem 1fr;align-items:center;margin-bottom:0}.beauty-sales-fields .mobile-picker-label{margin:0;font-weight:400}.beauty-sales-fields .mobile-picker-label:after{content:"："}.beauty-sales-fields .mobile-picker-trigger{min-height:36px;padding:.25rem .5rem;border-color:transparent;border-bottom-color:#aaa;border-radius:0;background:transparent;color:#111;font-size:1rem;font-weight:600}.beauty-quote-table-wrap{overflow-x:auto;border:2px solid #111}.beauty-quote-table{min-width:880px;table-layout:fixed}.beauty-quote-table caption{padding:.35rem;background:#d9efd0;border-bottom:1px solid #111;font-weight:700}.beauty-quote-table th,.beauty-quote-table td{height:42px;padding:.25rem .4rem;border-right:1px solid #111;border-bottom:1px solid #111;text-align:center;color:#111;background:#fff}.beauty-quote-table tr:last-child th,.beauty-quote-table tr:last-child td{border-bottom:0}.beauty-quote-table th:last-child,.beauty-quote-table td:last-child{border-right:0}.beauty-quote-table thead th{background:#f1f1f1;font-weight:500}.beauty-quote-table .beauty-section-row th{background:#f8ded0;font-weight:700}.beauty-quote-table input{width:100%;text-align:inherit}.beauty-col-index{width:58px}.beauty-col-number,.beauty-col-unit{width:72px}.beauty-col-price{width:100px}.beauty-col-action{width:78px}.beauty-item-action button{padding:.35rem .55rem;font-size:.8125rem}.beauty-line-total,.beauty-summary-row td,.beauty-summary-row th{font-variant-numeric:tabular-nums}.beauty-summary-row th{background:#d9efd0}.beauty-grand-total th{background:#f8ded0}.beauty-grand-total td{font-weight:700}.beauty-add-item{width:100%;margin-top:.75rem;background:#96a68f24;border:1px dashed var(--color-primary);color:var(--color-text)}.beauty-fixed-copy{margin-top:.25rem;line-height:1.55}.beauty-payment-row,.beauty-notes{margin-top:.3rem}.beauty-payment-row,.beauty-notes{display:grid;grid-template-columns:6.4rem 1fr}.beauty-notes ol{padding-left:1.4rem}.beauty-notes li{margin-bottom:.2rem}.beauty-signature{min-height:5rem;padding:2rem 1rem 0}.beauty-mobile-save{display:none}.beauty-export-host{position:fixed;top:0;left:-12000px;width:1120px;height:1584px;pointer-events:none}.beauty-export-sheet{width:1120px;height:1584px;padding:48px 64px;background:#fff;color:#111;font-family:Microsoft JhengHei,sans-serif;font-size:16px;line-height:1.5;overflow:hidden}.beauty-export-header h1{margin:0 0 68px;text-align:center;text-decoration:underline;text-underline-offset:5px;font-size:1.75rem;line-height:1.3;letter-spacing:.4rem}.beauty-export-company-row{display:flex;justify-content:space-between;gap:1rem}.beauty-export-header h2{margin:12px 0;text-align:center;font-size:1.6rem;line-height:1.4;letter-spacing:.55rem}.beauty-export-details{display:grid;grid-template-columns:minmax(0,2fr) minmax(250px,1fr);gap:32px;margin-bottom:12px}.beauty-export-details p{display:grid!important;grid-template-columns:88px minmax(0,1fr);align-items:center;column-gap:4px;min-height:42px}.beauty-export-details p strong,.beauty-export-details p span{text-align:left}.beauty-export-details p span{font-weight:600}.beauty-export-table-frame{border:2px solid #111}.beauty-export-table-title{display:flex;height:42px;align-items:center;justify-content:center;background:#d9efd0;border-bottom:1px solid #111;font-weight:700}.beauty-export-table{width:100%;border-collapse:collapse;table-layout:fixed}.beauty-export-col-index{width:10%}.beauty-export-col-content{width:29%}.beauty-export-col-quantity{width:7%}.beauty-export-col-unit{width:6%}.beauty-export-col-price,.beauty-export-col-total{width:10%}.beauty-export-col-note{width:28%}.beauty-export-table th,.beauty-export-table td{height:48px;padding:4px 6px;border-right:1px solid #111;border-bottom:1px solid #111;text-align:center;vertical-align:middle;color:#111;background:#fff}.beauty-export-table tr>:last-child{border-right:0}.beauty-export-table tbody tr:last-child>*{border-bottom:0}.beauty-export-table thead th{height:42px;background:#f1f1f1;font-weight:500}.beauty-export-table .beauty-export-section-row th{height:48px;background:#f8ded0;font-weight:700}.beauty-export-summary-row th{background:#d9efd0;font-weight:700}.beauty-export-grand-total th{background:#f8ded0}.beauty-export-grand-total td{font-weight:700}.beauty-export-fixed-copy{margin-top:14px;line-height:1.55}.beauty-export-payment,.beauty-export-notes{display:grid;grid-template-columns:104px 1fr}.beauty-export-notes{margin-top:4px}.beauty-export-notes ol{padding-left:22px}.beauty-export-notes li{margin-bottom:3px}.beauty-export-signature{min-height:80px;padding:32px 16px 0}@media(max-width:900px){.beauty-salesperson-desktop{display:none!important}.beauty-salesperson-mobile{display:block}.beauty-salesperson-mobile .mobile-picker{margin-bottom:0}.beauty-page-header{align-items:flex-start}.beauty-project-row{grid-template-columns:1fr;gap:1rem;padding:1rem}.beauty-project-meta{gap:.5rem}.beauty-project-actions>*{flex:1}.beauty-form-grid{grid-template-columns:1fr}.beauty-address-field{grid-column:auto}.beauty-create-form{padding:1rem}.beauty-editor-page{padding-bottom:4.5rem}.beauty-editor-toolbar{align-items:stretch}.beauty-toolbar-actions>button:last-child{display:none}.beauty-quote-sheet{padding:1.25rem 1rem}.beauty-quote-header h1{margin-bottom:2rem;font-size:1.25rem;letter-spacing:.12rem}.beauty-company-row{display:grid;gap:.25rem;font-size:.8125rem}.beauty-quote-header h2{margin:1rem 0;font-size:1.35rem;letter-spacing:.3rem}.beauty-quote-details{grid-template-columns:1fr;gap:1rem}.beauty-client-fields label,.beauty-sales-fields>p,.beauty-sales-fields .mobile-picker{grid-template-columns:5.5rem minmax(0,1fr)}.beauty-quote-table-wrap{overflow:visible;border:0}.beauty-quote-table{min-width:0;display:block}.beauty-quote-table caption,.beauty-quote-table thead,.beauty-section-row{display:none}.beauty-quote-table tbody,.beauty-quote-table tr,.beauty-quote-table td,.beauty-quote-table th{display:block;width:100%}.beauty-quote-table tbody>tr:not(.beauty-summary-row){margin-bottom:.875rem;padding:.75rem;border:1px solid var(--color-border);border-radius:var(--radius);background:#fafafa}.beauty-quote-table tbody>tr:not(.beauty-summary-row) td{display:grid;grid-template-columns:4.25rem minmax(0,1fr);align-items:center;gap:.5rem;height:auto;min-height:44px;padding:.25rem 0;border:0;text-align:left}.beauty-quote-table tbody>tr:not(.beauty-summary-row) td:before{content:attr(data-label);color:var(--color-text-muted);font-size:.8125rem;font-weight:600}.beauty-item-index{font-weight:700}.beauty-line-total-value{display:flex;min-height:36px;align-items:center;padding:.35rem .45rem;border-bottom:1px solid #aaa;font-weight:400}.beauty-item-action button{width:100%}.beauty-summary-row{display:grid!important;grid-template-columns:1fr 8rem}.beauty-summary-row>td:first-child,.beauty-summary-row>td:nth-last-child(-n+2){display:none}.beauty-summary-row th,.beauty-summary-row td{height:auto;min-height:42px;padding:.55rem .75rem;border:1px solid #111}.beauty-summary-row td{border-left:0;text-align:right}.beauty-notes ol{margin-top:.25rem}.beauty-mobile-save{display:block;position:fixed;left:.75rem;right:.75rem;bottom:4.5rem;z-index:95}.beauty-mobile-save button{width:100%;min-height:50px;box-shadow:0 8px 24px #23272f33;font-weight:700}}@media print{@page{size:A4 portrait;margin:10mm}body{background:#fff}.sidebar,.mobile-header,.mobile-bottom-nav,.scroll-top-button,.no-print{display:none!important}.admin-layout,.main-content,.beauty-page{display:block;width:100%;max-width:none;margin:0;padding:0;overflow:visible}.beauty-quote-sheet{padding:0;border:0;box-shadow:none}.beauty-quote-header h1{margin-bottom:22mm}.beauty-client-fields input,.beauty-quote-table input,.beauty-sales-fields .mobile-picker-trigger{border:0;outline:0}.beauty-sales-fields .mobile-picker-chevron{display:none}.beauty-quote-table-wrap{overflow:visible}.beauty-quote-table{min-width:0;font-size:10pt}.beauty-quote-table th,.beauty-quote-table td{padding:2px 4px}.beauty-fixed-copy{font-size:9pt}}.work-types-page{display:grid;gap:1rem}.work-type-tabs{display:grid;grid-template-columns:auto auto;justify-content:start;gap:.5rem;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);padding:.375rem}.work-type-picker{display:grid;grid-template-columns:auto 11rem;align-items:center;justify-content:start;gap:.75rem;min-width:0;color:var(--color-text-muted);font-size:.875rem;font-weight:700}.work-type-picker select{width:100%;min-height:2.75rem;border-color:var(--color-primary);background-color:var(--color-surface-elevated);color:var(--color-text);font-weight:600}.work-type-manage-link{display:inline-flex;align-items:center;justify-content:center;min-width:5rem;border-radius:calc(var(--radius) - 2px);background:var(--color-primary);color:#fff;padding:.625rem 1rem;font-weight:700;text-decoration:none;white-space:nowrap}.work-items-section{padding:1.25rem}.work-items-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}.work-items-heading h3{margin:.125rem 0;font-size:1.125rem}.work-items-heading p,.work-items-eyebrow{color:var(--color-text-muted);font-size:.8125rem}.work-items-mode-link{display:inline-flex;align-items:center;justify-content:center;min-height:2.625rem;border-radius:var(--radius);padding:.5rem 1rem;font-weight:700;text-decoration:none;white-space:nowrap}.work-items-mode-link:not(.btn-secondary){background:var(--color-primary);color:#fff}.work-item-create-form{display:grid;gap:.375rem;margin-top:1.25rem;border-top:1px solid var(--color-border);padding-top:1.25rem}.work-item-create-form label{color:var(--color-text-muted);font-size:.875rem;font-weight:600}.work-item-create-form h4{color:var(--color-text-muted);font-size:.875rem}.work-item-create-form>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.625rem}.work-item-create-form button{min-width:7rem}.work-item-detail-create-form>.work-item-create-fields{display:grid;grid-template-columns:minmax(0,1fr) 7rem 12rem auto;align-items:end;gap:.625rem}.work-item-create-fields label,.work-item-edit-fields label{display:grid;gap:.375rem;min-width:0}.work-item-details,.work-item-edit-fields{display:grid;grid-template-columns:minmax(0,1fr) 7rem 12rem;flex:1;gap:.75rem;min-width:0}.work-item-details>div{display:flex;align-items:center;gap:.5rem;min-width:0;padding:.25rem .75rem .25rem 0}.work-item-details>div:not(:last-child){border-right:1px solid var(--color-border)}.work-item-details dt,.work-item-edit-fields span{color:var(--color-text-muted);font-size:.75rem}.work-item-details dt{flex:0 0 auto;font-size:1rem;font-weight:600;white-space:nowrap}.work-item-details dd{min-width:0;font-size:1rem;font-weight:700;white-space:nowrap;overflow-wrap:anywhere}.work-item-details>div:first-child dd{overflow:hidden;text-overflow:ellipsis}.work-items-empty{margin-top:1.25rem;border:1px dashed var(--color-border);border-radius:var(--radius);padding:2rem 1rem;text-align:center}.work-items-empty p{margin-top:.25rem;color:var(--color-text-muted);font-size:.875rem}.work-item-list{display:grid;gap:.625rem;margin-top:1.25rem;list-style:none}.work-item-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:3.5rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface-elevated);padding:.625rem .75rem}.work-item-row.drag-over{border-color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-primary)}.work-item-row>span{font-weight:700}.work-item-row>input{min-width:0;flex:1}.work-item-actions{display:flex;flex:0 0 auto;gap:.5rem}.work-item-actions button{min-height:2.25rem;padding:.3rem .625rem;font-size:.875rem}.work-item-actions .work-item-edit-button{background:var(--color-primary);color:#fff}.work-item-actions .work-item-edit-button:hover:not(:disabled){background:var(--color-primary-hover)}.work-item-actions .work-item-drag-handle{min-width:2.25rem;padding-inline:.375rem;color:var(--color-text-muted);cursor:grab;font-size:1rem;letter-spacing:-.2rem}.work-item-actions .work-item-drag-handle:active{cursor:grabbing}@media(max-width:600px){.work-type-tabs{grid-template-columns:auto auto;margin-inline:-.25rem}.work-type-picker{grid-template-columns:auto 10rem;justify-content:start;gap:.5rem}.work-type-picker>span{font-size:.75rem}.work-type-manage-link{align-self:center;min-height:2.75rem}.work-items-section{padding:1rem}.work-items-heading{align-items:stretch;flex-direction:column}.work-items-mode-link{width:100%}.work-item-create-form>div{grid-template-columns:1fr}.work-item-detail-create-form>.work-item-create-fields,.work-item-details,.work-item-edit-fields{grid-template-columns:1fr}.work-item-details>div{border-right:0;padding:.375rem 0}.work-item-details>div:not(:last-child){border-right:0;border-bottom:1px solid var(--color-border)}.work-item-create-form button{width:100%}.work-item-row{align-items:stretch;flex-direction:column}.work-item-actions{width:100%}.work-item-actions button{flex:1}}@media(max-width:400px){.work-type-picker{grid-template-columns:9rem}.work-type-picker>span{display:none}.work-type-manage-link{min-width:4.5rem;padding-inline:.75rem}}.ai-prompts-page{--ai-ink: #243028;--ai-soft: #eef2ec;--ai-accent: #75896e}.ai-prompts-header,.ai-section-heading,.ai-library-heading,.ai-card-meta,.ai-card-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem}.ai-record-count{flex:0 0 auto;padding:.35rem .75rem;border-radius:999px;background:var(--ai-soft);color:var(--ai-accent);font-size:.8125rem;font-weight:700}.ai-prompt-toolbar{display:grid;grid-template-columns:minmax(260px,1.5fr) minmax(180px,.8fr) auto;align-items:end;gap:1rem;margin-bottom:1.25rem}.ai-prompt-toolbar .form-group,.ai-main-fields .form-group{margin-bottom:0}.ai-mobile-category-picker{display:none}.ai-category-toggle{min-height:42px;white-space:nowrap}.ai-category-form{grid-column:1 / -1;display:flex;gap:.75rem;padding-top:1rem;border-top:1px solid var(--color-border)}.ai-category-form input{max-width:360px}.ai-prompt-create{overflow:hidden;margin-bottom:2rem;border-top:4px solid var(--color-primary)}.ai-prompt-create.is-editing{border-top-color:#c08b55;box-shadow:0 0 0 2px #c08b5524}.ai-section-heading{margin-bottom:1.5rem;padding-bottom:1.25rem;border-bottom:1px solid var(--color-border)}.ai-section-heading h3,.ai-library-heading h3{color:var(--ai-ink);font-size:1.25rem}.ai-section-kicker{display:block;margin-bottom:.2rem;color:var(--ai-accent);font-size:.6875rem;font-weight:800;letter-spacing:.14em}.ai-required-note{color:var(--color-text-muted);font-size:.75rem}.ai-main-fields{display:grid;grid-template-columns:2fr 1fr;gap:1rem;margin-bottom:1.25rem}.ai-image-fields{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:1rem;margin-bottom:1.25rem}.ai-image-field{min-width:0}.ai-image-field-heading{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.5rem}.ai-image-field-heading strong{font-size:.875rem}.ai-image-field-heading span{color:var(--color-text-muted);font-size:.75rem}.ai-image-field>input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.ai-multiple-previews{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;margin-bottom:.65rem}.ai-image-preview{position:relative;aspect-ratio:4 / 3;overflow:hidden;border:1px solid var(--color-border);border-radius:9px;background:var(--ai-soft)}.ai-image-preview img{width:100%;height:100%;object-fit:cover}.ai-image-preview button{position:absolute;top:.35rem;right:.35rem;display:grid;place-items:center;width:1.7rem;height:1.7rem;min-height:0;padding:0;border-radius:999px;background:#232824c7;color:#fff;font-size:1.15rem;line-height:1}.ai-image-dropzone.ai-multi-add.has-selection{aspect-ratio:auto;min-height:82px}.ai-image-count{display:block;margin-top:.4rem;color:var(--color-text-muted);font-size:.72rem}.ai-image-dropzone{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:16 / 10;overflow:hidden;border:1.5px dashed #b9c3b5;border-radius:12px;background:linear-gradient(145deg,#f7f9f6,#edf1eb);color:var(--ai-accent);cursor:pointer;transition:border-color .15s,transform .15s}.ai-image-dropzone:hover{border-color:var(--ai-accent);transform:translateY(-1px)}.ai-image-dropzone>span{display:flex;flex-direction:column;align-items:center;gap:.35rem}.ai-image-dropzone small{color:var(--color-text-muted);font-size:.75rem}.ai-image-dropzone img{width:100%;height:100%;object-fit:cover}.ai-image-dropzone.has-image:after{content:"點選更換";position:absolute;right:.6rem;bottom:.6rem;padding:.25rem .55rem;border-radius:999px;background:#191f1bb8;color:#fff;font-size:.6875rem}.ai-image-remove{width:auto;margin-top:.45rem;padding:0;background:none;color:var(--color-danger);font-size:.75rem}.ai-image-remove:hover:not(:disabled){background:none;text-decoration:underline}.ai-image-arrow{display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:999px;background:var(--color-primary);color:#fff;font-size:1.125rem}.ai-prompt-textarea textarea{width:100%;min-height:150px;resize:vertical;border:1px solid var(--color-border);border-radius:var(--radius);padding:.75rem;background:var(--color-surface-elevated);color:var(--color-text);font:inherit;line-height:1.65}.ai-prompt-textarea textarea:focus{outline:2px solid var(--color-primary);border-color:var(--color-primary)}.ai-prompt-textarea small{display:block;margin-top:.3rem;color:var(--color-text-muted);text-align:right}.ai-form-message{margin:0 0 .75rem}.ai-save-button{min-width:220px;min-height:46px;font-weight:700}.ai-form-actions{display:flex;align-items:center;gap:.75rem}.ai-library-heading{margin-bottom:.9rem}.ai-library-heading span{color:var(--color-text-muted);font-size:.8125rem}.ai-prompt-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}.ai-prompt-card{overflow:hidden;padding:0}.ai-comparison{display:grid;grid-template-columns:1fr 1fr;height:230px;min-height:0;background:#dde3da}.ai-gallery-image,.ai-before-gallery{position:relative;display:block;overflow:hidden}.ai-gallery-image{width:100%;height:100%;min-height:0;padding:0;border:0;border-radius:0;background:none;cursor:zoom-in}.ai-after-image{border-left:2px solid #fff}.ai-before-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);min-width:0;min-height:0}.ai-before-gallery.count-1{grid-template-columns:1fr}.ai-before-gallery.count-5,.ai-before-gallery.count-6{grid-template-columns:repeat(3,minmax(0,1fr))}.ai-before-gallery .ai-gallery-image:not(:first-child){border-left:1px solid #fff}.ai-before-gallery .ai-gallery-image{min-width:0;min-height:0}.ai-before-gallery .ai-gallery-image:nth-child(n+3){border-top:1px solid #fff}.ai-comparison img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .25s}.ai-before-gallery img,.ai-after-image img{position:absolute;top:0;right:0;bottom:0;left:0}.ai-gallery-image:hover img{transform:scale(1.025)}.ai-comparison span{position:absolute;left:.6rem;bottom:.6rem;padding:.2rem .5rem;border-radius:999px;background:#191f1bc2;color:#fff;font-size:.6875rem;font-weight:700}.ai-card-body{padding:1.1rem}.ai-card-meta{margin-bottom:.65rem}.ai-card-meta time{color:var(--color-text-muted);font-size:.75rem}.ai-category-chip{padding:.2rem .55rem;border-radius:999px;background:var(--ai-soft);color:var(--ai-accent);font-size:.75rem;font-weight:700}.ai-prompt-card h4{margin-bottom:.55rem;color:var(--ai-ink);font-size:1.05rem}.ai-prompt-preview{display:-webkit-box;min-height:4.8em;overflow:hidden;color:var(--color-text-muted);font-size:.875rem;line-height:1.6;white-space:pre-wrap;-webkit-box-orient:vertical;-webkit-line-clamp:3}.ai-card-actions{justify-content:flex-start;margin-top:1rem}.ai-card-actions button:last-child{margin-left:auto}body.ai-lightbox-open{overflow:hidden}.ai-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3000;display:grid;place-items:center;padding:1.25rem;background:#0f1210e0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.ai-lightbox-panel{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(1100px,100%);height:calc(100dvh - 2.5rem);max-height:900px;overflow:hidden;border-radius:14px;background:#161a17;box-shadow:0 24px 70px #00000073}.ai-lightbox-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1rem;color:#fff}.ai-lightbox-header>div{display:flex;flex-direction:column;min-width:0}.ai-lightbox-header strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-lightbox-header span{color:#ffffffb3;font-size:.78rem}.ai-lightbox-close,.ai-lightbox-nav{display:grid;place-items:center;min-height:0;padding:0;border-radius:999px;background:#ffffff21;color:#fff}.ai-lightbox-close{flex:0 0 auto;width:2.3rem;height:2.3rem;font-size:1.55rem}.ai-lightbox-stage{position:relative;display:grid;place-items:center;width:100%;min-width:0;min-height:0;height:auto;overflow:hidden;background:#0b0d0c}.ai-lightbox-stage>img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain}.ai-lightbox-nav{position:absolute;top:50%;z-index:1;width:3rem;height:3rem;transform:translateY(-50%);font-size:2.2rem;box-shadow:0 3px 16px #00000059}.ai-lightbox-nav.previous{left:1rem}.ai-lightbox-nav.next{right:1rem}.ai-lightbox-close:hover,.ai-lightbox-nav:hover{background:#ffffff40}.ai-lightbox-thumbnails{display:flex;gap:.55rem;overflow-x:auto;padding:.75rem 1rem .9rem}.ai-lightbox-thumbnails button{position:relative;flex:0 0 88px;height:66px;min-height:0;overflow:hidden;padding:0;border:2px solid transparent;border-radius:7px;background:#2a2f2b;opacity:.62}.ai-lightbox-thumbnails button.active{border-color:var(--color-primary);opacity:1}.ai-lightbox-thumbnails img{width:100%;height:100%;object-fit:cover}.ai-lightbox-thumbnails span{position:absolute;right:.2rem;bottom:.2rem;left:.2rem;overflow:hidden;padding:.1rem .2rem;border-radius:3px;background:#000000a3;color:#fff;font-size:.62rem;text-overflow:ellipsis;white-space:nowrap}@media(max-width:760px){.ai-prompts-header{align-items:flex-start}.ai-prompt-toolbar,.ai-main-fields,.ai-prompt-grid{grid-template-columns:1fr}.ai-desktop-category-picker{display:none}.ai-mobile-category-picker{display:block}.ai-mobile-category-picker .form-group{margin-bottom:0}.ai-category-toggle,.ai-save-button{width:100%}.ai-form-actions{align-items:stretch;flex-direction:column}.ai-form-actions button{width:100%}.ai-category-form{flex-direction:column}.ai-category-form input{max-width:none}.ai-image-fields{grid-template-columns:1fr}.ai-image-arrow{margin:-.25rem auto;transform:rotate(90deg)}.ai-image-dropzone{aspect-ratio:16 / 9}.ai-multiple-previews{grid-template-columns:repeat(2,minmax(0,1fr))}.ai-comparison{height:190px}.ai-lightbox{padding:0}.ai-lightbox-panel{width:100%;height:100dvh;max-height:none;border-radius:0}.ai-lightbox-stage{height:auto;min-height:0}.ai-lightbox-nav{width:2.65rem;height:2.65rem}.ai-lightbox-nav.previous{left:.5rem}.ai-lightbox-nav.next{right:.5rem}.ai-prompt-create{padding:1rem}}.accounting-page{--accounting-ink: #253027;--accounting-soft: #eef2ec}.accounting-header,.accounting-section-heading,.accounting-records-header,.accounting-records-header>div,.accounting-row-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem}.accounting-summary{display:flex;flex-direction:column;align-items:flex-end;padding:.7rem 1rem;border-radius:10px;background:var(--accounting-soft)}.accounting-summary span{color:var(--color-text-muted);font-size:.72rem}.accounting-summary strong{color:var(--accounting-ink);font-size:1.1rem}.accounting-summary.negative{background:#f9ecea}.accounting-summary.negative strong{color:#a4493f}.accounting-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem;margin-bottom:1.25rem;padding:.35rem;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface-elevated)}.accounting-tabs a{padding:.75rem .5rem;border-radius:9px;color:var(--color-text-muted);font-weight:700;text-align:center;text-decoration:none}.accounting-tabs a:hover{background:var(--color-surface);color:var(--color-text)}.accounting-tabs a.active{background:var(--color-primary);color:#fff}.accounting-entry-form{margin-bottom:1.5rem;border-top:4px solid var(--color-primary)}.accounting-project-sites{margin-bottom:1.5rem}.accounting-project-sites-heading,.accounting-project-site-form,.accounting-project-site-links{display:flex;align-items:flex-end;gap:.75rem}.accounting-project-sites-heading{justify-content:space-between;margin-bottom:1rem}.accounting-project-sites-heading h3{margin-bottom:.2rem;color:var(--accounting-ink)}.accounting-project-site-title{display:flex;align-items:center;gap:.65rem}.accounting-project-site-title button{min-height:34px;padding:.4rem .7rem;font-size:.76rem}.accounting-project-sites-heading p,.accounting-project-overview-note{margin:0;color:var(--color-text-muted);font-size:.82rem}.accounting-project-site-form label{display:flex;flex-direction:column;gap:.35rem}.accounting-project-site-form label>span{color:var(--color-text-muted);font-size:.78rem;font-weight:600}.accounting-project-site-form input{min-width:240px}.accounting-project-site-links{align-items:center;flex-wrap:nowrap;width:100%;padding:.15rem 0 .45rem;overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth;scroll-snap-type:x proximity;scrollbar-color:var(--color-primary) transparent;scrollbar-width:thin;touch-action:pan-x;-webkit-overflow-scrolling:touch}.accounting-project-site-links::-webkit-scrollbar{height:6px}.accounting-project-site-links::-webkit-scrollbar-thumb{border-radius:999px;background:var(--color-primary)}.accounting-project-site-links::-webkit-scrollbar-track{background:transparent}.accounting-project-site-links>a,.accounting-project-site-item>a{flex:0 0 auto;padding:.55rem .8rem;border:1px solid var(--color-border);border-radius:999px;color:var(--color-text);font-size:.82rem;font-weight:700;text-decoration:none}.accounting-project-site-links>a:hover,.accounting-project-site-item>a:hover{border-color:var(--color-primary)}.accounting-project-site-links>a.active,.accounting-project-site-item>a.active{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.accounting-project-site-item,.accounting-project-site-edit{display:flex;align-items:center;gap:.35rem}.accounting-project-site-item{flex:0 0 auto;padding:.2rem .25rem .2rem .45rem;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface-elevated);transition:border-color .16s ease,background .16s ease,transform .16s ease;scroll-snap-align:start}.accounting-project-site-item>a{border:0}.accounting-project-site-edit button{min-height:32px;padding:.35rem .55rem;font-size:.72rem}.accounting-project-site-item.drag-over{border-color:var(--color-primary);background:var(--accounting-soft);transform:translateY(-2px)}.accounting-project-site-drag-handle{display:inline-flex;align-items:center;justify-content:center;width:24px;min-height:34px;border-radius:999px;color:var(--color-text-muted);font-weight:800;letter-spacing:-.18em;cursor:grab;-webkit-user-select:none;user-select:none}.accounting-project-site-drag-handle:hover,.accounting-project-site-drag-handle:focus-visible{background:var(--accounting-soft);color:var(--color-primary-dark);outline:none}.accounting-project-site-drag-handle:active{cursor:grabbing}.accounting-project-site-title-edit{margin-bottom:.35rem}.accounting-project-site-edit input{width:180px;min-height:36px}.accounting-project-overview-note{margin-top:.85rem;padding:.65rem .8rem;border-radius:8px;background:var(--accounting-soft)}.accounting-section-heading{align-items:flex-start;margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:1px solid var(--color-border)}.accounting-section-heading span{color:var(--color-primary-dark);font-size:.68rem;font-weight:800;letter-spacing:.13em}.accounting-section-heading h3{margin:.2rem 0;color:var(--accounting-ink)}.accounting-section-heading p{margin:0;color:var(--color-text-muted);font-size:.82rem}.accounting-form-grid{display:grid;grid-template-columns:minmax(145px,.8fr) minmax(240px,2fr) repeat(3,minmax(110px,.7fr)) minmax(140px,.9fr);align-items:end;gap:.85rem}.accounting-form-grid label,.accounting-filter-desktop{display:flex;flex-direction:column;gap:.35rem}.accounting-form-grid label>span,.accounting-filter-desktop>span,.accounting-form-total>span{color:var(--color-text-muted);font-size:.78rem;font-weight:600}.accounting-form-total{display:flex;flex-direction:column;justify-content:center;min-height:42px;padding:.4rem .75rem;border-radius:8px;background:var(--accounting-soft)}.accounting-form-total strong{color:var(--accounting-ink)}.accounting-message{margin:.8rem 0 0}.accounting-invoice-fields,.accounting-save-actions{display:flex;align-items:flex-end;gap:.75rem;margin-top:1rem}.accounting-invoice-toggle{display:flex;align-items:center;gap:.55rem;min-height:42px;padding:.55rem .85rem;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);cursor:pointer}.accounting-invoice-toggle input{width:18px;height:18px;accent-color:var(--color-primary)}.accounting-invoice-number{display:flex;flex:0 1 320px;flex-direction:column;gap:.35rem}.accounting-invoice-number>span{color:var(--color-text-muted);font-size:.78rem;font-weight:600}.accounting-save-actions button{min-width:150px}.accounting-income-button{background:#5e8263}.accounting-income-button:hover:not(:disabled){background:#4f7154}.accounting-expense-button{background:#b8665c}.accounting-expense-button:hover:not(:disabled){background:#a6554c}.accounting-records-header{align-items:flex-end;margin-bottom:1rem}.accounting-records-header h3{color:var(--accounting-ink)}.accounting-records-header>div:first-child{align-items:baseline}.accounting-records-header>div:first-child span{color:var(--color-text-muted);font-size:.78rem}.accounting-filters{display:grid!important;grid-template-columns:repeat(3,minmax(120px,1fr))}.accounting-date-range{display:flex;align-items:flex-end;gap:.65rem}.accounting-date-range label{display:flex;flex-direction:column;gap:.35rem}.accounting-date-range label>span{color:var(--color-text-muted);font-size:.78rem;font-weight:600}.accounting-date-range input{min-width:150px}.accounting-date-range button{min-height:42px;white-space:nowrap}.accounting-settlement{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;padding:.85rem 1rem;border-left:4px solid var(--color-primary);border-radius:9px;background:var(--accounting-soft)}.accounting-settlement>div,.accounting-settlement p{display:flex;align-items:baseline;gap:.7rem}.accounting-settlement span,.accounting-settlement small{color:var(--color-text-muted);font-size:.78rem}.accounting-settlement strong{color:var(--accounting-ink);font-size:1.15rem}.accounting-settlement p{margin:0;font-weight:700}.accounting-settlement.positive{border-left-color:#5e8263;background:#e8f2e9}.accounting-settlement.positive strong,.accounting-settlement.positive p{color:#3d6b43}.accounting-settlement.negative{border-left-color:#b8665c;background:#f9eae8}.accounting-settlement.negative strong,.accounting-settlement.negative p{color:#a4493f}.accounting-filter-mobile{display:none}.accounting-table-wrap{overflow-x:auto}.accounting-table{width:100%;border-collapse:collapse}.accounting-table th,.accounting-table td{padding:.85rem .7rem;border-bottom:1px solid var(--color-border);text-align:left;white-space:nowrap}.accounting-table th{color:var(--color-text-muted);font-size:.75rem}.accounting-table td{font-size:.86rem}.accounting-table tbody tr:hover{background:var(--color-surface)}.accounting-content-cell{min-width:180px;white-space:normal!important}.accounting-row-actions{justify-content:flex-start;gap:.4rem}.accounting-row-actions button{min-height:34px;padding:.4rem .7rem;font-size:.76rem}.accounting-type-badge{display:inline-flex;min-width:44px;justify-content:center;padding:.25rem .45rem;border-radius:999px;font-size:.72rem;font-weight:700}.accounting-type-badge.income{background:#e8f2e9;color:#3d6b43}.accounting-type-badge.expense{background:#f9eae8;color:#a4493f}.accounting-signed-amount.income{color:#47734c}.accounting-signed-amount.expense{color:#a4493f}.accounting-invoice-note{margin:0 0 1rem;padding:.7rem .85rem;border-radius:8px;background:var(--accounting-soft);color:var(--color-text-muted);font-size:.82rem}@media(max-width:1100px){.accounting-form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.accounting-content-field{grid-column:span 2}}@media(max-width:760px){.accounting-header,.accounting-section-heading,.accounting-records-header,.accounting-project-sites-heading,.accounting-project-site-form{align-items:stretch;flex-direction:column}.accounting-summary{align-items:flex-start}.accounting-tabs,.accounting-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.accounting-content-field{grid-column:1 / -1}.accounting-invoice-fields,.accounting-save-actions{align-items:stretch;flex-direction:column}.accounting-invoice-toggle,.accounting-invoice-number,.accounting-save-actions button,.accounting-project-site-form input,.accounting-project-site-form button{width:100%;max-width:none;min-width:0}.accounting-project-site-edit{width:100%}.accounting-project-site-edit input{flex:1;width:auto;min-width:0}.accounting-filters{grid-template-columns:1fr;width:100%}.accounting-date-range,.accounting-settlement,.accounting-settlement>div,.accounting-settlement p{align-items:stretch;flex-direction:column}.accounting-date-range,.accounting-date-range label,.accounting-date-range input,.accounting-date-range button{width:100%}.accounting-date-range input{min-width:0}.accounting-settlement>div,.accounting-settlement p{gap:.25rem}.accounting-filter-desktop{display:none}.accounting-filter-mobile{display:block}.accounting-filter-mobile .form-group{margin-bottom:0}.accounting-table,.accounting-table tbody,.accounting-table tr,.accounting-table td{display:block;width:100%}.accounting-table thead{display:none}.accounting-table tr{margin-bottom:.85rem;padding:.65rem .8rem;border:1px solid var(--color-border);border-radius:10px}.accounting-table td{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:.38rem 0;border:0;text-align:right;white-space:normal}.accounting-table td:before{content:attr(data-label);flex:0 0 auto;color:var(--color-text-muted);font-size:.74rem;font-weight:600}.accounting-row-actions{justify-content:flex-end}}.living-accounting-page{--living-ink: #253027;--living-soft: #eef2ec}.living-header,.living-records-heading,.living-form-actions,.living-row-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem}.living-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin-top:1.5rem;padding:.45rem;border:1px solid #d8ddd6;border-radius:14px;background:#fff}.living-tabs a{padding:.9rem 1rem;border-radius:10px;color:#596359;font-weight:600;text-align:center;text-decoration:none}.living-tabs a:hover{background:#f4f6f3}.living-tabs a.active{color:#fff;background:#96a68f}.living-section-heading span{display:block;color:#687268;font-size:.78rem;letter-spacing:.08em}.living-entry-card,.living-report-card,.living-records-card{margin-top:1.5rem;padding:2rem}.living-section-heading{margin-bottom:1.5rem;padding-bottom:1.25rem;border-bottom:1px solid #d8ddd6}.living-section-heading span{color:#60705e;font-weight:700}.living-section-heading h3,.living-report-heading h3,.living-records-heading h3{margin:.35rem 0 0;color:var(--living-ink)}.living-form-grid{display:grid;grid-template-columns:180px minmax(180px,.8fr) minmax(260px,1.5fr) 180px minmax(180px,.8fr);gap:1rem;align-items:end}.living-form-grid label{display:grid;gap:.5rem;min-width:0}.living-creatable-picker,.living-creatable-desktop{min-width:0}.living-creatable-mobile{display:none}.living-form-grid label>span{color:#596359;font-size:.9rem}.living-form-grid input{width:100%;min-width:0;max-width:100%;box-sizing:border-box}.living-date-input{position:relative;display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;min-width:0;min-height:44px;padding:.625rem .75rem;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);background:var(--color-surface-elevated);font-size:16px;box-sizing:border-box}.living-date-input:hover{background:#edeef0}.living-date-icon{flex-shrink:0;color:var(--color-text-muted)}.living-date-input input[type=date]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;min-width:0;margin:0;padding:0;border:0;opacity:0;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.living-message{margin:1rem 0 0}.living-form-actions{justify-content:flex-start;margin-top:1.25rem}.living-form-actions button{min-width:180px}.living-report-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.living-report-heading>div>span{color:#60705e;font-size:.78rem;font-weight:700;letter-spacing:.08em}.living-report-heading label{display:grid;gap:.45rem;min-width:190px}.living-report-heading label>span{color:#596359;font-size:.9rem}.living-report-summary{display:grid;grid-template-columns:1fr auto;gap:.35rem 1rem;padding:1.25rem 1.4rem;border-radius:14px;background:var(--living-soft)}.living-report-summary>span,.living-report-summary small{color:#687268}.living-report-summary strong{grid-row:1 / 3;grid-column:2;align-self:center;color:var(--living-ink);font-size:1.7rem}.living-report-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr);gap:1.25rem;margin-top:1.25rem}.living-report-section{padding:1.25rem;border:1px solid #dfe4dc;border-radius:14px}.living-report-section h4{margin:0 0 1rem;color:var(--living-ink)}.living-category-report,.living-payer-report{display:grid;gap:1rem}.living-report-row-title,.living-payer-report>div{display:flex;align-items:center;justify-content:space-between;gap:1rem}.living-report-row-title span,.living-category-report-row small,.living-payer-report span{color:#6d776d}.living-report-bar{height:10px;margin:.45rem 0 .35rem;overflow:hidden;border-radius:999px;background:#e5e9e3}.living-report-bar span{display:block;height:100%;min-width:3px;border-radius:inherit;background:#96a68f}.living-payer-report>div{padding:1rem;border-radius:10px;background:#f6f8f5}.living-records-heading{margin-bottom:1.25rem}.living-records-heading span{color:#727b72}.living-table-wrap{overflow-x:auto}.living-table{width:100%;border-collapse:collapse}.living-table th,.living-table td{padding:.95rem .8rem;border-bottom:1px solid #e0e4df;text-align:left;vertical-align:middle}.living-table th{color:#667066;background:#f6f8f5;font-size:.86rem}.living-table tbody tr:hover{background:#fafbfa}.living-content-cell{min-width:220px}.living-category-badge{display:inline-block;padding:.35rem .7rem;border-radius:999px;color:#5f705c;background:var(--living-soft);white-space:nowrap}.living-row-actions{justify-content:flex-start;white-space:nowrap}.living-row-actions button{padding:.55rem .85rem}@media(max-width:1200px){.living-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.living-content-field{grid-column:1 / -1}}@media(max-width:768px){.living-header{align-items:stretch;flex-direction:column}.living-entry-card,.living-report-card,.living-records-card{margin-top:1rem;padding:1.25rem}.living-tabs{margin-top:1rem}.living-form-grid{grid-template-columns:1fr}.living-form-grid .living-creatable-desktop{display:none}.living-creatable-mobile{display:grid;gap:.65rem}.living-custom-toggle{justify-self:start;min-height:36px;padding:.4rem .2rem;border:0;color:#657460;background:transparent;font-size:.9rem}.living-custom-input{display:grid;gap:.45rem;padding:.8rem;border-radius:10px;background:var(--living-soft)}.living-custom-input span{color:#596359;font-size:.86rem}.living-custom-input input{width:100%;font-size:16px}.living-content-field{grid-column:auto}.living-form-actions,.living-form-actions button{width:100%}.living-form-actions,.living-report-heading{align-items:stretch;flex-direction:column}.living-report-heading label{min-width:0}.living-report-grid,.living-report-summary{grid-template-columns:1fr}.living-report-summary strong{grid-row:auto;grid-column:auto}.living-table,.living-table tbody,.living-table tr,.living-table td{display:block;width:100%}.living-table thead{display:none}.living-table tr{margin-bottom:1rem;padding:.5rem .9rem;border:1px solid #dfe4dc;border-radius:12px}.living-table td{display:grid;grid-template-columns:82px minmax(0,1fr);gap:.75rem;padding:.7rem 0}.living-table td:before{content:attr(data-label);color:#758075;font-size:.86rem}.living-row-actions{display:grid;grid-template-columns:1fr 1fr}}.cabinet-cutting-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,180px));gap:.35rem;justify-content:start;width:100%;margin-top:-.5rem;padding:.3rem;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface-elevated);box-shadow:var(--shadow-sm)}.cabinet-cutting-tabs a{padding:.65rem 1rem;border-radius:9px;color:var(--color-text-muted);font-size:.9rem;font-weight:700;text-align:center;text-decoration:none}.cabinet-cutting-tabs a:hover{background:var(--color-surface);color:var(--color-text)}.cabinet-cutting-tabs a.active{background:var(--color-primary);color:#fff}@media(max-width:600px){.cabinet-cutting-tabs{grid-template-columns:repeat(5,minmax(0,1fr))}.cabinet-cutting-tabs a{padding-inline:.45rem;font-size:.78rem}}.cabinet-cutting-page{display:grid;gap:1.25rem}.cabinet-cutting-page>.quote-management-tabs{margin-bottom:0;justify-self:start}.cabinet-back-link,.cabinet-editor-breadcrumbs a{color:var(--color-primary-dark);font-weight:700;text-decoration:none}.cabinet-back-link{justify-self:start}.cabinet-editor-breadcrumbs{display:flex;align-items:center;gap:.45rem;min-width:0;color:var(--color-text-muted);font-size:.88rem}.cabinet-editor-breadcrumbs strong{overflow:hidden;color:var(--color-text);text-overflow:ellipsis;white-space:nowrap}.cabinet-list-create{display:flex;align-items:end;justify-content:space-between;gap:1.5rem}.cabinet-list-create h3,.cabinet-list-create p{margin:0}.cabinet-project-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem}.cabinet-project-heading>div{min-width:0}.cabinet-overhead-panel{display:grid;grid-template-columns:minmax(260px,1fr) minmax(520px,1.25fr);align-items:end;gap:1rem 2rem;padding:1.25rem 1.5rem}.cabinet-overhead-copy h3,.cabinet-overhead-copy p{margin:0}.cabinet-overhead-copy p{margin-top:.35rem;color:var(--color-text-muted);font-size:.86rem}.cabinet-overhead-fields{display:grid;grid-template-columns:repeat(2,minmax(140px,1fr)) auto;align-items:end;gap:.75rem}.cabinet-overhead-fields label{display:grid;gap:.35rem}.cabinet-overhead-fields input,.cabinet-overhead-fields button{min-height:46px}.cabinet-overhead-message{grid-column:1 / -1;margin:0}.cabinet-list-create p{margin-top:.3rem;color:var(--color-text-muted);font-size:.86rem}.cabinet-list-create-controls{display:grid;grid-template-columns:minmax(240px,1fr) auto;flex:0 1 520px;gap:.65rem}.cabinet-list-create-controls input{width:100%;min-height:46px}.cabinet-list-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.cabinet-list-card{display:grid;gap:.8rem;padding:.85rem}.cabinet-list-open{display:grid;gap:.4rem;min-height:130px;padding:1.1rem;background:#f4f6f1;color:var(--color-text);text-align:left}.cabinet-list-open:hover:not(:disabled){background:#e9eee6}.cabinet-list-open span,.cabinet-list-open small{color:var(--color-text-muted)}.cabinet-list-open strong{font-size:1.15rem}.cabinet-list-empty{padding:4rem 1rem;color:var(--color-text-muted);text-align:center}.cabinet-record-list{display:grid;gap:.75rem}.cabinet-record-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface)}.cabinet-record-summary{display:grid;grid-template-columns:110px minmax(0,1fr);align-items:center;flex:1 1 auto;min-width:0}.cabinet-record-summary span{padding-right:1rem;color:var(--color-text-muted)}.cabinet-record-summary strong{min-width:0;padding-left:1rem;border-left:1px solid var(--color-border);overflow-wrap:anywhere;font-size:1.05rem}.cabinet-record-dimensions{display:grid;grid-template-columns:105px minmax(0,1fr);align-items:center;flex:0 0 300px;gap:.5rem;white-space:nowrap}.cabinet-record-dimensions span{color:var(--color-text-muted)}.cabinet-record-dimensions strong{font-size:1rem}.cabinet-record-pricing{display:grid;grid-template-columns:repeat(2,185px);align-items:center;flex:0 0 370px;gap:0;margin-left:auto;white-space:nowrap}.cabinet-record-pricing>div{display:grid;grid-template-columns:76px minmax(0,1fr);align-items:center;gap:.5rem}.cabinet-record-pricing span{color:var(--color-text-muted)}.cabinet-record-pricing strong{font-size:1.05rem}.cabinet-record-actions{display:flex;flex:0 0 auto;gap:.65rem}.cabinet-saved-strip{display:flex;align-items:center;gap:1rem;min-width:0;padding:.65rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface)}.cabinet-project-panel{display:grid;gap:.75rem;padding:1rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface)}.cabinet-project-create{display:flex;align-items:end;justify-content:space-between;gap:1rem}.cabinet-project-create>div:first-child{display:grid;gap:.25rem}.cabinet-project-create span{color:var(--color-text-muted);font-size:.82rem}.cabinet-project-create>div:last-child{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:.6rem}.cabinet-project-create input{width:100%;min-height:42px}.cabinet-project-list{display:flex;gap:.55rem;min-width:0;overflow-x:auto;padding-top:.75rem;border-top:1px solid var(--color-border);scrollbar-width:thin}.cabinet-project-required{padding:1rem 1.1rem;border:1px solid #d9dfd5;border-radius:var(--radius);background:#f1f5ef;color:var(--color-primary-dark)}.cabinet-saved-strip-title{display:flex;flex:0 0 auto;align-items:baseline;gap:.45rem;padding-right:1rem;border-right:1px solid var(--color-border);white-space:nowrap}.cabinet-saved-strip-title span,.cabinet-saved-empty{color:var(--color-text-muted);font-size:.8rem}.cabinet-saved-list{display:flex;flex:1;align-items:center;gap:.55rem;min-width:0;overflow-x:auto;scrollbar-width:thin}.cabinet-new-record,.cabinet-saved-item{flex:0 0 auto}.cabinet-new-record{min-height:38px;border:1px solid var(--color-border);background:#fff;color:var(--color-text);white-space:nowrap}.cabinet-new-record.active,.cabinet-saved-item.active{border-color:var(--color-primary);background:#eef2eb}.cabinet-saved-item{display:flex;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius);background:#fff}.cabinet-saved-item button{min-height:38px;border-radius:0;background:transparent;color:var(--color-text);white-space:nowrap}.cabinet-saved-item button:hover:not(:disabled){background:#eef2eb}.cabinet-saved-item .cabinet-saved-delete{padding-inline:.7rem;border-left:1px solid var(--color-border);color:var(--color-danger);font-size:1.1rem}.cabinet-page-header{display:flex;align-items:end;justify-content:space-between;gap:1.5rem}.cabinet-save-controls{display:grid;flex:0 1 470px;gap:.4rem}.cabinet-save-controls>label,.cabinet-save-controls>span{color:var(--color-text-muted);font-size:.8rem}.cabinet-save-controls>div{display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:.6rem}.cabinet-save-controls input{width:100%;min-height:44px}.cabinet-input-card,.cabinet-result-card{padding:1.75rem}.cabinet-section-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem;padding-bottom:1.1rem;border-bottom:1px solid var(--color-border)}.cabinet-section-heading span{color:var(--color-primary-dark);font-size:.75rem;font-weight:800;letter-spacing:.12em}.cabinet-section-heading h3,.cabinet-section-heading p{margin:0}.cabinet-section-heading h3{margin-top:.3rem;font-size:1.25rem}.cabinet-section-heading p{color:var(--color-text-muted);font-size:.9rem}.cabinet-size-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem;margin-top:1.35rem}.cabinet-size-grid label{display:grid;gap:.5rem;color:var(--color-text-muted);font-size:.9rem}.cabinet-size-grid label>div{display:flex;align-items:center;overflow:hidden;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface)}.cabinet-size-grid input,.cabinet-size-grid select{width:100%;min-height:50px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface);color:var(--color-text);font:inherit}.cabinet-size-grid label>div input{min-width:0;border:0;border-radius:0}.cabinet-size-grid label>div input:focus{outline:0}.cabinet-size-grid label>div:focus-within,.cabinet-size-grid select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #96a68f2e;outline:0}.cabinet-size-grid b{padding:0 .9rem;color:var(--color-text-muted);font-size:.85rem}.cabinet-load-error{margin:1rem 0 0}.cabinet-loose-board-section{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--color-border)}.cabinet-loose-board-heading{position:sticky;top:5.75rem;z-index:80;display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:-.75rem;padding:.75rem;border:1px solid rgba(218,221,224,.9);border-radius:12px;background:#fffffff7;box-shadow:0 8px 20px #23272f14;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.cabinet-loose-board-heading h4,.cabinet-loose-board-heading p{margin:0}.cabinet-loose-board-heading h4{font-size:1.05rem}.cabinet-loose-board-heading p{margin-top:.25rem;color:var(--color-text-muted);font-size:.85rem}.cabinet-loose-board-heading button{flex:0 0 auto}.cabinet-extra-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.65rem}.cabinet-extra-group{margin-top:1rem}.cabinet-extra-group h5{margin:0 0 .65rem;color:var(--color-primary-dark);font-size:.9rem}.cabinet-loose-board-list{display:grid;gap:.85rem}.cabinet-loose-board-row{display:grid;grid-template-columns:auto 1.25fr repeat(4,minmax(0,1fr)) auto;gap:.7rem;align-items:end;padding:1rem;border:1px solid var(--color-border);border-radius:12px;background:#f8faf7}.cabinet-loose-board-index{align-self:center;color:var(--color-primary-dark);font-size:.8rem;font-weight:800;white-space:nowrap}.cabinet-loose-board-row label{display:grid;gap:.4rem;min-width:0;color:var(--color-text-muted);font-size:.82rem}.cabinet-loose-board-row label>div{display:flex;align-items:center;overflow:hidden;border:1px solid var(--color-border);border-radius:9px;background:#fff}.cabinet-loose-board-row input,.cabinet-loose-board-row select{width:100%;min-width:0;min-height:44px;border:1px solid var(--color-border);border-radius:9px;background:#fff;color:var(--color-text);font:inherit}.cabinet-loose-board-row label>div input{border:0;border-radius:0}.cabinet-loose-board-row label>div b{padding:0 .65rem;font-size:.75rem}.cabinet-loose-board-delete{min-height:44px}.cabinet-row-actions{display:flex;gap:.5rem}.cabinet-row-actions button{min-height:44px;white-space:nowrap}.cabinet-extra-list{display:grid;gap:.85rem}.cabinet-extra-row{display:grid;grid-template-columns:auto minmax(220px,2fr) minmax(110px,.7fr) minmax(90px,.55fr) minmax(130px,.8fr) auto;gap:.7rem;align-items:end;padding:1rem;border:1px solid var(--color-border);border-radius:12px;background:#f8faf7}.cabinet-extra-row label,.cabinet-extra-value{display:grid;gap:.4rem;min-width:0;color:var(--color-text-muted);font-size:.82rem}.cabinet-extra-row input,.cabinet-extra-row select,.cabinet-extra-value strong{width:100%;min-width:0;min-height:44px;border:1px solid var(--color-border);border-radius:9px;background:#fff;color:var(--color-text);font:inherit}.cabinet-extra-value strong{display:flex;align-items:center;padding:0 .8rem}.cabinet-table-wrap{margin-top:1.25rem;overflow-x:auto}.cabinet-result-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.cabinet-result-table th,.cabinet-result-table td{padding:1rem;border-bottom:1px solid var(--color-border);text-align:right}.cabinet-result-table th:first-child,.cabinet-result-table td:first-child{text-align:left}.cabinet-result-table thead th{background:#eef2eb;color:var(--color-text-muted);font-size:.86rem}.cabinet-result-table tbody td strong{color:var(--color-text)}.cabinet-result-table tbody td small{display:block;margin-top:.3rem;color:var(--color-text-muted);font-size:.78rem;font-weight:400}.cabinet-result-table tfoot th,.cabinet-result-table tfoot td{padding-top:1.2rem;border-bottom:0;background:#f4f6f1;font-size:1.05rem}.cabinet-result-table tfoot td strong{color:var(--color-primary-dark);font-size:1.25rem}.cabinet-result-table tfoot .cabinet-price-per-chi-row th,.cabinet-result-table tfoot .cabinet-price-per-chi-row td{padding-top:.85rem;border-top:1px solid var(--color-border);background:#eef2eb}.cabinet-result-table tfoot .cabinet-price-per-chi-row td strong{font-size:1.1rem}.cabinet-empty-state{padding:4rem 1rem;color:var(--color-text-muted);text-align:center}.cabinet-empty-state p{margin:.45rem 0 0}.cabinet-formula-note{margin-top:1.2rem;padding:1rem 1.1rem;border-radius:10px;background:#f4f6f1;color:var(--color-text-muted)}.cabinet-formula-note p{margin:.35rem 0 0;line-height:1.65}@media(max-width:900px){.cabinet-list-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cabinet-list-create{align-items:stretch;flex-direction:column}.cabinet-list-create-controls{flex-basis:auto;width:100%}.cabinet-project-heading,.cabinet-overhead-panel{align-items:stretch;grid-template-columns:1fr}.cabinet-project-heading{flex-direction:column}.cabinet-project-heading>button{align-self:start}.cabinet-record-row{flex-wrap:wrap}.cabinet-record-pricing{margin-left:0}.cabinet-record-dimensions{flex-basis:300px}.cabinet-project-create{align-items:stretch;flex-direction:column}.cabinet-project-create>div:last-child{width:100%}.cabinet-page-header{align-items:stretch;flex-direction:column}.cabinet-save-controls{flex-basis:auto}.cabinet-loose-board-heading{top:4rem}.cabinet-size-grid,.cabinet-loose-board-row,.cabinet-extra-row{grid-template-columns:repeat(2,minmax(0,1fr))}.cabinet-loose-board-index,.cabinet-loose-board-delete,.cabinet-extra-row>.cabinet-loose-board-index,.cabinet-extra-row>.cabinet-loose-board-delete,.cabinet-row-actions{grid-column:1 / -1}}@media(max-width:600px){.cabinet-cutting-page>.quote-management-tabs{justify-self:stretch}.cabinet-list-grid,.cabinet-list-create-controls,.cabinet-overhead-fields{grid-template-columns:1fr}.cabinet-project-heading>button{align-self:stretch}.cabinet-saved-strip{align-items:stretch;flex-direction:column;gap:.6rem}.cabinet-record-row{align-items:stretch;flex-direction:column}.cabinet-record-summary{grid-template-columns:1fr;gap:.25rem}.cabinet-record-summary span{padding-right:0;font-size:.82rem}.cabinet-record-summary strong{padding-left:0;border-left:0}.cabinet-record-pricing{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));flex-basis:auto;width:100%;margin-left:0;padding-top:.75rem;border-top:1px solid var(--color-border)}.cabinet-record-dimensions{grid-template-columns:1fr;flex-basis:auto;width:100%;padding-top:.75rem;border-top:1px solid var(--color-border)}.cabinet-record-pricing>div{align-items:start;grid-template-columns:1fr;gap:.2rem}.cabinet-record-actions{display:grid;grid-template-columns:minmax(0,1fr) auto}.cabinet-project-create>div:last-child{grid-template-columns:1fr}.cabinet-saved-strip-title{padding-right:0;border-right:0}.cabinet-save-controls>div{grid-template-columns:1fr}.cabinet-input-card,.cabinet-result-card{padding:1.25rem}.cabinet-section-heading{align-items:start;flex-direction:column;gap:.35rem}.cabinet-size-grid{grid-template-columns:1fr}.cabinet-loose-board-heading{align-items:stretch;flex-direction:column}.cabinet-loose-board-heading button,.cabinet-extra-actions{width:100%}.cabinet-extra-actions{display:grid;grid-template-columns:1fr}.cabinet-loose-board-row,.cabinet-extra-row{grid-template-columns:1fr}.cabinet-loose-board-index,.cabinet-loose-board-delete{grid-column:auto}.cabinet-row-actions{display:grid;grid-template-columns:1fr 1fr;grid-column:auto}.cabinet-result-table,.cabinet-result-table tbody,.cabinet-result-table tr,.cabinet-result-table td{display:block;width:100%}.cabinet-result-table thead{display:none}.cabinet-result-table tbody{display:grid;gap:.8rem}.cabinet-result-table tbody tr{overflow:hidden;border:1px solid var(--color-border);border-radius:12px}.cabinet-result-table tbody td{display:grid;grid-template-columns:78px minmax(0,1fr);gap:.75rem;padding:.7rem .9rem;text-align:right}.cabinet-result-table tbody td:before{content:attr(data-label);color:var(--color-text-muted);text-align:left}.cabinet-result-table tbody td:first-child{text-align:right}.cabinet-result-table tfoot{display:table;width:100%;margin-top:1rem}}.cabinet-prices-page{display:grid;gap:1.25rem}.cabinet-prices-page>.quote-management-tabs{margin-bottom:0;justify-self:start}.cabinet-prices-header{display:flex;align-items:end;justify-content:space-between;gap:1rem}.cabinet-price-card{padding:1.5rem}.cabinet-matrix-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1rem}.cabinet-matrix-heading h3,.cabinet-matrix-heading p{margin:0}.cabinet-matrix-heading p{margin-top:.25rem;color:var(--color-text-muted);font-size:.85rem}.cabinet-matrix-actions{display:flex;flex:0 0 auto;gap:.65rem}.cabinet-matrix-actions button{min-width:108px;min-height:44px}.cabinet-matrix-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:12px}.cabinet-price-matrix{min-width:900px;table-layout:fixed;font-variant-numeric:tabular-nums}.cabinet-price-matrix th,.cabinet-price-matrix td{padding:.65rem;border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);text-align:center}.cabinet-price-matrix tr:last-child th,.cabinet-price-matrix tr:last-child td{border-bottom:0}.cabinet-price-matrix th:last-child,.cabinet-price-matrix td:last-child{border-right:0}.cabinet-price-matrix thead th{background:#e9eee6;color:var(--color-text);font-weight:800}.cabinet-price-matrix tbody th{width:120px;background:#f4f6f1;color:var(--color-text);white-space:nowrap}.cabinet-price-matrix tbody td{height:64px;color:var(--color-text);font-weight:700}.cabinet-price-matrix input{width:100%;min-width:76px;min-height:42px;padding:.45rem;border:1px solid var(--color-primary);border-radius:8px;background:#fff;color:var(--color-text);font:inherit;font-weight:700;text-align:center}.cabinet-price-matrix input:focus{outline:2px solid color-mix(in srgb,var(--color-primary) 25%,transparent);outline-offset:1px}.cabinet-price-empty{color:var(--color-text-muted);font-weight:400}.cabinet-create-grade{margin-top:1.25rem;padding-top:1.1rem;border-top:1px solid var(--color-border)}.cabinet-create-grade-toggle{min-height:44px}.cabinet-create-grade-form{margin-top:1rem;padding:1.15rem;border:1px solid var(--color-border);border-radius:12px;background:#fbfcfa}.cabinet-create-grade-form label{display:grid;gap:.45rem;color:var(--color-text-muted);font-size:.85rem}.cabinet-create-grade-form input{width:100%;min-width:0;min-height:46px;padding:.55rem .7rem;border:1px solid var(--color-border);border-radius:9px;background:#fff;font:inherit}.cabinet-grade-name-field{max-width:420px}.cabinet-grade-price-fields{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:.85rem;margin-top:1rem}.cabinet-create-grade-footer{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-top:1rem}.cabinet-create-grade-footer p{margin:0;color:var(--color-text-muted);font-size:.85rem}.cabinet-create-grade-footer button{min-width:120px;min-height:46px}.cabinet-price-create{margin-bottom:1.4rem;padding-bottom:1.4rem;border-bottom:1px solid var(--color-border)}.cabinet-price-create h3{margin:0 0 1rem;font-size:1rem}.cabinet-price-create-fields{display:grid;grid-template-columns:minmax(260px,1fr) 150px 230px 110px;gap:.75rem;align-items:end}.cabinet-price-create-fields label{display:grid;gap:.45rem;color:var(--color-text-muted);font-size:.85rem}.cabinet-price-create-fields input{width:100%;min-width:0;min-height:48px;border:1px solid var(--color-border);border-radius:9px;background:#fff;font:inherit}.cabinet-price-create-fields button{min-height:48px}.cabinet-price-list{display:grid;gap:.75rem;font-variant-numeric:tabular-nums}.cabinet-price-row{display:grid;grid-template-columns:minmax(280px,1fr) 150px 250px auto;align-items:center;min-height:72px;padding:.75rem .9rem;border:1px solid var(--color-border);border-radius:11px;background:#fbfcfa}.cabinet-price-row.is-editing{border-color:var(--color-primary);background:#f5f8f3}.cabinet-price-row.drag-over{border-color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-primary)}.cabinet-price-name,.cabinet-price-unit,.cabinet-price-value{display:flex;align-items:center;gap:.55rem;min-height:40px;padding:0 1rem}.cabinet-price-name{padding-left:0}.cabinet-price-unit,.cabinet-price-value{border-left:1px solid var(--color-border)}.cabinet-price-row span{color:var(--color-text-muted);white-space:nowrap}.cabinet-price-row strong{color:var(--color-text)}.cabinet-price-name input,.cabinet-price-unit input,.cabinet-price-value input{width:100%;min-width:0;min-height:42px;padding:.45rem .65rem;border:1px solid var(--color-border);border-radius:8px;background:#fff;font:inherit;font-weight:700}.cabinet-price-value input{width:130px}.cabinet-price-row-actions{display:flex;justify-content:flex-end;gap:.55rem}.cabinet-price-row-actions button{min-width:62px}.cabinet-price-row-actions .cabinet-price-drag-handle{min-width:42px;padding-inline:.45rem;color:var(--color-text-muted);cursor:grab;font-size:1rem;letter-spacing:-.2rem;touch-action:none;-webkit-user-select:none;user-select:none}.cabinet-price-row-actions .cabinet-price-drag-handle:active{cursor:grabbing}.cabinet-price-state{margin:0;padding:3rem 1rem;color:var(--color-text-muted);text-align:center}@media(max-width:1000px){.cabinet-price-create-fields{grid-template-columns:minmax(220px,1fr) 120px 180px 100px}.cabinet-price-row{grid-template-columns:minmax(220px,1fr) 120px 210px auto}}@media(max-width:900px){.cabinet-grade-price-fields{grid-template-columns:repeat(2,minmax(130px,1fr))}}@media(max-width:600px){.cabinet-prices-page>.quote-management-tabs{justify-self:stretch}.cabinet-prices-header,.cabinet-matrix-heading{align-items:stretch;flex-direction:column}.cabinet-price-card{padding:.8rem}.cabinet-matrix-actions button{flex:1}.cabinet-create-grade-toggle{width:100%}.cabinet-grade-price-fields{grid-template-columns:1fr 1fr}.cabinet-create-grade-footer{align-items:stretch;flex-direction:column}.cabinet-create-grade-footer button{width:100%}.cabinet-price-create-fields{grid-template-columns:1fr}.cabinet-price-row{grid-template-columns:1fr 1fr;gap:0;padding:.85rem}.cabinet-price-name{grid-column:1 / -1;padding:0 0 .7rem;border-bottom:1px solid var(--color-border)}.cabinet-price-unit,.cabinet-price-value{padding:.7rem 0;border-left:0}.cabinet-price-value{justify-content:flex-end}.cabinet-price-row-actions{grid-column:1 / -1}.cabinet-price-row-actions button{flex:1}}.cabinet-quote-page{display:grid;gap:18px}.cabinet-quote-toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:18px}.cabinet-quote-toolbar h2{margin:0 0 6px}.cabinet-quote-toolbar p{margin:0;color:#657064}.cabinet-quote-toolbar p.customized{color:#9c5a4f}.cabinet-quote-toolbar-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.cabinet-quote-editor{padding:28px}.cabinet-quote-metadata{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:24px}.cabinet-quote-metadata label{display:grid;gap:7px;color:#667085}.cabinet-quote-metadata strong{min-height:45px;padding:11px 12px;color:#101828;border-bottom:1px solid #d6dbe0}.cabinet-quote-section-heading{padding:12px 14px;background:#e7ece3;border:1px solid #d4dbd0;text-align:center}.cabinet-quote-section-heading input{width:100%}.cabinet-quote-table-wrap{overflow-x:auto}.cabinet-quote-table{width:100%;min-width:980px;border-collapse:collapse;table-layout:fixed}.cabinet-quote-table .index{width:7%}.cabinet-quote-table .content{width:24%}.cabinet-quote-table .quantity,.cabinet-quote-table .unit{width:5%}.cabinet-quote-table .price{width:10%}.cabinet-quote-table .total{width:11%}.cabinet-quote-table .note{width:38%}.cabinet-quote-table th,.cabinet-quote-table td{padding:12px 10px;border:1px solid #d6dbe0;vertical-align:top;text-align:left}.cabinet-quote-table thead th{background:#f3f5f1;white-space:nowrap}.cabinet-quote-table th:first-child,.cabinet-quote-table td:first-child{text-align:center}.cabinet-quote-table th:nth-child(3),.cabinet-quote-table th:nth-child(4),.cabinet-quote-table th:nth-child(5),.cabinet-quote-table th:nth-child(6),.cabinet-quote-table td:nth-child(3),.cabinet-quote-table td:nth-child(4),.cabinet-quote-table td:nth-child(5),.cabinet-quote-table td:nth-child(6){text-align:center}.cabinet-quote-table input,.cabinet-quote-table textarea{width:100%;min-width:80px}.cabinet-quote-table textarea,.cabinet-quote-copy textarea{resize:none;overflow:hidden;min-height:44px;line-height:1.55}.cabinet-quote-note{white-space:pre-wrap;min-width:180px}.cabinet-quote-add{margin-top:14px}.cabinet-quote-summary{width:min(100%,480px);margin:24px 0 24px auto}.cabinet-quote-summary p{display:grid;grid-template-columns:1fr 1fr;align-items:center;margin:0;padding:12px 16px;border:1px solid #d6dbe0;border-bottom:0}.cabinet-quote-summary p span,.cabinet-quote-summary p strong{text-align:center}.cabinet-quote-summary .grand{border-bottom:1px solid #d6dbe0;background:#fff2cc;font-size:1.08rem}.cabinet-quote-summary input{width:75px;padding:7px}.cabinet-quote-copy{display:grid;gap:12px;padding-top:20px;border-top:1px solid #d6dbe0}.cabinet-quote-copy-row{display:grid;grid-template-columns:120px minmax(0,1fr);align-items:start;gap:8px}.cabinet-quote-copy-row>strong{white-space:nowrap}.cabinet-quote-copy p,.cabinet-quote-copy ol{margin:0;white-space:pre-wrap;line-height:1.65}.cabinet-quote-copy ol{padding-left:24px}.cabinet-quote-copy li{padding-left:2px;margin:0 0 4px}.cabinet-quote-notice-edit{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:10px}.cabinet-quote-export-host{position:fixed;left:-20000px;top:0;width:1120px;pointer-events:none}.cabinet-quote-export-sheet{box-sizing:border-box;width:1120px;padding:34px 42px;background:#fff;color:#111;font-family:Arial,Noto Sans TC,sans-serif;font-size:14px}.cabinet-quote-export-header h1,.cabinet-quote-export-header h2{text-align:center;margin:0 0 12px}.cabinet-quote-export-header div{display:flex;justify-content:space-between;margin-bottom:12px}.cabinet-quote-export-details{display:grid;grid-template-columns:62% 38%;gap:0;margin:16px 0}.cabinet-quote-export-details p{margin:8px 0;min-height:22px}.cabinet-quote-export-title{text-align:center;padding:8px;background:#e7ece3;border:1px solid #80906f;border-bottom:0;font-weight:700}.cabinet-quote-export-table{width:100%;border-collapse:collapse;table-layout:fixed}.cabinet-quote-export-table th,.cabinet-quote-export-table td{border:1px solid #80906f;padding:9px 7px;vertical-align:top;white-space:pre-wrap;overflow-wrap:anywhere}.cabinet-quote-export-table thead th{background:#e7ece3}.cabinet-quote-export-table .index{width:7%}.cabinet-quote-export-table .content{width:24%}.cabinet-quote-export-table .quantity,.cabinet-quote-export-table .unit{width:5%}.cabinet-quote-export-table .price{width:10%}.cabinet-quote-export-table .total{width:11%}.cabinet-quote-export-table .note{width:38%}.cabinet-quote-export-table th:nth-child(3),.cabinet-quote-export-table th:nth-child(4),.cabinet-quote-export-table th:nth-child(5),.cabinet-quote-export-table th:nth-child(6),.cabinet-quote-export-table td:nth-child(1),.cabinet-quote-export-table td:nth-child(3),.cabinet-quote-export-table td:nth-child(4),.cabinet-quote-export-table td:nth-child(5),.cabinet-quote-export-table td:nth-child(6){text-align:center}.cabinet-quote-export-table .summary th,.cabinet-quote-export-table .summary td:nth-last-child(2){text-align:center}.cabinet-quote-export-table .grand th,.cabinet-quote-export-table .grand td:nth-last-child(2){background:#fff2cc;font-weight:700}.cabinet-quote-export-copy{line-height:1.65}.cabinet-quote-export-copy>p,.cabinet-quote-export-copy>div{display:grid;grid-template-columns:105px 1fr;margin:14px 0}.cabinet-quote-export-copy ol{margin:0;padding-left:22px}.cabinet-quote-export-copy .signature{display:block;min-height:80px}@media(max-width:900px){.cabinet-quote-toolbar{align-items:stretch;flex-direction:column}.cabinet-quote-toolbar-actions{justify-content:flex-start}.cabinet-quote-metadata{grid-template-columns:1fr}.cabinet-quote-editor{padding:18px}.cabinet-quote-toolbar-actions button{flex:1 1 140px}.cabinet-quote-summary{width:100%}}:root{color-scheme:light;--color-bg: #f3f4f6;--color-surface: #ffffff;--color-surface-elevated: #f8f8f9;--color-border: #d9dce1;--color-text: #26282b;--color-text-muted: #6b7078;--color-primary: #96a68f;--color-primary-hover: #87967f;--color-danger: #c0665f;--color-danger-hover: #aa5750;--color-success: #4f7658;--color-warning-surface: #fff4cf;--color-warning-text: #765f16;--color-success-surface: #e6f2e8;--color-success-text: #406047;--color-danger-surface: #f9e8e6;--color-danger-text: #914d47;--color-nav-bg: #24282d;--color-header-bg: #96a68f;--color-header-border: #87967f;--color-nav-surface: #34393f;--color-nav-border: #41474e;--color-nav-text: #f3f4f6;--color-nav-text-muted: #aeb5be;--radius: 8px;--shadow: 0 8px 24px rgba(35, 39, 47, .08)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft JhengHei,sans-serif;background:var(--color-bg);color:var(--color-text);line-height:1.5;min-height:100vh}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer;border:none;border-radius:var(--radius);padding:.5rem 1rem;background:var(--color-primary);color:#fff;transition:background .15s}button:hover:not(:disabled){background:var(--color-primary-hover)}button:disabled{opacity:.6;cursor:not-allowed}button.btn-secondary{background:var(--color-surface-elevated);color:var(--color-text);border:1px solid var(--color-border)}button.btn-secondary:hover:not(:disabled){background:#edeef0}button.btn-danger{background:var(--color-danger)}button.btn-danger:hover:not(:disabled){background:var(--color-danger-hover)}input,select{border:1px solid var(--color-border);border-radius:var(--radius);padding:.5rem .75rem;background:var(--color-surface-elevated);color:var(--color-text);width:100%}input::placeholder{color:var(--color-text-muted)}input:focus,select:focus{outline:2px solid var(--color-primary);outline-offset:0;border-color:var(--color-primary)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.5rem}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.75rem 1rem;border-bottom:1px solid var(--color-border)}th{font-weight:600;color:var(--color-text-muted);font-size:.875rem;background:#eef0f2}.error-msg{color:var(--color-danger);font-size:.875rem;margin-top:.5rem}.success-msg{color:var(--color-success);font-size:.875rem;margin-top:.5rem}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.375rem;font-size:.875rem;font-weight:500;text-align:left}.form-row{display:flex;gap:.75rem;align-items:flex-end;flex-wrap:wrap}.form-row .form-group{flex:1;min-width:160px;margin-bottom:0}.tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:1px solid var(--color-border);padding-bottom:0}.tab{background:none;color:var(--color-text-muted);border:none;border-bottom:2px solid transparent;border-radius:0;padding:.75rem 1rem;margin-bottom:-1px}.tab:hover{color:var(--color-text);background:none}.tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);background:none}.empty-state{text-align:center;padding:2rem;color:var(--color-text-muted)}
