:root{--p:#dc2626;--pg:#b91c1c;--ink:#111827;--mut:#6b7280;--bd:#e5e7eb;--bg:#f5f6f8;--card:#fff;--shadow:0 1px 2px rgba(0,0,0,.04),0 1px 3px rgba(0,0,0,.06)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0}a.link{color:var(--p);text-decoration:none;font-weight:600;font-size:.85rem}a.link:hover{text-decoration:underline}.muted{color:var(--mut)}.sm{font-size:.85rem}.xs{font-size:.75rem}.pad{padding:1rem}.row{display:flex;align-items:center;gap:.6rem}.between{justify-content:space-between}.end{justify-content:flex-end}.trunc{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yes{color:#15803d;font-weight:600}.no{color:#b91c1c;font-weight:600}.btn{display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--bd);background:#fff;color:var(--ink);padding:.45rem .85rem;border-radius:.5rem;font-size:.85rem;font-weight:600;cursor:pointer;transition:.12s}.btn:hover{background:#f3f4f6}.btn:disabled{opacity:.45;cursor:default}.btn-sm{padding:.3rem .65rem;font-size:.8rem}.btn-p{background:var(--p);border-color:var(--p);color:#fff}.btn-p:hover{background:var(--pg)}.btn-g{background:#16a34a;border-color:#16a34a;color:#fff}.btn-g:hover{background:#15803d}.btn-r{background:#dc2626;border-color:#dc2626;color:#fff}.btn-r:hover{background:#b91c1c}.st-btn-info{background:#fffbeb;border-color:#fde68a;color:#92400e}.st-btn-hold{background:#f5f3ff;border-color:#ddd6fe;color:#5b21b6}.big{padding:.6rem 1.2rem;font-size:.95rem;width:100%;justify-content:center}.input{border:1px solid var(--bd);border-radius:.5rem;padding:.5rem .65rem;font-size:.85rem;width:100%;background:#fff}.input:focus{outline:2px solid #fca5a5;outline-offset:-1px}.input.compact{width:auto;padding:.25rem .4rem}textarea.input{resize:vertical}.lbl{display:block;font-size:.78rem;font-weight:600;color:var(--mut);margin:.2rem 0}.card{background:var(--card);border:1px solid var(--bd);border-radius:.75rem;padding:1.25rem;box-shadow:var(--shadow)}.center{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}.wrap{max-width:1000px;margin:0 auto;padding:1.5rem}.signin{max-width:360px;text-align:center}.brand{font-weight:800;letter-spacing:.12em;color:var(--p)}.signin .brand{font-size:1.1rem;margin-bottom:.5rem}.signin h1{font-size:1.6rem;margin:.2rem 0}.badge{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.72rem;font-weight:700;white-space:nowrap}.st-submitted{background:#eef2ff;color:#3730a3}.st-under_review{background:#dbeafe;color:#1e40af}.st-follow_up{background:#fef3c7;color:#92400e}.st-on_hold{background:#ede9fe;color:#5b21b6}.st-approved{background:#dcfce7;color:#166534}.st-rejected{background:#fee2e2;color:#991b1b}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--bd);padding:.6rem 1.2rem;position:sticky;top:0;z-index:20}.sm-brand{font-size:1rem;font-weight:800;letter-spacing:.1em}.tabs{display:flex;gap:.3rem}.tab{border:none;background:none;padding:.4rem .8rem;border-radius:.5rem;cursor:pointer;font-weight:600;color:var(--mut)}.tab:hover{background:#f3f4f6}.tab.active{background:#fef2f2;color:var(--p)}main{flex:1;min-height:0}.master{display:grid;grid-template-columns:340px 1fr;height:calc(100vh - 53px)}.list-pane{border-right:1px solid var(--bd);background:#fff;overflow-y:auto;display:flex;flex-direction:column}.list-controls{display:flex;gap:.5rem;padding:.75rem;position:sticky;top:0;background:#fff;border-bottom:1px solid var(--bd);z-index:2}.list{list-style:none;margin:0;padding:0}.list li+li{border-top:1px solid #f1f2f4}.itm{display:flex;gap:.6rem;align-items:center;width:100%;text-align:left;background:none;border:none;padding:.7rem .8rem;cursor:pointer}.itm:hover{background:#f9fafb}.itm.sel{background:#fef2f2;box-shadow:inset 3px 0 0 var(--p)}.detail-pane{overflow-y:auto;padding:1.5rem}@media (max-width:780px){.master{grid-template-columns:1fr;height:auto}.detail-pane{border-top:1px solid var(--bd)}}.avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#dc2626,#7f1d1d);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;flex-shrink:0}.sm-av{width:34px;height:34px;font-size:.78rem}.empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--mut)}.empty-ic{font-size:2.5rem;opacity:.4}.detail{max-width:880px;margin:0 auto}.dhead{display:flex;align-items:flex-start;gap:.9rem;margin-bottom:1rem}.dhead .avatar{width:48px;height:48px;font-size:1rem}.dname{font-size:1.4rem}.block-h{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--mut);margin:1.6rem 0 .6rem;border-bottom:1px solid var(--bd);padding-bottom:.3rem}.flags{background:#fffbeb;border:1px solid #fde68a;border-radius:.6rem;padding:.8rem 1rem;margin-bottom:1rem}.flags-h{font-weight:700;color:#92400e;margin-bottom:.3rem}.flags ul{margin:0;padding-left:1.1rem}.flags li{margin:.15rem 0}.flags li.danger{color:#991b1b;font-weight:600}.flags li.warn{color:#92400e}.actionbar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;background:#fff;border:1px solid var(--bd);border-radius:.6rem;padding:.6rem .8rem;position:sticky;top:53px;z-index:10;box-shadow:var(--shadow)}.docs{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.doc{border:1px solid var(--bd);border-radius:.6rem;overflow:hidden;background:#fff}.doc-head{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .7rem;border-bottom:1px solid var(--bd);background:#fafafa}.doc-title{font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-body{background:#f3f4f6}.doc-img{display:block;width:100%;max-height:320px;object-fit:contain;background:#fff}.doc-frame{width:100%;height:360px;border:0;background:#fff}.sections{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1rem}.section{border:1px solid var(--bd);border-radius:.6rem;padding:.9rem 1rem;background:#fff}.section-h{font-size:.95rem;margin-bottom:.5rem}.kv{display:flex;flex-direction:column;gap:.25rem}.kv-row{display:grid;grid-template-columns:42% 58%;gap:.5rem;font-size:.85rem;padding:.15rem 0;border-bottom:1px dashed #f1f2f4}.kv-k{color:var(--mut)}.kv-v{word-break:break-word}.stack{display:flex;flex-direction:column;gap:.4rem}.subcard{background:#f9fafb;border:1px solid var(--bd);border-radius:.4rem;padding:.5rem .6rem}.checklist{display:flex;flex-direction:column;gap:.5rem}.check{display:flex;align-items:center;gap:.6rem;border:1px solid var(--bd);border-radius:.5rem;padding:.6rem .8rem;cursor:pointer;background:#fff}.check:hover{background:#f9fafb}.check.on{background:#f0fdf4;border-color:#86efac}.check input{width:18px;height:18px;accent-color:#16a34a}.chat{display:flex;flex-direction:column;gap:.5rem;background:#f9fafb;border:1px solid var(--bd);border-radius:.6rem;padding:.8rem;max-height:300px;overflow-y:auto}.bubble{align-self:flex-end;max-width:78%;background:#dc2626;color:#fff;border-radius:.8rem .8rem .2rem;padding:.5rem .75rem}.bubble-body{white-space:pre-wrap;font-size:.88rem}.bubble-meta{font-size:.68rem;opacity:.85;margin-top:.25rem;text-align:right}.compose{display:flex;gap:.5rem;align-items:flex-end;margin-top:.6rem}.compose textarea{flex:1}.timeline{display:flex;flex-direction:column;gap:.5rem}.tl{border-left:3px solid var(--bd);padding:.2rem 0 .5rem .8rem}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#11182780;display:flex;align-items:center;justify-content:center;z-index:50;padding:1rem}.modal{background:#fff;border-radius:.8rem;padding:1.4rem;width:100%;max-width:440px;box-shadow:0 20px 40px #0003}.modal em{font-style:normal;font-weight:700}table{width:100%;border-collapse:collapse;font-size:.85rem}th,td{text-align:left;padding:.55rem .6rem;border-bottom:1px solid var(--bd)}th{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--mut)}
