body{margin:0;font-family:Arial,sans-serif;background:#eef2f7;color:#1f2937}*{box-sizing:border-box}.page{min-height:100vh}.center{display:grid;place-items:center;padding:24px}.auth-panel{width:min(420px,100%)}.panel{background:#fff;border:1px solid #d8e1ea;border-radius:10px;padding:18px}.topbar{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 20px;background:#fff;border-bottom:1px solid #d8e1ea}.topbar-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.topbar-actions{display:flex;gap:12px}.dashboard,.content{display:grid;gap:16px;padding:16px}.dashboard{grid-template-columns:320px 1fr}.detail-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:16px}.public-page{min-height:100vh;display:grid;justify-items:center;align-items:start;padding:24px 14px}.public-card{width:min(720px,100%)}.public-switch{display:flex;gap:12px;margin:12px 0 16px}.public-switch a{color:#1d4ed8;text-decoration:none}.form-table{width:100%;border-collapse:collapse;margin:12px 0 16px}.form-table th,.form-table td{border:1px solid #d8e1ea;padding:12px;vertical-align:top}.form-table th{width:180px;text-align:left;background:#f8fafc}.public-actions{display:flex;justify-content:flex-end}.stack{display:grid;gap:12px}.field-row{border:1px solid #e4e9ef;border-radius:10px;padding:12px;background:#fafbfc}.field-grid{display:grid;grid-template-columns:1fr 1fr 160px 1fr;gap:8px}.form-panel{align-self:start}.form-stack{display:grid;gap:14px;margin:12px 0}.form-field{display:grid;gap:6px}.form-field>span{color:#374151;font-size:14px;font-weight:700}.field-meta{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:8px}.password-setting{display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:10px;align-items:center;margin-top:10px}.section-head,.inline-actions{display:flex;justify-content:space-between;gap:12px;align-items:center}.share-panel{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:center}.share-links{display:grid;gap:12px}.qr-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.share-panel a{display:block;margin:8px 0 12px;word-break:break-all;color:#1d4ed8}.qr{width:150px;height:150px;justify-self:end}.progress-list{display:grid;gap:12px;margin-top:12px}.progress-item{border:1px solid #d8e1ea;border-radius:10px;padding:10px 12px;background:#fafbfc}.progress-item summary{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,auto);gap:8px;align-items:center;cursor:pointer}.progress-summary-meta{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px 14px;color:#374151;font-size:14px;text-align:right}.status-chip{color:#1d4ed8;font-weight:700}.summary-field{white-space:nowrap}.summary-field b{color:#6b7280;font-weight:400}.progress-body{margin-top:12px}.progress-table{width:100%;border-collapse:collapse}.progress-table th,.progress-table td{border:1px solid #d8e1ea;padding:10px;text-align:left;vertical-align:top}.progress-table th{width:180px;background:#f8fafc}.progress-section{margin-top:12px}.audit-list{margin:8px 0 0;padding-left:20px}.upload-box{display:grid;gap:10px}.preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px}.preview-grid img{width:100%;aspect-ratio:1;object-fit:cover;border:1px solid #d8e1ea;border-radius:8px}.image-preview-button{width:100%;padding:0;background:#fff;border:1px solid #d8e1ea;border-radius:8px;overflow:hidden}.image-preview-button img{display:block;cursor:zoom-in}.image-viewer{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:24px;background:#0f172ac7}.image-viewer-content{position:relative;display:grid;gap:10px;justify-items:center;max-width:min(960px,100%);max-height:100%;padding:16px;background:#fff;border-radius:8px}.image-viewer-content>img{display:block;max-width:min(880px,90vw);max-height:78vh;object-fit:contain}.image-viewer-close{width:auto;justify-self:end;padding:7px 12px;background:#e5eefc;color:#1d4ed8}.list{display:grid;gap:10px}.list-item{width:100%;text-align:left;padding:12px;border:1px solid #d8e1ea;border-radius:10px;background:#fff;color:#1f2937}.project-list-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:stretch}.list-item-open{display:grid;gap:4px;justify-items:start;padding:0;background:transparent;color:#1f2937;text-align:left}.project-delete,.record-actions .danger{width:auto;background:#b91c1c;color:#fff}.record-actions{justify-content:flex-start}.list-item.row{display:grid;grid-template-columns:1.5fr .8fr .8fr;gap:8px;align-items:center}.record-item{cursor:default}.record-summary{display:grid;grid-template-columns:1.4fr .7fr .8fr 1fr;gap:10px;align-items:center;cursor:pointer}.record-details{display:grid;gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid #e4e9ef}.password-gate{display:grid;gap:10px;max-width:420px;margin:24px auto 10px}.password-gate p{margin:0;font-weight:700}.muted{color:#6b7280}.error{color:#b91c1c}.checkline{display:flex;gap:8px;align-items:center}input,button,textarea,select{width:100%;padding:10px 12px;border:1px solid #cfd8e3;border-radius:8px;background:#fff;color:#111827}input[type=checkbox]{width:auto;margin:0}button{cursor:pointer;background:#2563eb;color:#fff;border:0}.ghost{width:auto;background:#e5eefc;color:#1d4ed8}.text-button{width:auto;background:transparent;color:#1f2937;border:1px solid #d8e1ea}.two-col{display:grid;grid-template-columns:1fr 180px;gap:10px}@media(max-width:980px){.dashboard,.detail-grid,.field-grid,.share-panel,.qr-grid,.two-col,.password-setting,.record-summary,.progress-item summary{grid-template-columns:1fr}.progress-summary-meta{justify-content:flex-start;text-align:left}.qr{justify-self:start}}
