.pat-launch{margin:12px 0;min-height:44px}
.pat-dialog{border:1px solid #c9ccbf;border-radius:18px;max-width:min(94vw,740px);width:100%;max-height:90vh;padding:0;background:#fffaf2;color:#29362d}
.pat-dialog::backdrop{background:rgba(0,0,0,.5)}
.pat-header{padding:14px 18px;border-bottom:1px solid #ddd;display:flex;justify-content:space-between;gap:12px;align-items:center}
.pat-header h2{margin:0;font-size:1.25rem}.pat-layout{padding:16px;display:grid;gap:13px;overflow:auto;max-height:calc(90vh - 72px)}
.pat-layout input:not([type=checkbox]):not([type=file]),.pat-layout textarea{font:inherit;max-width:100%;padding:9px;border:1px solid #b9c5ba;border-radius:9px;background:white;color:#232}
.pat-layout input[type=file]{max-width:100%}.pat-layout button{width:fit-content;min-height:44px}
.pat-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px 0;border-bottom:1px solid #ddd}
.pat-row b,.pat-row small,.pat-row .pat-confirm{grid-column:1 / -1}.pat-row label{display:block;font-size:.9rem}.pat-row input[type=number]{width:100%}
.pat-warnings{color:#884b23}.pat-tip,.pat-status{font-size:.9rem;color:#425248}.pat-ai-review{border:1.5px solid #bd8a55;border-radius:10px;padding:12px;display:grid;gap:10px}.pat-ai-review[hidden]{display:none}
.pat-preview canvas{display:block;max-width:100%;border:1px solid #ccc}
.pat-layout details{border:1px solid #ddd;padding:10px;border-radius:12px}.pat-layout textarea{width:100%}
@media(prefers-reduced-motion:reduce){.pat-dialog *{animation:none!important;transition:none!important}}
/* Barbara feedback: one confirmation, explanation beside the button, visible save confirmation */
.pat-all{display:flex;gap:8px;align-items:center;min-height:44px;font-weight:600;margin:10px 0}
.pat-all input{width:22px;height:22px}
.pat-why{margin:6px 0 0}
.pat-row .ghost.small{min-height:44px}
.pat-saved{background:#eef6ef;border:1px solid #9cc3a4;border-radius:12px;padding:12px 14px;margin:0 0 12px;color:#23402b}
.pat-saved.errbox{background:#fdf1ea;border-color:#e9b9a4;color:#6b2a14}
.pat-saved p{margin:4px 0 8px}
.pat-check{border:1px solid #c9b48a;background:#fff8e8;border-radius:8px;padding:.5rem .75rem;margin:.5rem 0}.pat-check h3{font-size:1rem;margin:0 0 .25rem}.pat-check ul{margin:.25rem 0;padding-left:1.1rem}.pat-check li{margin:.15rem 0}.pat-check .hint,.pat-check-ok{margin:.25rem 0 0}
.pat-pipknot{display:flex;align-items:center;gap:10px;margin:0 0 8px}.pat-pipknot img{width:64px;height:auto;flex:none}.pat-pipknot-text{font-size:.95rem}
/* Pattern trust (dev): verdict line, fix list and the fix sheet. New classes only. */
.pt-verdict{display:flex;gap:8px;align-items:center;font-weight:700;margin:.15rem 0 .35rem}.pt-dot{width:14px;height:14px;border-radius:50%;flex:none;background:#5f7a5c}
.pt-verdict[data-level=red] .pt-dot{background:#b4532a}.pt-verdict[data-level=amber] .pt-dot{background:#c98a2b}
.pat-check .pt-fix,.pat-check .pt-chlist{list-style:none;padding:0;margin:.25rem 0}.pt-item{display:flex;gap:8px;justify-content:space-between;align-items:center;border-top:1px solid #e6dccb;padding:6px 0}
.pt-btns{display:flex;flex-direction:column;gap:6px;flex:none}.pt-btns button,.pt-box .pt-undo,.pt-box .pt-undoall,.pt-more{min-height:44px;white-space:nowrap}
.pt-small{font-weight:600;margin:.4rem 0 0;font-size:.9rem}.pat-check .pt-tips{margin:.15rem 0}
.pt-changed{margin:.5rem 0 0;padding:8px 10px}.pt-chlist li{display:flex;justify-content:space-between;align-items:center;gap:8px}
.pt-sheet{margin:.5rem 0}.pt-sheet h3{margin:0 0 4px}.pt-says{margin:0 0 8px}
.pt-sw{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:8px 0}.pt-side{border:1px solid #e6dccb;border-radius:10px;padding:8px;text-align:center;font-size:.85rem;display:flex;flex-direction:column;background:#fff}
.pt-chip{height:56px;border-radius:8px;border:1px solid #0002;margin-bottom:6px}.pt-chip.pt-none{background:repeating-linear-gradient(45deg,#eee 0 6px,#ddd 6px 12px)}
.pt-others{margin:4px 0;font-size:.85rem}.pt-alt{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 10px}
.pt-altbtn{flex:1 1 80px;min-height:44px;border:1.5px solid #e6dccb;border-radius:8px;background:#fff;color:#3b2f28;font-size:.8rem;padding:4px;display:flex;flex-direction:column;align-items:center}
.pt-altbtn[aria-pressed=true]{border-color:#5f7a5c;box-shadow:0 0 0 2px #5f7a5c33}.pt-altbtn i{display:block;width:100%;height:20px;border-radius:5px;margin-bottom:2px}
.pt-typerow{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;margin:6px 0 10px}.pt-type{font-size:.9rem}.pt-type input{display:block;width:8em;min-height:44px}
.pt-actions{gap:8px}.pt-err{color:#6b2a14;margin:6px 0 0}.pt-err:empty{display:none}.pt-tag{display:block;color:#3d5a3a;font-weight:600}
/* Flow pass: a short review sheet. One line per color, the tick and Create project pinned at the bottom. */
.pat-pin{position:sticky;bottom:-16px;margin:0 -16px -16px;padding:10px 16px 14px;background:#fffaf2;border-top:1px solid #e6dccb;box-shadow:0 -6px 14px #29362d14;display:grid;gap:6px;z-index:2}
.pat-pin .pat-all{margin:0}.pat-pin .pat-why{margin:0}
.pat-row{grid-template-columns:auto minmax(0,1fr) 7.5em 7.5em auto;align-items:center;gap:4px 10px;padding:6px 0}
.pat-row b{grid-column:auto;white-space:nowrap}.pat-row>small:not(.pat-warnings){grid-column:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;color:#425248}
.pat-row .pat-warnings{grid-column:1 / -1;font-size:.8rem;order:9}.pat-row label{font-size:.8rem}.pat-row input[type=number]{padding:6px!important}
@media(max-width:560px){.pat-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.pat-row b{grid-column:1 / 2}.pat-row>small:not(.pat-warnings){grid-column:2 / -1}
 .pat-row label{display:flex;align-items:center;gap:6px}.pat-row label input[type=number]{min-width:0;flex:1}}
/* ci005-80: number inputs never clip ("Unkn", "1(") */
.pat-row input[type=number]{min-width:4.5em;height:44px;min-height:44px;box-sizing:border-box}
@media(max-width:560px){.pat-row label input[type=number]{min-width:4.5em;flex:1 0 4.5em}}
@media(max-width:370px){.pat-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.pat-row .ghost.small{grid-column:1 / -1;justify-self:start}}
