/* Workspace UI contract: legacy blue/slate palette; 4px spacing; 40px controls;
   24px section rhythm; no document-level overflow; scroll only data regions. */
body:not(.auth-screen){--bg:var(--paper);--ui-control:40px;--ui-gap:12px;--ui-section:24px;--ui-radius:8px;--ui-primary-hover:#3275ec}
body:not(.auth-screen) #main{min-width:0;line-height:1.65}
body:not(.auth-screen) #main>.page-title{margin-bottom:24px}
body:not(.auth-screen) h1{line-height:1.35;overflow-wrap:anywhere}
body:not(.auth-screen) h2,body:not(.auth-screen) h3{line-height:1.5;overflow-wrap:anywhere}
body:not(.auth-screen) .panel{padding:24px;margin-bottom:24px;min-width:0;border-radius:12px}
body:not(.auth-screen) .panel-title,body:not(.auth-screen) .record-head{gap:12px;flex-wrap:wrap}
body:not(.auth-screen) .panel-title{margin-bottom:16px}
body:not(.auth-screen) .panel-title>*{min-width:0;max-width:100%}
body:not(.auth-screen) .actions,body:not(.auth-screen) .form-actions{gap:12px;flex-wrap:wrap}
body:not(.auth-screen) button{line-height:1.4}
body:not(.auth-screen) .actions>button,body:not(.auth-screen) .form-actions>button,body:not(.auth-screen) .toolbar>button{min-height:var(--ui-control);padding:10px 16px}
body:not(.auth-screen) button:disabled{cursor:not-allowed}
body:not(.auth-screen) button:not(.secondary):not(.text-button):not(.home-card):not(.home-todo):not(.icon-button):hover{background:var(--ui-primary-hover)}
body:not(.auth-screen) .secondary:hover{background:var(--blue-pale);border-color:var(--blue)}
body:not(.auth-screen) .text-button{min-height:32px;line-height:1.5}
body:not(.auth-screen) .form{gap:20px}
body:not(.auth-screen) .form label{gap:8px;min-width:0}
body:not(.auth-screen) .form input:not([type=checkbox]):not([type=radio]):not([type=file]),body:not(.auth-screen) .form select,body:not(.auth-screen) .toolbar input,body:not(.auth-screen) .toolbar select{min-height:40px;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--ink);min-width:0}
body:not(.auth-screen) .form textarea{border-radius:8px;line-height:1.65;font-weight:400;max-width:100%;min-width:0}
body:not(.auth-screen) .form-actions{justify-content:flex-end;padding-top:4px}
body:not(.auth-screen) .form .check{align-items:flex-start;font-weight:400}
body:not(.auth-screen) .check input{flex:none;margin-top:4px;accent-color:var(--blue)}
body:not(.auth-screen) .error:empty{display:none}
body:not(.auth-screen) .toolbar{gap:12px;align-items:center}
body:not(.auth-screen) .empty,body:not(.auth-screen) .workspace-empty{padding:32px 16px;min-height:0}
body:not(.auth-screen) .table-wrap{max-width:100%;overscroll-behavior:contain;scrollbar-width:thin}
body:not(.auth-screen) th,body:not(.auth-screen) td{vertical-align:middle}
body:not(.auth-screen) .record p,body:not(.auth-screen) .category-row>span{overflow-wrap:anywhere}
/* Navigation is visually quieter than an action button. */
body:not(.auth-screen) .workspace-tabs{gap:20px;padding-bottom:0;margin-bottom:24px}
body:not(.auth-screen) .workspace-tabs button{background:transparent!important;color:var(--muted);border:0;border-bottom:2px solid transparent;border-radius:0;padding:10px 0;min-height:40px}
body:not(.auth-screen) .workspace-tabs button.active{border-bottom-color:var(--blue);color:var(--blue)}
body:not(.auth-screen) .filter-tabs button{background:transparent!important;color:var(--muted);border-color:var(--line);min-height:40px;padding:9px 14px}
body:not(.auth-screen) .filter-tabs button:not(.secondary){color:var(--blue);background:var(--blue-pale)!important;border-color:var(--blue)}
body:not(.auth-screen) .my-section-tabs button{background:var(--white);color:var(--ink);border:1px solid var(--line)}
body:not(.auth-screen) .my-section-tabs button.active{background:var(--blue-pale);border-color:var(--blue);color:var(--blue)}
body:not(.auth-screen) .intake-method{min-height:0;padding:24px;background:var(--paper)}
body:not(.auth-screen) .intake-method .intake-actions{margin-top:20px}
body:not(.auth-screen) .bom-entry .actions{justify-content:flex-start}
body:not(.auth-screen) .material-actions{max-width:224px;gap:8px}
body:not(.auth-screen) .material-actions button{padding:8px 12px;min-height:36px;white-space:nowrap}
body:not(.auth-screen) .material-detail details .actions{padding:16px;background:var(--white);border:1px solid var(--line);border-radius:8px}
body:not(.auth-screen) #main[data-view=account],body:not(.auth-screen) #main[data-view=help]{max-width:1040px}
body:not(.auth-screen) #main[data-view=account] .form{max-width:none}
/* Stable header: narrow viewports put search on its own row. */
body:not(.auth-screen) .global-search{min-width:0}
body:not(.auth-screen) .global-search input{min-height:40px}
body:not(.auth-screen) .global-search button{inset:0 auto 0 4px;width:36px;height:40px;padding:8px;font-size:16px}
body:not(.auth-screen) #account{min-width:0;flex-wrap:nowrap}
body:not(.auth-screen) #account>span:not(.identity-badge){max-width:140px;overflow:hidden;text-overflow:ellipsis}
/* Modal headings reserve space for the sticky close control; never float text around it. */
body:not(.auth-screen) #dialog{border-radius:14px;box-shadow:0 16px 64px #0004}
body:not(.auth-screen) #dialog .form{max-width:none}
body:not(.auth-screen) #close-dialog{float:none;position:sticky;top:0;display:block;margin:0 0 -36px auto;width:36px;height:36px;min-height:36px;background:var(--white);border-color:var(--line)}
body:not(.auth-screen) #dialog-content>h2:first-child,body:not(.auth-screen) #dialog-content>section>h2:first-child{min-height:36px;margin:0 0 20px;padding-right:52px;display:flex;align-items:center}
body:not(.auth-screen) #dialog-content{min-width:0}
body:not(.auth-screen) .notice-tools,body:not(.auth-screen) .notification-footer{flex-wrap:wrap}
body:not(.auth-screen) #toast{left:50%;width:max-content;max-width:min(480px,calc(100vw - 32px));bottom:20px}
body:not(.auth-screen) .task-card .actions{margin-bottom:0}
@media(max-width:1100px) and (min-width:721px){body:not(.auth-screen) .header-help{display:none!important}}
@media(max-width:720px){
 body:not(.auth-screen)>.shell>header{display:flex;flex-wrap:wrap;padding:10px 14px;gap:10px;height:auto;min-height:104px}
 body:not(.auth-screen) #menu{order:0;width:36px;height:36px;padding:4px;flex:none}
 body:not(.auth-screen) .global-search{order:5;flex:0 0 100%;max-width:none}
 body:not(.auth-screen) .header-notices{order:1;margin-left:auto;height:36px}
 body:not(.auth-screen) .workspace-theme{order:2;margin-left:0;height:36px;min-width:36px}
 body:not(.auth-screen) #account{order:3;max-width:50%;gap:8px}
 body:not(.auth-screen) #account>span:not(.identity-badge){max-width:90px}
 body:not(.auth-screen) #main{padding:20px 14px}
 body:not(.auth-screen) .panel{padding:20px;margin-bottom:20px}
 body:not(.auth-screen) .workspace-tabs{gap:16px}
 body:not(.auth-screen) .inventory-table .material-identity{min-width:0;max-width:none}
 body:not(.auth-screen) .inventory-table td:last-child{padding-top:8px}
 body:not(.auth-screen) .material-actions{max-width:none;width:100%}
 body:not(.auth-screen) .inventory-table td:nth-child(3)::before{content:'分类';display:block;color:var(--muted);font-size:12px;margin-bottom:4px}
 body:not(.auth-screen) .inventory-table td:nth-child(4)::before{content:'使用规则';display:block;color:var(--muted);font-size:12px;margin-bottom:4px}
 body:not(.auth-screen) .inventory-table td:nth-child(5)::before{content:'归属';display:block;color:var(--muted);font-size:12px;margin-bottom:4px}
 body:not(.auth-screen) .notice-heading time{white-space:normal}
 body:not(.auth-screen) .home-quick{grid-template-columns:1fr}
 body:not(.auth-screen) .quick-card{min-height:80px;padding:16px}
 body:not(.auth-screen) .home-stat>span:not(.stat-icon){display:block;padding-right:28px}
 body:not(.auth-screen) .home-stat{min-width:0}
 body:not(.auth-screen) .category-grid{grid-template-columns:minmax(0,1fr)}
 body:not(.auth-screen) .material-detail .detail-stats{grid-template-columns:1fr}
 body:not(.auth-screen) .material-detail .detail-stats>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px}
 body:not(.auth-screen) #dialog .actions>button,body:not(.auth-screen) .form-actions>button{min-height:44px}
 body:not(.auth-screen) .ledger-filters{gap:12px}
}
@media(prefers-reduced-motion:reduce){body:not(.auth-screen) *{scroll-behavior:auto;transition:none}}
.mobile-filter-toggle{display:none}
@media(max-width:720px){
 .material-filters{grid-template-columns:1fr 1fr;padding:16px;gap:12px}
 .material-filters>label:first-child,.material-filters>.mobile-filter-toggle,.material-filters>.actions{grid-column:1/-1}
 .material-filters>.mobile-filter-toggle{display:flex;align-items:center;justify-content:space-between;min-height:40px;background:transparent;font-weight:500}
 .material-filters:not(.filters-expanded)>label:not(:first-child){display:none}
 .material-filters>.actions>button{flex:1}
 body:not(.auth-screen) .material-filters input,body:not(.auth-screen) .material-filters select{font-size:13px}
}
body:not(.auth-screen) :is(button,a,input,select,textarea):focus-visible{outline:2px solid var(--blue);outline-offset:3px}
body:not(.auth-screen) .task-perspective button:not(.active):hover{background:var(--blue-pale)!important;color:var(--blue)}
body:not(.auth-screen) .task-perspective button.active:hover{background:var(--blue-pale)!important;color:var(--blue)}
.ledger-filters{grid-template-columns:minmax(180px,2fr) repeat(4,minmax(120px,1fr)) auto}
.ledger-query-actions{flex-wrap:nowrap!important;align-self:end;justify-content:flex-end}
@media(max-width:1400px){.ledger-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.ledger-query-actions{grid-column:1/-1}}
@media(max-width:720px){
 .ledger-filters{grid-template-columns:1fr 1fr}.ledger-filters>label:first-child{grid-column:1/-1}.ledger-query-actions{width:100%}.ledger-query-actions>button{flex:1}
 .ledger-table,.ledger-table tbody{display:block;white-space:normal}.ledger-table thead{display:none}
 .ledger-table tbody tr{display:grid;grid-template-columns:1fr 1fr;gap:12px;border-bottom:1px solid var(--line);padding:20px 0}
 .ledger-table tbody tr:first-child{padding-top:0}.ledger-table tbody tr:last-child{border:0;padding-bottom:0}
 .ledger-table td{display:block;padding:0;min-width:0!important;border:0;overflow-wrap:anywhere}
 .ledger-table td:nth-child(1),.ledger-table td:nth-child(2),.ledger-table td:nth-child(7),.ledger-table td:nth-child(8){grid-column:1/-1}
 .ledger-table td::before{display:block;color:var(--muted);font:12px 'Segoe UI','Microsoft YaHei',sans-serif;margin-bottom:4px}
 .ledger-table td:nth-child(2)::before{content:'物料'}.ledger-table td:nth-child(3)::before{content:'动作'}.ledger-table td:nth-child(4)::before{content:'变化'}.ledger-table td:nth-child(5)::before{content:'账面 前 → 后'}.ledger-table td:nth-child(6)::before{content:'操作人'}.ledger-table td:nth-child(7)::before{content:'原因'}
 .ledger-table td:last-child{display:flex;justify-content:flex-end}
}
body[data-auth-palette=dark]:not(.auth-screen){--green:#35c99b}
body[data-auth-palette=dark]:not(.auth-screen) .material-tag.private,body[data-auth-palette=dark]:not(.auth-screen) .material-tag.pending{color:#edbd5e;background:#b3811426}
body[data-auth-palette=dark]:not(.auth-screen) .material-tag.available{color:#35c99b;background:#19ac8020}

.help-document{max-width:80ch}.help-section+.help-section{margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}.help-section h3{margin-bottom:14px;color:var(--ink)}.help-section p{line-height:1.85;margin:0 0 12px;overflow-wrap:anywhere;color:var(--muted)}

/* Recovery flows share the existing panel, typography and semantic palette. */
.feedback-compose{max-width:900px;margin-inline:auto}.feedback-compose form{max-width:none}.feedback-record{overflow-wrap:anywhere}.feedback-attachments,.group-tags{display:flex;flex-wrap:wrap;gap:8px}.feedback-attachments{margin:12px 0}.feedback-progress{border-left:3px solid var(--line);padding:12px 16px;margin:12px 0}.feedback-progress small{display:block;color:var(--muted);margin-top:4px}.feedback-progress p{margin-bottom:0}.recognition-drop{padding:24px;border:1px dashed var(--line);border-radius:12px;text-align:center}.recognition-drop.dragging{background:var(--panel);outline:2px solid #4985ff}.recognition-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}.recognition-row .actions{justify-content:flex-end}.similar-choice{display:flex;gap:12px;align-items:center;padding:12px;border-bottom:1px solid var(--line)}.similar-choice input{width:auto}.review-warning{padding:12px;border-left:3px solid #d8aa39;background:rgba(216,170,57,.08)}
@media(max-width:600px){.recognition-row{grid-template-columns:1fr}.recognition-row .actions{justify-content:flex-start}.feedback-compose{padding:16px}.feedback-attachments{flex-direction:column}}

@media(max-width:600px){#bom-result table,#bom-result tbody,#bom-result tr{display:block;width:100%;min-width:0}#bom-result thead{display:none}#bom-result tr{padding:12px;border:1px solid var(--line);border-radius:12px;margin-top:12px}#bom-result td{display:grid;grid-template-columns:90px minmax(0,1fr);gap:8px;padding:8px 0;border:0;white-space:normal;overflow-wrap:anywhere}#bom-result td::before{content:attr(data-label);color:var(--muted)}#bom-result td:last-child{display:block}#bom-result td:last-child::before{display:block;margin-bottom:8px}#bom-result select{width:100%;min-width:0}#bom-result label{display:block;margin-top:12px}}

.recognition-row>div:first-child{display:grid;grid-template-columns:minmax(0,1fr) 100px;gap:12px}.recognition-row label{display:flex;flex-direction:column;gap:8px;font-weight:600}.recognition-row input{box-sizing:border-box;width:100%;min-width:0;min-height:40px;border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:var(--panel);color:var(--ink);font:inherit}.recognition-row p{grid-column:1/-1}.similar-choice input{width:18px;height:18px;min-height:18px;flex:0 0 18px}.similar-choice span{min-width:0;overflow-wrap:anywhere}input[type=file]::file-selector-button{border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--ink);padding:6px 10px;margin-right:8px;font:inherit;cursor:pointer}
@media(max-width:600px){.recognition-row>div:first-child{grid-template-columns:1fr}.recognition-row label{margin:4px 0}}

/* Recognition review: source provenance, editable content, then explicit sending consent. */
#recognition-form{gap:16px;margin-top:20px}
#recognition-form .recognition-text{gap:8px}
#recognition-form .recognition-text>.muted{font-size:13px;font-weight:400;line-height:1.5}
#recognition-form textarea{width:100%;box-sizing:border-box;min-height:150px;line-height:1.65}
.recognition-sources>strong{display:block;font-size:13px;margin-bottom:8px;color:var(--muted)}
.recognition-sources>div{display:flex;flex-wrap:wrap;gap:8px}
.recognition-sources details{max-width:100%;border:1px solid var(--line);border-radius:8px;padding:8px 12px;font-size:13px;overflow-wrap:anywhere}
.recognition-sources details[open]{width:100%;box-sizing:border-box}
.recognition-sources summary{cursor:pointer}
.recognition-sources pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;line-height:1.6;margin:10px 0 0}
.recognition-send{display:grid;gap:10px;padding:14px 16px;background:var(--paper);border:1px solid var(--line);border-radius:10px}
.recognition-service{font-size:13px;color:var(--muted)}
.recognition-service summary{cursor:pointer;line-height:1.6}
.recognition-service dl{margin:10px 0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 12px}
.recognition-service dd{margin:0;overflow-wrap:anywhere}
#recognition-form .recognition-send .check{display:flex;align-items:flex-start;gap:10px;margin:0;line-height:1.6;font-size:14px}
#recognition-form .recognition-send input[type=checkbox]{flex:0 0 16px;width:16px;height:16px;margin:3px 0 0}
#recognition-form .recognition-send p{margin:0 0 0 26px;font-size:12px;line-height:1.6}
#recognition-form>.error:empty{display:none}
#recognition-form .form-actions{margin:0}
@media(max-width:600px){.recognition-drop{padding:16px}.recognition-send{padding:12px}#recognition-form .form-actions button{width:100%}}

.intake-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px}
.intake-heading h2,.intake-heading p{margin:0 0 8px}
.intake-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;background:var(--paper);border:1px solid var(--line);border-radius:12px;margin-bottom:20px}
.intake-tabs button{background:transparent;color:var(--muted);border:0;box-shadow:none;min-width:0;padding:12px 8px}
.intake-tabs button[aria-selected=true]{background:var(--white);color:var(--blue);box-shadow:0 1px 4px #0002}
.intake-content{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:24px}
.intake-content>h2{margin-top:0}.intake-content .recognition-drop{background:var(--white)}
.intake-content #recognition-form{max-width:none}.intake-content #recognition-form textarea{min-height:180px}
.intake-template-entry{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:24px;padding-top:16px}
@media(max-width:600px){.intake-heading{flex-direction:column}.intake-content{padding:16px}.intake-tabs button{font-size:13px;padding:12px 4px}.intake-workbench{padding:16px}}

.recognition-file-drop{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 16px;text-align:left;padding:16px}.recognition-file-drop label{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.recognition-file-drop p{margin:0;font-size:12px;grid-column:1}.recognition-file-drop button{grid-column:2;grid-row:1/3;align-self:center}@media(max-width:600px){.recognition-file-drop{grid-template-columns:minmax(0,1fr)}.recognition-file-drop button{grid-column:1;grid-row:auto;justify-self:start}}

.recognition-drop input[type=file]{display:block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;margin-top:8px}.recognition-drop label{min-width:0;overflow-wrap:anywhere}.recognition-send .check span{min-width:0;overflow-wrap:anywhere}

/* New sheep identity: the artwork keeps its source aspect ratio. */
.auth-screen .auth-logo:before{display:none}
.auth-screen .auth-logo img{opacity:1;object-fit:contain}
.auth-screen .auth-logo{width:240px;height:122px;margin:0 auto 12px}
.auth-screen .auth-brand-title{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
body.desktop-client.auth-screen .auth-logo{width:210px;height:107px}
body.desktop-client.auth-screen.auth-register .auth-logo{width:170px;height:86px}
.workspace-logo{width:55px!important;height:28px!important;object-fit:contain!important;flex-shrink:0}
body:not(.auth-screen) .intake-tabs button:hover{background:var(--blue-pale);color:var(--blue)}
body:not(.auth-screen) .intake-tabs button[aria-selected=true],body:not(.auth-screen) .intake-tabs button[aria-selected=true]:hover{background:var(--blue-pale);color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}
@media(max-width:420px){.auth-screen .auth-logo{width:210px;height:107px}}

body:not(.auth-screen) .intake-tabs button[aria-selected=false]:hover{background:transparent!important;color:var(--ink)}
body:not(.auth-screen) .intake-tabs button[aria-selected=true]:hover{background:var(--blue-pale)!important}
@media(max-width:959px){body.desktop-client.auth-screen #main{padding-top:72px}}

#sidebar>.brand{gap:10px;padding:8px 14px;font-size:18px;line-height:1.2;letter-spacing:0}#sidebar>.brand>span{white-space:nowrap;min-width:0}#sidebar .brand-sub{margin-top:4px}
@media(max-width:1000px){#sidebar>.brand{gap:8px;padding:8px 12px;font-size:16px}#sidebar>.brand .workspace-logo{width:45px!important;height:24px!important}}
.entry-notice h2{margin-top:0}.entry-announcement{padding:16px;border:1px solid var(--line);border-radius:8px;background:var(--blue-pale);line-height:1.8}.entry-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:24px}.entry-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px}.entry-summary button{display:grid;gap:3px;padding:12px 6px}.entry-summary strong{font-size:24px}.entry-summary span{font-size:13px}@media(max-width:420px){.entry-actions button{flex:1 1 auto}.entry-actions .text-button{flex-basis:100%}.entry-notice .notice-card{padding:12px}.entry-notice .notice-card h3{font-size:16px}}
.recognition-queue{display:grid;gap:10px;margin-top:16px}.queue-item{display:flex;gap:12px;align-items:center;border:1px solid var(--border);border-radius:10px;padding:10px;min-width:0}.queue-item img,.queue-file{width:64px;height:56px;object-fit:contain;border-radius:6px;background:var(--bg);flex-shrink:0}.queue-item>div{min-width:0;flex:1}.queue-item strong,.queue-item small{display:block;overflow-wrap:anywhere}.queue-item small{color:var(--muted);margin-top:6px}.import-review{max-height:60vh;overflow:auto}.import-review table{min-width:1150px}.import-review thead{position:sticky;top:0;z-index:2}.import-review th{background:var(--surface)}.import-review td{vertical-align:top;min-width:130px}.import-review td:nth-child(2){min-width:220px}.import-review input,.import-review select{width:100%;min-width:0}.bulk-filter{display:flex;gap:12px;flex-wrap:wrap;align-items:end}.bulk-filter>label{flex:1;min-width:140px}.bom-review{max-height:60vh;overflow:auto}.bom-review table{min-width:780px}.bom-review input{width:100px}.bom-review small{display:block}.bom-entry>#bom-multiplier{max-width:140px}
.queue-item{border-color:var(--line)}.import-review th{background:var(--paper)}.bom-entry>label{display:grid;gap:8px;margin-bottom:20px}.bom-entry input{padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--ink);font:inherit;min-height:40px;max-width:160px}.import-review label{display:grid;gap:6px;margin-bottom:12px}.import-review details label{margin-top:12px}
@media(max-width:600px){.import-review table{min-width:0;width:100%}.import-review tr{grid-template-columns:minmax(0,1fr);gap:16px;padding:16px 4px}.import-review td{grid-column:1/-1!important;white-space:normal}.import-review td:nth-child(4)::before{content:'归属 / 保管'}.import-review td:nth-child(5)::before{content:'分类 / 性质'}.import-review td:nth-child(6)::before{content:'规格资料'}.import-review td:nth-child(7)::before{content:'查重确认'}.import-review td:last-child::before{content:none}.import-review td:first-child::before{content:'清单行号'}.import-review td input,.import-review td select{max-width:100%}.queue-item{flex-wrap:wrap}.queue-item>div{flex-basis:calc(100% - 80px)}.queue-item>button{margin-left:76px}#bom-result td[data-label="本次取料"]{grid-template-columns:90px minmax(0,1fr)}#bom-result [data-bom-available]{grid-column:2;text-align:left;padding-left:0}.bom-review{max-height:none}.bom-summary{display:grid;gap:8px}}
#dialog:has(.import-review){width:min(1320px,calc(100vw - 32px))}.import-review td:first-child{min-width:40px;width:40px}.import-review td:nth-child(3){min-width:80px;width:80px}.import-review td:last-child{min-width:90px;width:90px}.import-review th{white-space:normal}.import-review table{min-width:1100px}@media(max-width:600px){.import-review table{min-width:0}}
.workspace-label{font-size:16px!important;font-weight:600;text-align:center;line-height:1.5;overflow-wrap:anywhere;padding:18px 16px!important;color:var(--ink)}
.sidebar-foot{display:grid;gap:4px}
.sidebar-foot .text-button,.sidebar-foot #identity-switch{display:flex;align-items:center;min-height:36px;padding:6px 8px;margin:0;font-size:13px;line-height:24px;text-align:left;border-radius:6px}
.sidebar-foot .text-button:hover,.sidebar-foot #identity-switch:hover{background:var(--paper)}
.ai-connection-status{margin:0;overflow-wrap:anywhere}.ai-connection-status.success{color:var(--green)}
.administrator-duty-list{margin:0;border:1px solid var(--line);border-radius:8px;padding:16px;display:grid;gap:8px}.administrator-duty-list legend{padding:0 8px}.administrator-duty-list small{margin-bottom:10px}.member-duties{display:block;white-space:normal;max-width:260px;color:var(--muted);margin-top:6px}
.workspace-label{margin:14px 14px 6px!important;padding:12px 10px!important;background:var(--blue-pale);border:1px solid var(--line);border-radius:8px}
.notification-center [data-notice-tab]{position:relative}.notification-center [data-notice-tab] .notification-count{position:absolute;right:-5px;top:-5px;margin:0}.notification-center h2[tabindex="-1"]:focus{outline:none}
.account-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:stretch}.account-grid>.panel{margin:0!important;display:flex;flex-direction:column;min-width:0}.account-grid>.panel>h2{margin:0}.account-grid .actions{margin-top:auto;padding-top:16px}.account-facts{display:grid;grid-template-columns:60px minmax(0,1fr);gap:12px;margin:20px 0}.account-facts dt{color:var(--muted)}.account-facts dd{margin:0;overflow-wrap:anywhere}.account-organization,.account-profile{padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--blue-pale);margin:20px 0 0}.account-profile{background:transparent}.account-organization strong,.account-profile strong{display:block;font-size:18px;overflow-wrap:anywhere;margin-top:6px}.account-organization small,.account-profile small{color:var(--muted)}.account-danger{margin-top:24px}.account-danger summary{cursor:pointer;font-weight:600}.account-danger[open] summary{margin-bottom:16px}.account-danger p{color:var(--muted)}
@media(max-width:720px){.account-grid{grid-template-columns:1fr;gap:16px}.notification-center .filter-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.notification-center [data-notice-tab]{font-size:12px;padding:8px 4px;white-space:nowrap}}
.inventory-table{overscroll-behavior-y:auto}body:not(.auth-screen) .table-wrap{overscroll-behavior-y:auto}
.material-filters>.actions{grid-column:3/-1;justify-content:flex-end;align-self:end}
.material-filters select:disabled{opacity:.6;cursor:not-allowed}
#main>.panel:has(.help-document){max-width:960px;margin-inline:auto}.help-document{max-width:none}
.help-document .help-contents{display:grid;grid-template-columns:1fr 1fr;gap:8px 20px;padding:16px;background:var(--paper);border-radius:8px;margin:16px 0 28px}
.help-contents a{padding:4px 0;font-size:13px}.help-section{scroll-margin-top:100px}.help-section p{color:var(--ink);font-size:14px;line-height:1.85}
@media(max-width:720px){.material-filters>.actions{grid-column:1/-1}.help-document .help-contents{grid-template-columns:1fr}}

.clipboard-helper{position:fixed;top:0;left:-9999px;width:1px;height:1px;opacity:0}
.invite-code-box button{margin-top:16px}.member-table .member-operation{text-align:right}.member-actions{display:flex;justify-content:flex-end;gap:16px;align-items:center;flex-wrap:wrap}.member-sensitive{display:flex;gap:8px;padding-left:16px;border-left:1px solid var(--line)}.member-actions button{white-space:nowrap}.member-table .tag{background:var(--blue-pale);color:var(--blue)}
@media(max-width:900px){.member-table,.member-table tbody,.member-table tr{display:block;width:100%;min-width:0}.member-table thead{display:none}.member-table tr{padding:16px 0;border-bottom:1px solid var(--line)}.member-table td{display:grid;grid-template-columns:64px minmax(0,1fr);gap:12px;padding:8px 0;border:0;white-space:normal;overflow-wrap:anywhere}.member-table td::before{content:attr(data-label);color:var(--muted)}.member-table .member-operation{display:block;text-align:left}.member-table .member-operation::before{display:none}.member-actions{justify-content:flex-start;gap:12px}.member-sensitive{padding:0;border:0;flex-wrap:wrap}.member-actions button{min-height:40px}.invite-code-box{max-width:100%;box-sizing:border-box}.invite-code-box .invite-code{font-size:clamp(18px,5vw,32px);overflow-wrap:anywhere}}

.member-actions .danger{background:transparent;color:var(--danger);border-color:var(--danger)}.member-actions .danger:hover{background:rgba(200,60,75,.1)}.member-table td>.tag{justify-self:start;width:fit-content}

/* Catalog shares the form rhythm and uses readable fields instead of raw JSON. */
.catalog-search{display:grid;gap:8px;margin:20px 0;max-width:560px;color:var(--muted)}
.catalog-search input{font:inherit;color:var(--ink);background:var(--white);border:1px solid var(--line);border-radius:10px;padding:12px 14px;width:100%;min-width:0}
.catalog-specs{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px 24px;margin:16px 0}
.catalog-specs>div{min-width:0}.catalog-specs dt{font-size:.85em;color:var(--muted)}.catalog-specs dd{margin:4px 0;overflow-wrap:anywhere}

/* Upload: the outlined target is one button; queue and actions are separate. */
.recognition-upload{margin:20px 0 24px;min-width:0}
.recognition-upload input[hidden]{display:none!important}
body:not(.auth-screen) button.recognition-drop{display:flex;align-items:center;gap:20px;width:100%;min-height:140px;margin:0;padding:24px;text-align:left;border:1px dashed var(--muted);border-radius:12px;background:var(--white)!important;color:var(--ink);font-weight:400;cursor:pointer}
body:not(.auth-screen) button.recognition-drop:hover,body:not(.auth-screen) button.recognition-drop.dragging{border-color:var(--blue);background:var(--blue-pale)!important}
body:not(.auth-screen) button.recognition-drop:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
body:not(.auth-screen) button.recognition-drop:disabled{cursor:wait;opacity:.65}
.upload-symbol{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;border-radius:10px;background:var(--blue-pale);color:var(--blue)}.upload-symbol svg{width:26px;height:26px}
.upload-copy{display:grid;gap:8px;min-width:0;flex:1}.upload-copy strong{font-size:16px}.upload-copy>span{color:var(--muted);font-size:13px;line-height:1.6;font-weight:400}
.upload-select{padding:9px 16px;border:1px solid var(--line);border-radius:8px;white-space:nowrap;color:var(--blue);font-weight:600;background:var(--white)}
.upload-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px}.upload-toolbar>span{color:var(--muted);font-size:13px}.upload-toolbar button{flex-shrink:0;min-width:112px}
.upload-error{color:var(--danger);padding:12px 0 0;margin:0;overflow-wrap:anywhere}.upload-error[hidden]{display:none}
.recognition-queue:empty{display:none}.recognition-queue .queue-item{background:var(--white);padding:12px}.recognition-queue .queue-item[data-state=failed]{border-color:var(--danger)}.queue-item[data-state=failed] small{color:var(--danger)}
.recognition-row>div:first-child{display:grid;grid-template-columns:minmax(0,1fr) 100px;gap:12px}.recognition-row label{display:grid;gap:6px;min-width:0}.recognition-row input{width:100%;min-width:0;padding:10px 12px;min-height:40px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--white)}.recognition-row p{grid-column:1/-1;margin:0}
.recognition-sources pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:260px;overflow:auto}
body:not(.auth-screen) .check{min-height:40px;cursor:pointer}body:not(.auth-screen) .check input{flex-shrink:0}
body:not(.auth-screen) .catalog-search input{min-height:44px}
@media(max-width:600px){
 body:not(.auth-screen) button.recognition-drop{display:grid;grid-template-columns:40px minmax(0,1fr);gap:12px;min-height:148px;padding:16px}
 .upload-symbol{width:40px;height:40px}.upload-select{grid-column:2;justify-self:start;padding:6px 12px}.upload-copy strong{font-size:14px}.upload-copy>span{font-size:12px}
 .upload-toolbar{align-items:center;gap:8px}.upload-toolbar button{min-width:110px}.upload-toolbar>span{font-size:12px}
 .recognition-row>div:first-child{grid-template-columns:minmax(0,1fr) 76px}
 body:not(.auth-screen) button,body:not(.auth-screen) .secondary,body:not(.auth-screen) summary{min-height:44px}
 #close-dialog{width:44px;height:44px}body:not(.auth-screen) .text-button{min-height:44px}
}

@media(max-width:600px){
 body:not(.auth-screen) .intake-workbench{padding:16px}
 .intake-workbench .intake-content{padding:16px}
 .recognition-queue .queue-item{display:grid;grid-template-columns:40px minmax(0,1fr) 52px;gap:10px;align-items:center}
 .recognition-queue .queue-item img,.recognition-queue .queue-file{width:40px;height:44px}
 .recognition-queue .queue-item>button{margin:0;padding:8px 4px;width:52px;font-size:12px}
 .recognition-queue .queue-item strong{font-size:12px}.recognition-queue .queue-item small{font-size:11px}
}
.material-use-settings{margin:4px 0;padding:16px;border:1px solid var(--line,#ccd5df);border-radius:10px;min-width:0}
.material-use-settings legend{padding:0 6px;font-weight:600}
.material-use-settings .muted{margin:8px 0 0;font-size:13px;line-height:1.6}
.material-template-search input{min-height:44px}

.category-grid{align-items:start}
.category-grid .category-card{height:440px;min-width:0;display:flex;flex-direction:column;margin:0;overflow:hidden}

/* Compact business pages; authentication and mobile touch targets keep their sizing. */
@media(min-width:721px){
 body:not(.auth-screen) main{padding:20px}
 body:not(.auth-screen) .panel{padding:20px;margin-bottom:18px}
 body:not(.auth-screen) #main>.page-title{margin-bottom:18px}
 body:not(.auth-screen) .page-title h1{font-size:22px}
 body:not(.auth-screen) .panel-title{margin-bottom:12px}
}
.intake-heading{margin-bottom:12px;gap:12px;align-items:center}
.intake-heading h2{font-size:16px;margin-bottom:4px}
.intake-heading p{font-size:13px;margin:0}
.intake-tabs{margin-bottom:14px;border-radius:9px}
body:not(.auth-screen) .intake-tabs button{padding:8px;min-height:40px;font-size:13px}
.intake-content{padding:18px;border-radius:10px}
.recognition-flow{min-width:0}
.recognition-flow>h2{font-size:18px;margin:0 0 6px}
.recognition-flow>h2+p{font-size:13px;line-height:1.6;margin:0 0 16px}
.recognition-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:18px;scroll-margin-top:80px}
body:not(.auth-screen) .recognition-steps button{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:2px 8px;padding:10px 12px;min-height:56px;border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--muted);text-align:left;font-size:13px;font-weight:500;box-shadow:none}
.recognition-steps .step-number{grid-row:1/3;display:grid;place-items:center;width:26px;height:26px;background:var(--paper);border-radius:50%;font-size:12px}
.recognition-steps .step-state{grid-column:2;font-size:11px;min-height:14px;font-weight:400}
body:not(.auth-screen) .recognition-steps button[aria-current=step]{border-color:var(--blue);background:var(--blue-pale);color:var(--blue)}
body:not(.auth-screen) .recognition-steps button:hover{background:var(--blue-pale);color:var(--blue)}
.recognition-steps button[aria-current=step] .step-number{background:var(--blue);color:#fff}
.recognition-flow [data-rec-stage][hidden]{display:none!important}
.recognition-stage>h3{font-size:15px;margin:0 0 6px}
.recognition-stage>p.muted{font-size:13px;line-height:1.6;margin:0 0 12px}
.recognition-flow .recognition-upload{margin:12px 0 6px}
body:not(.auth-screen) .recognition-flow button.recognition-drop{min-height:104px;padding:16px;gap:14px;border-radius:9px}
.recognition-flow .upload-symbol{width:40px;height:40px;flex-basis:40px;border-radius:8px}
.recognition-flow .upload-copy strong{font-size:14px}
.recognition-flow .upload-copy>span{font-size:12px}
.recognition-flow .recognition-queue{gap:8px;margin-top:10px;max-height:224px;overflow:auto;scrollbar-gutter:stable}
.recognition-flow .queue-item{padding:8px}
.recognition-flow .queue-item img,.recognition-flow .queue-file{width:48px;height:44px}
.recognition-flow .queue-item strong{font-size:13px}
.recognition-flow .queue-item small{font-size:12px;margin-top:4px}
.recognition-flow .upload-toolbar{margin-top:12px;gap:10px}
body:not(.auth-screen) .recognition-flow button.recognition-source-next{font-size:13px;padding:6px 0;min-height:36px}
.recognition-flow #recognition-form{margin-top:0;gap:12px}
.recognition-flow #recognition-form h3,.recognition-flow #recognition-form .recognition-stage-note{margin:0}
.recognition-flow #recognition-form .recognition-text{font-size:13px;gap:6px}
.intake-content .recognition-flow #recognition-form textarea{min-height:160px;font-size:13px;line-height:1.65}
.recognition-flow .recognition-send{padding:12px;gap:8px}
.recognition-flow #recognition-form .recognition-send .check{font-size:13px}
.recognition-flow #recognition-form .form-actions{border-top:1px solid var(--line);padding-top:12px;justify-content:space-between}
.recognition-result-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.recognition-result-toolbar>span{font-size:12px;color:var(--muted)}
.recognition-flow .recognition-row{padding:12px 0;gap:12px}
.recognition-flow .recognition-row label{font-size:13px;gap:6px}
.recognition-flow .recognition-row input{font-size:13px;min-height:38px;padding:8px 10px}
.recognition-flow .recognition-row .actions button{font-size:12px;padding:8px 12px}
.recognition-flow .recognition-raw{font-size:12px;line-height:1.6}
/* Batch review grows inside bounded panes, rather than extending the page. */
.recognition-comparison{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:18px;align-items:start}
.recognition-review-main{min-width:0;display:grid;gap:10px}
.recognition-review-main>h3{font-size:15px;margin:0}
.recognition-review-main>p.muted{font-size:12px;margin:0;line-height:1.6}
.recognition-original{min-width:0;background:var(--paper);border:1px solid var(--line);border-radius:9px;padding:12px}
.recognition-original-heading{display:flex;gap:10px;justify-content:space-between;align-items:center;font-size:13px;margin-bottom:10px}
.recognition-original-heading>span{font-size:12px;color:var(--muted)}
.recognition-original-selector{display:grid;grid-template-columns:38px minmax(0,1fr) 38px;gap:6px;margin-bottom:10px}
.recognition-original-selector select{width:100%;min-width:0;font-size:12px;padding:8px;min-height:38px}
body:not(.auth-screen) .recognition-original-selector button{min-height:38px;padding:6px;font-size:14px}
.recognition-original-frame{height:clamp(220px,43vh,430px);overflow:auto;scrollbar-gutter:stable;background:var(--white);border:1px solid var(--line);border-radius:6px}
.recognition-original-frame img{display:block;max-width:none;height:auto}
.recognition-original-frame pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;padding:10px;margin:0}
.recognition-original-zoom{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
body:not(.auth-screen) .recognition-original-zoom button{font-size:11px;padding:6px 8px;min-height:34px;background:var(--white);color:var(--blue)}
.recognition-original-zoom button[aria-pressed=true]{border-color:var(--blue)}
.recognition-original-text{margin-top:10px;font-size:12px}
.recognition-original-text pre,.recognition-source-history .recognition-sources{max-height:140px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}
.recognition-original-empty{padding:24px 0;font-size:13px;line-height:1.7}
.recognition-original-empty p{color:var(--muted)}
.recognition-source-history{font-size:12px}
.recognition-source-history:has(.recognition-sources[hidden]){display:none}
.recognition-view-tabs{display:none}
/* Step navigation stays visible under the app header while核对 long lists. */
.recognition-flow-sticky .recognition-steps{position:sticky;top:var(--shell-header-height,64px);z-index:20;background:var(--white);padding:8px 0;margin-bottom:10px;box-shadow:0 1px 0 var(--line)}
.recognition-task-toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;font-size:12px}
body:not(.auth-screen) .recognition-task-toolbar button{font-size:12px;padding:6px 10px;min-height:36px}
.recognition-text-tools{display:flex;justify-content:flex-end;margin-bottom:-6px}
body:not(.auth-screen) .recognition-text-tools button,.recognition-result-toolbar [data-rec-clear]{font-size:12px;padding:4px 6px;min-height:36px}
.recognition-draft-notice{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px;margin-bottom:10px;border:1px solid var(--line);border-radius:8px;background:var(--blue-pale);font-size:12px;line-height:1.6}
.draft-notice{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;margin:0 0 12px;border:1px solid var(--line);border-radius:8px;background:var(--blue-pale);font-size:12px;line-height:1.6}
.draft-notice>span{flex:1;min-width:180px}
.draft-notice>div{display:flex;gap:8px;flex-wrap:wrap}
.form>.draft-notice{max-width:100%}
.recognition-draft-notice>span{flex:1;min-width:180px}
.recognition-draft-notice>div{display:flex;gap:6px;flex-wrap:wrap}
body:not(.auth-screen) .recognition-draft-notice button{font-size:12px;padding:6px 8px;min-height:36px}
.recognition-flow #recognition-form textarea{height:clamp(160px,32vh,300px);max-height:300px;resize:none}
.recognition-items-list{max-height:clamp(220px,43vh,430px);overflow:auto;scrollbar-gutter:stable;padding-right:8px;border-bottom:1px solid var(--line)}
.recognition-items-list:empty{display:none}
.recognition-flow .recognition-row{display:block}
.recognition-flow .recognition-row>div:first-child{display:grid;grid-template-columns:minmax(0,1fr) 76px;gap:8px}
.recognition-flow .recognition-row>div:first-child>p{grid-column:1/-1;margin:0;font-size:12px}
.recognition-flow .recognition-row .actions{justify-content:flex-end;margin-top:8px;gap:6px}
.recognition-pager{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;font-size:12px;color:var(--muted)}
.recognition-pager>div{display:flex;align-items:center;gap:8px}
body:not(.auth-screen) .recognition-pager button{padding:6px 10px;min-height:36px;font-size:12px}
.recognition-review-main>.actions{border-top:1px solid var(--line);padding-top:10px;margin:0;justify-content:flex-end}
@media(max-width:900px){
 .recognition-comparison{grid-template-columns:minmax(0,1fr)}
 .recognition-view-tabs{display:flex;gap:6px;margin-bottom:10px}
 body:not(.auth-screen) .recognition-view-tabs button{flex:1;font-size:12px;min-height:44px;padding:8px;background:var(--white);color:var(--muted)}
 .recognition-view-tabs button[aria-pressed=true]{background:var(--blue-pale)!important;border-color:var(--blue);color:var(--blue)!important}
 .recognition-comparison[data-rec-pane=review]>.recognition-original,.recognition-comparison[data-rec-pane=source]>.recognition-review-main{display:none}
 .recognition-original-frame{height:43vh}
 body:not(.auth-screen) .recognition-original-selector button,.recognition-original-selector select,body:not(.auth-screen) .recognition-original-zoom button,body:not(.auth-screen) .recognition-pager button{min-height:44px}
 .recognition-flow .recognition-row>div:first-child{grid-template-columns:minmax(0,1fr) 64px}
 .recognition-flow .recognition-row .actions button{padding:8px;min-height:44px}
 body:not(.auth-screen) .recognition-task-toolbar button,body:not(.auth-screen) .recognition-text-tools button,.recognition-result-toolbar [data-rec-clear],body:not(.auth-screen) .recognition-draft-notice button{min-height:44px}
 .recognition-items-list{max-height:40vh}
}
@media(max-width:600px){
 body:not(.auth-screen) .intake-workbench{padding:14px}
 .intake-workbench .intake-content{padding:14px}
 body:not(.auth-screen) .intake-tabs button{min-height:44px;padding:8px 4px;font-size:12px}
 .recognition-flow>h2{font-size:17px}
 .recognition-steps{gap:5px;margin-bottom:16px}
 body:not(.auth-screen) .recognition-steps button{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:4px;padding:8px 4px;font-size:12px;min-height:72px}
 .recognition-steps .step-state{font-size:10px;min-height:12px}
 body:not(.auth-screen) .recognition-flow button.recognition-drop{min-height:112px;padding:12px;gap:10px}
 .recognition-flow .upload-symbol{width:34px;height:34px;flex-basis:34px}
 .recognition-flow .upload-copy strong{font-size:13px}
 .recognition-flow .upload-copy>span{font-size:11px}
 .recognition-flow .queue-item img,.recognition-flow .queue-file{width:36px;height:40px}
 .recognition-flow .upload-toolbar{align-items:flex-start;flex-wrap:wrap}
 .recognition-flow .upload-toolbar>span{flex:1;min-width:90px}
 .recognition-flow .upload-toolbar>button{margin-left:auto}
 body:not(.auth-screen) .recognition-flow button.recognition-source-next{min-height:44px}
 .recognition-flow #recognition-form .form-actions button{width:auto;flex:1;min-height:44px;padding:10px 8px;font-size:12px}
 .recognition-result-toolbar{align-items:flex-start;flex-wrap:wrap}
 .recognition-result-toolbar>span{align-self:center}
}
.category-card .panel-title{flex:0 0 auto;align-items:flex-start;gap:8px;min-width:0}
.category-card .panel-title h2{font-size:18px;overflow-wrap:anywhere}
.category-card .panel-title .actions{flex-shrink:0;gap:6px}
.category-card .category-children{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable;padding-right:8px}
.category-card .category-row{align-items:flex-start;min-height:52px}
.category-card .category-row>span{min-width:0;overflow-wrap:anywhere}
.category-card .category-row button{flex-shrink:0}
.category-footer{flex:0 0 auto;border-top:1px solid var(--line);padding-top:12px;margin-top:8px}
.category-schema-choice{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.category-schema-choice label{min-width:0}
.storage-meter{width:100%;height:12px;accent-color:var(--accent)}
.storage-warning{border:1px solid #d98a32;padding:14px;border-radius:10px}
@media(max-width:600px){.category-grid .category-card{height:380px}.category-schema-choice{grid-template-columns:1fr}.category-card .panel-title{flex-wrap:wrap}}
