:root{--bg:#f3f5f7;--white:#fff;--ink:#1b2737;--muted:#687789;--line:#dfe5eb;--nav:#192a3b;--nav2:#23394d;--accent:#db4c53;--accent2:#c23740;--teal:#0d897d;--lightteal:#eaf7f3;--warning:#a55d14;--radius:12px;--shadow:0 8px 24px rgba(22,43,63,.045)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--bg);font-size:14px}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit}img{max-width:100%}p{line-height:1.55}h1,h2,h3{letter-spacing:-.035em}h1{font-size:30px;margin:0 0 6px}h2{font-size:22px;margin:0 0 7px}h3{font-size:16px;margin:0 0 9px}.muted{color:var(--muted)}.tiny{font-size:11px}.small{font-size:12px}.bold{font-weight:700}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.hidden{display:none!important}.row{display:flex;align-items:center;gap:10px;min-width:0;flex-wrap:wrap}.grow{flex:1}.between{justify-content:space-between}.gap4{gap:4px}.nowrap{flex-wrap:nowrap}.right{text-align:right}.mt8{margin-top:8px}.mt12{margin-top:12px}.mt18{margin-top:18px}.mt24{margin-top:24px}.mb0{margin-bottom:0}.mb8{margin-bottom:8px}.space{height:18px}.grid{display:grid;gap:16px}.grid2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid4{grid-template-columns:repeat(4,minmax(0,1fr))}
.btn{border:1px solid transparent;border-radius:9px;background:var(--nav);color:#fff;padding:10px 14px;font-weight:650;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;line-height:1.15;transition:background .15s,border-color .15s}.btn:hover{background:var(--nav2)}.btn.primary{background:var(--accent)}.btn.primary:hover{background:var(--accent2)}.btn.teal{background:var(--teal)}.btn.teal:hover{background:#096e64}.btn.outline{background:white;color:var(--ink);border-color:#d7dfe7}.btn.outline:hover{background:#f5f7fa}.btn.ghost{background:transparent;color:var(--muted);padding:7px;border:0}.btn.ghost:hover{color:var(--ink);background:#edf1f5}.btn.sm{font-size:12px;padding:6px 10px;min-height:31px}.btn.danger{color:#aa2936;border-color:#f0d1d4;background:white}.btn.danger:hover{background:#fff1f1}.btn.block{width:100%}.btn.active{background:#dcece9!important;color:#096a60!important;border-color:#a9d2c7!important}.btn[aria-pressed=true]{background:#e6eff2;color:#0d6b6c;border-color:#b2d3d5}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #93c4d1;outline-offset:2px}
.field{display:flex;flex-direction:column;gap:7px;min-width:0}.field label,.label{font-size:12px;font-weight:700;color:#435369}.field input,.field textarea,.field select,input.ui,select.ui,textarea.ui{width:100%;border:1px solid #cdd7e1;background:#fff;padding:10px 11px;border-radius:8px;outline:0;min-height:40px;color:var(--ink)}.field textarea,textarea.ui{resize:vertical;min-height:86px}.field input:focus,.field textarea:focus,.field select:focus,input.ui:focus{border-color:var(--teal);box-shadow:0 0 0 3px #0d897d16}.help{font-size:12px;color:var(--muted);line-height:1.5}.warning{padding:12px 14px;background:#fff7e9;border:1px solid #eed7ae;border-radius:9px;color:#8d581b;font-size:12px;line-height:1.5}.alert{padding:12px 14px;border:1px solid #f0cece;background:#fff3f3;border-radius:9px;color:#a23d45;font-size:12px}.badge{border:1px solid var(--line);border-radius:30px;color:#5b6b7d;font-weight:750;font-size:11px;padding:4px 8px;display:inline-flex;align-items:center;gap:5px}.badge.open{color:#a86119;background:#fff7ec;border-color:#f1dabd}.badge.done{color:#06776d;background:#ebf8f3;border-color:#b6e0d5}.badge.closed{color:#5e6875;background:#eef1f3}.pill{border-radius:50%;width:8px;height:8px;background:var(--accent);display:inline-block}
.card{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:var(--radius);padding:22px;min-width:0}.card.clickable{cursor:pointer;transition:border-color .15s,transform .15s}.card.clickable:hover{border-color:#93bac1;transform:translateY(-1px)}.card h3{margin:0 0 8px}.empty{border:1px dashed #c4d1dc;background:#fafcfd;padding:40px 22px;text-align:center;border-radius:12px;color:var(--muted)}.empty b{display:block;color:var(--ink);font-size:16px;margin-bottom:9px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 18px}.section-title h1,.section-title h2{margin:0}.logo{font-size:22px;font-weight:850;letter-spacing:-.07em;color:#fff}.logo span{color:#f59a91}.subbrand{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#93a8bb;margin-top:4px}.app{min-height:100vh;display:flex}.sidebar{width:230px;flex:0 0 230px;background:var(--nav);display:flex;flex-direction:column;color:#d6e1eb;min-height:100vh}.brand{padding:27px 23px 25px;border-bottom:1px solid #ffffff12}.nav{padding:20px 10px;display:flex;flex-direction:column;gap:6px}.nav-label{font-size:10px;text-transform:uppercase;letter-spacing:.13em;font-weight:750;color:#91a5bb;padding:0 13px;margin:7px 0}.nav button{display:block;text-align:left;background:transparent;border:0;color:#bccbd9;border-radius:9px;font-weight:600;padding:12px 13px;font-size:13px}.nav button:hover,.nav button.on{background:var(--nav2);color:white}.sidebar-foot{margin-top:auto;padding:20px 15px;border-top:1px solid #ffffff16;font-size:12px}.main{flex:1;min-width:0}.topbar{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 32px;gap:12px}.topbar-title{font-weight:800;font-size:15px}.content{max-width:1320px;margin:0 auto;padding:32px}.project-card-thumb{height:110px;border-radius:8px;background:#e8edf2;display:flex;align-items:center;justify-content:center;margin-bottom:14px;overflow:hidden;border:1px solid #e0e7ed}.project-card-thumb img{width:100%;height:100%;object-fit:cover;object-position:top}.stat{font-size:32px;font-weight:850;letter-spacing:-.06em}.statlabel{font-size:12px;color:var(--muted)}.divider{height:1px;background:var(--line);margin:22px 0}.screen-card{padding:12px}.screen-thumb{height:140px;border-radius:9px;overflow:hidden;background:#edf1f5;display:flex;align-items:center;justify-content:center;border:1px solid #e2e8ee}.screen-thumb img{width:100%;height:100%;object-fit:cover;object-position:top}.screen-thumb .live-icon{font-size:35px;color:#8a98a7}.screen-name{font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hint-box{padding:16px;border:1px solid #d7e9e5;background:#f3faf8;border-radius:10px;line-height:1.55}.toolbar-sep{height:24px;width:1px;background:var(--line);margin:0 4px}.review-header{min-height:64px;background:var(--nav);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 18px;flex-wrap:wrap}.review-header .logo{font-size:18px}.review-layout{height:calc(100vh - 64px);min-height:500px;display:grid;grid-template-columns:minmax(0,1fr) 350px}.review-work{display:flex;flex-direction:column;min-height:0;min-width:0;background:#e6ebf0}.review-tabs{display:flex;align-items:center;justify-content:space-between;gap:9px;min-height:57px;padding:9px 15px;border-bottom:1px solid #d9e0e8;background:#fff;flex-wrap:wrap}.tabs{display:inline-flex;background:#eef2f6;border:1px solid #e1e6ec;padding:3px;border-radius:8px;gap:2px}.tabs button{border:0;background:transparent;border-radius:6px;padding:8px 11px;color:#596a7e;font-size:12px;font-weight:750;cursor:pointer}.tabs button.on{background:#fff;color:var(--ink);box-shadow:0 2px 6px #00000013}.tools{background:white;min-height:59px;display:flex;align-items:center;gap:6px;border-bottom:1px solid var(--line);padding:9px 15px;flex-wrap:wrap}.tool{display:inline-flex;align-items:center;gap:6px;border-radius:8px;border:1px solid transparent;background:#fff;color:#4d5b6a;padding:8px 9px;min-height:37px;font-weight:700;font-size:12px}.tool svg{height:16px;width:16px;stroke:currentColor;fill:none;stroke-width:1.8}.tool:hover{background:#eff4f7}.tool.on{background:#e6f4f1;color:#096b61;border-color:#add8cd}.swatch{width:22px;height:22px;border:3px solid white;border-radius:50%;box-shadow:0 0 0 1px #bdc6ce;cursor:pointer}.swatch.on{box-shadow:0 0 0 2px #283c4b}.zoom-val{font-size:12px;display:inline-block;min-width:45px;text-align:center;color:var(--muted)}.stage-scroll{flex:1;overflow:auto;min-height:0;padding:22px 15px 50px;position:relative;overscroll-behavior:contain}.stage-sizer{position:relative;margin:0 auto}.page{transform-origin:0 0;position:absolute;top:0;left:0;box-shadow:0 7px 24px #1726352e;background:#fff;overflow:hidden}.page>img{display:block;width:100%;height:100%;user-select:none;pointer-events:none}.page iframe{display:block;border:0;width:100%;height:100%;background:white}.draw-layer{position:absolute;inset:0;width:100%;height:100%;touch-action:none;user-select:none;cursor:crosshair}.pin-layer{position:absolute;inset:0;pointer-events:none}.pin-number{position:absolute;pointer-events:auto;transform:translate(-50%,-50%);width:27px;height:27px;border-radius:50%;border:2px solid #fff;background:#d9454f;color:#fff;box-shadow:0 2px 9px #1c293960;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;cursor:pointer}.pin-number.done{background:#6d8585;opacity:.65}.pin-number.selected{outline:3px solid #ffcb55;outline-offset:2px}.review-side{border-left:1px solid #dae1e8;background:#fff;min-width:0;display:flex;flex-direction:column;overflow:auto}.review-side-title{padding:17px 18px;border-bottom:1px solid var(--line)}.review-side-body{padding:16px;display:flex;flex-direction:column;gap:11px}.note{border:1px solid #dce3ea;border-radius:10px;padding:13px;cursor:pointer;background:#fff}.note:hover,.note.selected{border-color:#7eaeb1;background:#f8fcfb}.note.done{opacity:.68}.note-top{display:flex;align-items:center;gap:7px;margin-bottom:9px}.note-no{background:#d9454f;border-radius:7px;min-width:25px;height:25px;color:#fff;font-weight:750;display:grid;place-items:center;font-size:11px}.note.done .note-no{background:#78908b}.note-text{white-space:pre-wrap;word-wrap:break-word;font-size:13px;line-height:1.5}.compose{border:1px solid #bed6d3;background:#f3faf8;border-radius:12px;padding:13px;position:sticky;bottom:10px;z-index:2;box-shadow:0 8px 24px #162a2c15}.compose textarea{width:100%;border:1px solid #bfcfce;padding:10px;border-radius:8px;min-height:93px;resize:vertical;background:#fff}.review-foot{border-top:1px solid var(--line);padding:15px 16px;margin-top:auto;background:#fff}.review-stage-empty{margin:30px auto;max-width:550px;text-align:center;background:#fff;padding:45px 25px;border:1px dashed #cad4df;border-radius:11px}.login-layout{min-height:100vh;background:linear-gradient(140deg,#122638,#273d4e);display:flex;align-items:center;justify-content:center;padding:20px}.login-card{background:#fff;width:min(440px,100%);padding:38px;border-radius:17px;box-shadow:0 30px 80px #050f1b38}.login-card .logo{color:var(--nav);font-size:27px}.login-card .logo span{color:var(--accent)}.login-card h1{font-size:26px;margin-top:28px}.login-card .field{margin-top:20px}.login-card .btn{margin-top:21px}.modal{position:fixed;inset:0;z-index:30;background:#101c2a9d;display:flex;align-items:center;justify-content:center;padding:18px}.modal-box{width:min(570px,100%);background:#fff;border-radius:13px;padding:25px;max-height:90vh;overflow:auto;box-shadow:0 30px 80px #0d1b2855}.modal-box h2{margin-bottom:16px}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%,20px);border-radius:9px;padding:13px 18px;background:#1c3346;color:#fff;box-shadow:0 9px 24px #0003;max-width:min(530px,calc(100vw - 30px));opacity:0;pointer-events:none;transition:.22s;z-index:50}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.error{background:#a72c3b}.decision{border-left:3px solid var(--teal);padding:11px 14px;background:#f2faf7;margin-bottom:9px;border-radius:0 8px 8px 0}.data-table{width:100%;border-collapse:collapse}.data-table th{text-align:left;font-size:12px;color:#677587}.data-table td,.data-table th{padding:12px 9px;border-bottom:1px solid var(--line)}.responsive-break{display:none}
@media(max-width:1100px){.review-layout{grid-template-columns:minmax(0,1fr) 300px}.content{padding:23px}.topbar{padding:0 23px}.grid3{grid-template-columns:repeat(2,minmax(0,1fr))}.grid4{grid-template-columns:repeat(2,minmax(0,1fr))}.sidebar{width:195px;flex-basis:195px}}
@media(max-width:780px){.sidebar{width:66px;flex-basis:66px}.sidebar .brand{padding:22px 8px}.sidebar .logo{font-size:14px;text-align:center}.sidebar .subbrand,.sidebar .nav-label,.sidebar-foot,.sidebar .nav button .txt{display:none}.sidebar .nav{padding:12px 6px}.sidebar .nav button{text-align:center;font-size:20px;padding:9px 0}.topbar{height:auto;min-height:59px;padding:10px 17px}.content{padding:17px}.grid2,.grid3{grid-template-columns:1fr}.review-layout{height:auto;min-height:calc(100vh - 64px);display:flex;flex-direction:column}.review-work{min-height:520px;height:68vh}.review-side{min-height:350px;max-height:none;overflow:visible}.review-side-body{max-height:430px;overflow:auto}.review-header{padding:11px}.tools{gap:5px}.review-header .row{flex-wrap:wrap}.responsive-break{display:initial}}
@media(max-width:500px){.card{padding:16px}.grid4{grid-template-columns:1fr 1fr;gap:8px}.review-work{height:65vh;min-height:480px}.tools .tool span{display:none}.tools{gap:3px;padding:7px}.tool{padding:8px}.review-tabs{padding:8px}.stage-scroll{padding:16px 5px 35px}.login-card{padding:26px}.modal-box{padding:18px}.content h1{font-size:25px}.section-title{align-items:flex-start}}
@media print{.sidebar,.topbar,.review-header,.tools,.review-tabs,.review-side,.btn{display:none!important}.main,.content{width:100%;padding:0}.card{box-shadow:none}}
#screen-content{position:absolute;inset:0;width:100%;height:100%;overflow:hidden}#screen-content img{display:block;width:100%;height:100%;object-fit:fill}#screen-content iframe{display:block;width:100%;height:100%}

/* MARKUP 2.1: screenshot capture mode for live URLs */
.review-tabs .row{flex-wrap:wrap;justify-content:flex-end}
.review-stage-empty .btn{display:inline-flex;margin:10px 5px 0;align-items:center;justify-content:center}
.screen-card .row.gap4{flex-wrap:wrap;justify-content:flex-end}
#screen-content img{object-fit:fill}
