:root{--bg: #f5f7fa;--card: #fff;--text: #1f2933;--muted: #616e7c;--line: #e4e7eb;--primary: #1f5fae;--primary-dark: #174a88;--warn: #b7791f;--ok: #2f855a;--bad: #c53030;font-family:Sarabun,Noto Sans Thai,Leelawadee UI,system-ui,sans-serif;font-size:16px;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0}h1{font-size:1.5rem;margin:0 0 .5rem}h2{font-size:1.15rem;margin:1.5rem 0 .5rem}a{color:var(--primary);text-decoration:none}.test-banner{background:#fff3cd;color:#7a5200;border-bottom:2px solid #e0a800;padding:.5rem 1rem;text-align:center;font-weight:600}.topbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1.25rem;background:var(--card);border-bottom:1px solid var(--line);flex-wrap:wrap}.brand{display:flex;align-items:center;gap:.6rem}.brand-mark{background:var(--primary);color:#fff;font-weight:700;padding:.25rem .5rem;border-radius:6px;letter-spacing:.05em}.brand-mark.big{font-size:1.5rem;display:inline-block;margin-bottom:.5rem}.brand-name{font-weight:600}.user{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.user-name{font-weight:600}.user-roles{color:var(--muted);font-size:.85rem}.body{display:flex;min-height:calc(100vh - 60px)}.sidenav{width:220px;padding:1rem .5rem;display:flex;flex-direction:column;gap:.25rem;border-right:1px solid var(--line);background:var(--card)}.sidenav a{padding:.6rem .8rem;border-radius:8px;color:var(--text)}.sidenav a.active{background:#e8f0fb;color:var(--primary);font-weight:600}.content{flex:1;padding:1.5rem;max-width:1200px}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1rem 1.25rem;margin:.75rem 0}.card-link{display:block;color:inherit}.card-link:hover{border-color:var(--primary)}.card-label{font-weight:600;margin-bottom:.35rem}.card-number{font-size:2rem;font-weight:700;color:var(--primary)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.muted{color:var(--muted)}.small{font-size:.85rem}.btn{border:1px solid var(--line);border-radius:8px;padding:.55rem 1rem;font:inherit;cursor:pointer;background:var(--card);color:var(--text);display:inline-block}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn:disabled{opacity:.5;cursor:not-allowed}.list{list-style:none;padding:0;margin:.5rem 0;display:flex;flex-direction:column;gap:.5rem}.list-item{background:var(--card);border:1px solid var(--line);border-radius:10px}.list-link{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1rem;color:inherit}.list-row{display:flex;justify-content:space-between;align-items:center;padding:.6rem 1rem}.doc-code{font-weight:700}.rev{color:var(--primary);font-weight:600}.doc-title{margin:.15rem 0}.pill{border-radius:999px;padding:.2rem .7rem;font-size:.85rem;white-space:nowrap;background:#edf2f7}.pill-warn{background:#fef3c7;color:var(--warn)}.pill-ok{background:#e6f4ea;color:var(--ok)}.pill-bad{background:#fde8e8;color:var(--bad)}.badge{font-size:.75rem;border-radius:6px;padding:.1rem .45rem;vertical-align:middle;font-weight:600}.badge-mock{background:#ede9fe;color:#5b21b6;border:1px dashed #7c3aed}.notice{background:#f3f0ff;border:1px solid #ddd6fe;border-radius:8px;padding:.75rem 1rem;margin:.75rem 0}.error-box{background:#fde8e8;color:var(--bad);border-radius:8px;padding:.75rem 1rem;margin:.75rem 0}.empty{text-align:center;padding:2.5rem 1rem;background:var(--card);border:1px dashed var(--line);border-radius:12px;margin:.75rem 0}.empty-title{font-weight:600;margin-bottom:.35rem}.search{width:100%;max-width:420px;padding:.6rem .8rem;border:1px solid var(--line);border-radius:8px;font:inherit;margin:.5rem 0}.meta{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin:.5rem 0 1rem;color:var(--muted)}.facts{display:grid;grid-template-columns:max-content 1fr;gap:.4rem 1rem;margin:1rem 0}.facts dt{color:var(--muted)}.facts dd{margin:0}.back{display:inline-block;margin-bottom:.75rem}.review-layout{display:grid;grid-template-columns:1fr 300px;gap:1rem;align-items:start}.review-side{display:flex;flex-direction:column;gap:.6rem;position:sticky;top:1rem}.login{display:flex;align-items:center;justify-content:center;min-height:80vh;padding:1rem}.login-card{max-width:420px;text-align:center;display:flex;flex-direction:column;gap:.75rem;align-items:center}@media (max-width: 800px){.body{flex-direction:column}.sidenav{width:auto;flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line)}.review-layout{grid-template-columns:1fr}.review-side{position:static}.content{padding:1rem}}.btn-sm{padding:.35rem .7rem;font-size:.9rem}.btn-link{background:none;border:0;padding:0 .25rem;color:var(--primary);cursor:pointer;font:inherit;font-size:.85rem}.danger{color:var(--bad)}.row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.row.end{justify-content:flex-end}.review-page .back{margin:0;font-size:1.2rem}.review-head{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .8rem;margin-bottom:.4rem}.review-title{font-size:1.1rem}.doc-title-inline{color:var(--muted)}.change-summary{margin:0 0 .5rem;font-size:.9rem}.change-summary summary{cursor:pointer;color:var(--primary)}.review-layout{display:grid;grid-template-columns:minmax(0,3fr) minmax(260px,1fr);gap:.75rem;align-items:start}.review-layout.expanded{grid-template-columns:minmax(0,1fr)}.review-side{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.75rem;display:flex;flex-direction:column;gap:.6rem;max-height:calc(100vh - 150px);overflow:auto;position:sticky;top:.5rem}.side-head{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.comments{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.comment{border:1px solid var(--line);border-radius:8px;padding:.5rem .6rem;background:#fcfcfd}.comment-withdrawn{opacity:.55}.comment-meta{display:flex;gap:.35rem;flex-wrap:wrap;align-items:center;margin-bottom:.25rem}.comment-text{white-space:pre-wrap}.comment-response{background:#eef6ff;border-radius:6px;padding:.4rem .5rem;font-size:.9rem}.tag{font-size:.75rem;border-radius:6px;padding:.05rem .4rem;background:#edf2f7}.sev-Major{background:#fef3c7;color:var(--warn)}.sev-Blocking{background:#fde8e8;color:var(--bad)}.comment-form{display:flex;flex-direction:column;gap:.4rem;border-top:1px solid var(--line);padding-top:.6rem}.comment-form textarea,.comment-form input,.comment-form select,.modal textarea,.form select,.form input,.form-inline select{font:inherit;padding:.45rem .55rem;border:1px solid var(--line);border-radius:8px;width:100%}.comment-form .row select{flex:1;width:auto}.success-box{background:#e6f4ea;color:var(--ok);border-radius:8px;padding:.6rem .9rem;margin:.5rem 0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:50}.modal{background:var(--card);border-radius:12px;padding:1.25rem;width:100%;max-width:480px;display:flex;flex-direction:column;gap:.7rem}.choice{display:flex;gap:.6rem;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:.6rem .75rem;cursor:pointer}.choice.disabled{opacity:.55;cursor:not-allowed}.page-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.tabs{display:flex;gap:.25rem;margin:.5rem 0}.tabs button{border:1px solid var(--line);background:var(--card);border-radius:8px;padding:.35rem .8rem;font:inherit;cursor:pointer}.tabs button.active{background:#e8f0fb;color:var(--primary);border-color:#c5d8f2;font-weight:600}.form{display:flex;flex-direction:column;gap:.75rem;max-width:560px}.form label,.form-inline label{display:flex;flex-direction:column;gap:.25rem;font-weight:600}.form-inline{display:flex;gap:.75rem;align-items:flex-end;flex-wrap:wrap}.form-inline label.check{flex-direction:row;align-items:center;font-weight:400}.table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:hidden}.table th,.table td{text-align:left;padding:.5rem .7rem;border-bottom:1px solid var(--line);font-size:.92rem}.table th{background:#f8fafc;color:var(--muted);font-weight:600}.progress{height:8px;background:#edf2f7;border-radius:999px;overflow:hidden;margin:.75rem 0 .25rem;max-width:420px}.progress-bar{height:100%;background:var(--primary)}.actions{margin-top:1rem}@media (max-width: 900px){.review-layout{grid-template-columns:minmax(0,1fr)}.review-side{position:static;max-height:none}.pdfjs-scroll{height:75vh}.pdf-toolbar{justify-content:center}}.pdf{display:flex;flex-direction:column;min-width:0}.pdf-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.35rem .75rem;background:var(--card);border:1px solid var(--line);border-radius:10px 10px 0 0;padding:.3rem .5rem}.pdfjs-scroll{height:calc(100vh - 190px);min-height:420px;overflow:auto;background:#525659;border:1px solid var(--line);border-top:0;border-radius:0 0 10px 10px;padding:12px}.pdfjs-page{margin:0 auto 12px;background:#fff;box-shadow:0 1px 4px #00000059}.pdfjs-page canvas{display:block}.pdf-full-page{display:flex;flex-direction:column;gap:.5rem}.pdf-full .pdfjs-scroll{height:calc(100vh - 140px)}.pdf-full-main{padding:.5rem .75rem}.refreshing{position:fixed;right:1rem;bottom:1rem;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:.25rem .75rem;z-index:40}.btn-danger{background:var(--bad);color:#fff;border:1px solid var(--bad)}.btn-danger:disabled,.btn-primary:disabled{opacity:.7}.spinner{display:inline-block;width:.85em;height:.85em;margin-right:.4em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:sss-spin .7s linear infinite;vertical-align:-.1em}@keyframes sss-spin{to{transform:rotate(360deg)}}.confirm-message{white-space:pre-wrap}
