@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+Thai:wght@400;500;600;700&display=swap";*{box-sizing:border-box}body{color:#18202b;background:#f4f6f8;min-width:320px;margin:0;font-family:IBM Plex Sans Thai,sans-serif}button,input,select{font:inherit}button{cursor:pointer}.app{min-height:100vh}header{z-index:20;background:#fff;border-bottom:1px solid #e5e9ee;align-items:center;gap:18px;height:68px;padding:0 26px;display:flex;position:sticky;top:0;box-shadow:0 1px 8px #1927340d}.logo{letter-spacing:-1px;font-size:23px;font-weight:800}.logo span{color:#f15c35}header nav{flex:1;align-items:center;gap:4px;min-width:0;height:100%;display:flex}header nav button,header>button{color:#657080;white-space:nowrap;background:0 0;border:0;border-radius:9px;height:40px;padding:0 11px;font-weight:600;transition:background .15s,color .15s,box-shadow .15s}header nav button:hover{color:#293746;background:#f7f8fa}.header-actions{align-items:center;gap:8px;display:flex}.header-actions button{color:#5f6b77;background:#fff;border:1px solid #d9dfe6;border-radius:8px;padding:8px 11px}.header-actions .logout{color:#a54837;border-color:#0000}.role-badge{color:#64717d;text-transform:uppercase;background:#edf1f4;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:700}.role-badge.admin{color:#6d3eac;background:#eee4ff}header nav .active{color:#d94c28;background:#fff0eb;box-shadow:inset 0 0 0 1px #f5c7b8}header nav button:nth-child(5){margin-left:8px}header>button{border:1px solid #d9dfe6;border-radius:9px;padding:9px 14px}.layout{grid-template-columns:var(--sidebar-width,285px) minmax(0, 1fr);height:calc(100vh - 68px);display:grid}aside{background:#fff;border-right:1px solid #e4e8ed;padding:20px 14px;position:relative;overflow:hidden}.sidebar-resizer{z-index:10;cursor:col-resize;touch-action:none;background:0 0;border:0;width:11px;padding:0;position:absolute;top:0;bottom:0;right:-5px}.sidebar-resizer:before{content:"";background:#dfe4e9;width:1px;transition:width .15s,background .15s;position:absolute;top:0;bottom:0;left:5px}.sidebar-resizer:hover:before,.resizing-sidebar .sidebar-resizer:before{background:#f15c35;width:3px}.sidebar-resizer span{color:#87929d;background:#fff;border:1px solid #d8dee4;border-radius:7px;place-items:center;width:17px;height:38px;display:grid;position:absolute;top:50%;left:-3px;transform:translateY(-50%);box-shadow:0 2px 8px #1f2c381a}.resizing-sidebar,.resizing-sidebar *{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}.search{color:#8190a1;background:#f2f4f6;border-radius:9px;gap:8px;padding:9px 12px;display:flex}.search input{background:0 0;border:0;outline:0;width:100%}.asidehead{justify-content:space-between;align-items:center;margin:25px 5px 10px;font-size:13px;display:flex}.asidehead select{color:#6f7885;border:0}.teams{height:calc(100% - 90px);overflow:auto}.teams button{text-align:left;background:0 0;border:0;border-radius:9px;align-items:center;gap:10px;width:100%;padding:10px;display:flex}.teams button.selected{color:#d84922;background:#fff1ec}.teams button i{background:#22a56d;border-radius:50%;width:7px;height:7px}.teams button i.unmapped{background:#f1a21a}.teams button span{white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:600;overflow:hidden}.teams button>i,.teams button>.team-label,.teams button>b,.teams button .team-label small{pointer-events:none}.teams small{color:#8b949f;text-overflow:ellipsis;font-weight:400;display:block;overflow:hidden}.teams button b{color:#5f6975;background:#edf0f3;border-radius:12px;padding:2px 8px}.content{padding:26px 30px;overflow:auto}.teamhead .eyebrow{color:#89939e;text-transform:uppercase;letter-spacing:1px;font-size:12px}.teamhead h1{margin:2px 0;font-size:28px}.teamhead p{color:#727d89;margin:0}.workspace{grid-template-columns:380px minmax(450px,1fr);gap:20px;height:calc(100vh - 190px);margin-top:20px;display:grid}.workspace.model-expanded{grid-template-columns:minmax(0,1fr)}.workspace.model-expanded .filepanel{display:none}.workspace.model-expanded .modelpanel{min-width:0}.filepanel,.modelpanel{background:#fff;border:1px solid #e3e7eb;border-radius:12px;overflow:auto}.filepanel h3{border-bottom:1px solid #e7eaed;margin:0;padding:17px}.filepanel h3 span{float:right;background:#f0f2f4;border-radius:15px;padding:2px 9px}.filepanel>[role=button]{cursor:pointer;text-align:left;background:#fff;border:0;border-bottom:1px solid #edf0f2;align-items:center;gap:12px;width:100%;padding:13px;display:flex}.filepanel>[role=button].on{background:#fff4ef;border-left:3px solid #f15c35}.filepanel [role=button] .file-summary{flex:1;min-width:0}.filepanel [role=button] b,.filepanel [role=button] small{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.filepanel [role=button] small{color:#88929d}.revision-badge{color:#6c7782;vertical-align:middle;background:#edf1f4;border-radius:999px;margin-left:7px;padding:1px 6px;font-size:9px;font-style:normal;display:inline-block}.revision-badge.revision-2{color:#6847a8;background:#ece6ff}.file-status{align-items:center;gap:7px;margin-top:8px;display:flex}.file-printer{align-items:center;gap:7px;margin-top:6px;display:flex}.file-printer span{color:#7c8793;min-width:50px;font-size:11px}.file-printer input,.file-printer select{color:#404b57;background:#fff;border:1px solid #d5dce3;border-radius:6px;width:175px;min-width:0;padding:4px 7px;font-size:12px}.packing-action{align-items:center;gap:7px;margin-top:6px;display:flex}.packing-action>span{color:#7c8793;min-width:50px;font-size:11px}.packing-action button{color:#c64d2c;background:#fff8f5;border:1px dashed #f09a7e;border-radius:7px;justify-content:center;align-items:center;gap:5px;width:175px;min-width:0;padding:5px 8px;font-size:11px;font-weight:700;display:flex}.packing-action button.packed{color:#237b48;background:#edf8f1;border-style:solid;border-color:#b9dfc7;justify-content:space-between}.packing-action button small{color:#4f765f;text-overflow:ellipsis;white-space:nowrap;max-width:75px;font-size:10px;font-weight:500;overflow:hidden}.packing-thumb{object-fit:cover;border-radius:5px;flex:none;width:25px;height:25px}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#11192394;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.packing-modal{background:#fff;border:1px solid #e3e7eb;border-radius:16px;width:min(560px,100%);padding:28px;position:relative;box-shadow:0 24px 70px #1119233d}.packing-icon{color:#e45a32;background:#fff0e9;border-radius:12px;place-items:center;width:46px;height:46px;margin-bottom:14px;font-size:23px;display:grid}.modal-eyebrow{color:#db5935;letter-spacing:.04em;font-size:11px;font-weight:700}.packing-modal h2{margin:2px 0 5px}.packing-modal>p{color:#707b86;margin:0 0 20px;font-size:13px}.packing-modal>p b{color:#3c4651}.modal-close{color:#687480;background:#f2f4f6;border:0;border-radius:8px;width:34px;height:34px;font-size:22px;position:absolute;top:14px;right:14px}.packing-modal form label{color:#48535f;margin-bottom:6px;font-size:12px;font-weight:700;display:block}.packing-modal form input,.packing-modal form select{border:1px solid #ccd4dc;border-radius:8px;outline:0;width:100%;padding:11px 12px}.packing-modal form input:focus,.packing-modal form select:focus{border-color:#f16b45;box-shadow:0 0 0 3px #f16b4521}.modal-error{color:#c8372d;margin-top:6px;display:block}.modal-actions{justify-content:flex-end;gap:8px;margin-top:22px;display:flex}.modal-actions button{color:#5d6874;background:#fff;border:1px solid #d5dce3;border-radius:8px;padding:9px 14px;font-weight:700}.modal-actions button[type=submit]{color:#fff;background:#f15c35;border-color:#f15c35}.modal-actions button:disabled{cursor:wait;opacity:.65}.camera-step{min-width:0}.watermark-notice{color:#476656;background:#f1f8f4;border:1px solid #d9e9df;border-radius:8px;align-items:center;gap:8px;margin-bottom:9px;padding:8px 10px;display:flex}.watermark-notice>span{color:#237a4a;background:#d4eedf;border-radius:50%;flex:none;place-items:center;width:20px;height:20px;font-size:11px;font-weight:700;display:grid}.watermark-notice p{margin:0;font-size:11px}.camera-frame{aspect-ratio:4/3;background:#111923;border-radius:12px;place-items:center;width:100%;display:grid;position:relative;overflow:hidden}.camera-frame video,.camera-frame img{object-fit:cover;width:100%;height:100%}.camera-frame>span{color:#dbe2e9;font-size:13px;position:absolute}.camera-frame.preview{background:#edf0f3}.photo-number{color:#fff;background:#111923b8;border-radius:999px;padding:4px 8px;font-size:11px;position:absolute;bottom:10px;right:10px}.captured-gallery{gap:7px;margin-top:9px;padding:2px 1px 6px;display:flex;overflow-x:auto}.captured-gallery button{background:#e8ecef;border:2px solid #0000;border-radius:8px;flex:none;width:64px;height:52px;padding:0;position:relative;overflow:hidden}.captured-gallery button.active{border-color:#f15c35}.captured-gallery img{object-fit:cover;width:100%;height:100%}.captured-gallery button span{color:#fff;background:#161d25c7;border-radius:50%;place-items:center;width:18px;height:18px;font-size:14px;line-height:1;display:grid;position:absolute;top:2px;right:2px}.photo-count{color:#7d8893;margin:0;font-size:11px}.camera-fallback{color:#596571;cursor:pointer;background:#fff;border:1px solid #d7dde3;border-radius:7px;width:fit-content;margin:10px auto 0;padding:7px 11px;font-size:12px;display:block}.camera-fallback input{opacity:0;height:1px;position:absolute;overflow:hidden;width:1px!important}.packing-confirm{color:#4d5965;cursor:pointer;background:#f7f8f9;border:1px solid #d9dee4;border-radius:9px;align-items:flex-start;gap:9px;margin-top:12px;padding:10px 11px;font-size:12px;display:flex}.packing-confirm input{accent-color:#f15c35;flex:none;width:18px;height:18px;margin:1px 0 0}.camera-actions button:last-child{color:#fff;background:#f15c35;border-color:#f15c35;min-width:125px}.camera-actions button:last-child:disabled{color:#8b949d;background:#dfe3e7;border-color:#cfd5db}.print-status select.not-printed{color:#596571;background:#edf0f3}.print-status select.printing{color:#17659d;background:#d8edff}.print-status select.problem{color:#bd3026;background:#ffd9d4}.print-status{align-items:center;gap:7px;margin-top:6px;display:flex}.print-status span{color:#7c8793;min-width:72px;font-size:11px}.print-status select{border:1px solid #0000;border-radius:6px;width:175px;min-width:0;padding:4px 7px;font-size:12px;font-weight:600}.print-status select.unset{color:#66717d;background:#fff;border-color:#d5dce3}.print-status select.completed{color:#23813a;background:#dff3d8}.print-status select.completed-model-broken{color:#bd3026;background:#ffd9d4}.print-status select.printing-round-1,.print-status select.printing-round-2{color:#76520b;background:#ffe9b7}.print-status select.file-broken{color:#fff;background:#bd0000}.file-status span{color:#7c8793;white-space:nowrap;font-size:11px}.file-status select{color:#404b57;background:#fff;border:1px solid #d5dce3;border-radius:6px;min-width:0;max-width:175px;padding:4px 6px;font-size:12px}.cube{color:#ef5d34;background:#ffe5db;border-radius:8px;place-items:center;width:37px;height:37px;font-size:24px;display:grid}.modelpanel{position:relative;overflow:auto}.viewer-layout{grid-template-columns:minmax(0,1fr) 340px;height:100%;min-height:0;display:grid}.viewer-main{flex-direction:column;min-width:0;min-height:0;display:flex}.viewer-main .viewer{flex:1;height:auto;min-height:460px}.viewer{background:#121821;height:calc(100% - 75px);position:relative}.viewer canvas{height:100%!important}.tools{z-index:2;flex-wrap:wrap;gap:6px;display:flex;position:absolute;top:12px;left:12px}.tools button,.tools a{color:#dce3ec;background:#202936;border:1px solid #495463;border-radius:7px;padding:6px 9px}.tools a{text-decoration:none}.tools a:hover,.tools button:hover{color:#fff;background:#2c3745;border-color:#f18a68}.hint{text-align:center;color:#8996a8;font-size:12px;position:absolute;bottom:10px;left:0;right:0}.info{align-items:center;gap:18px;height:75px;padding:12px 18px;display:flex}.info b{margin-right:auto}.info span{color:#74808d;font-size:13px}.review-panel{background:#fff;border-top:1px solid #e6eaee;padding:14px 18px 22px}.timeline-panel{background:#f9fafb;border:0;border-left:1px solid #e0e5ea;border-radius:0;min-width:0;padding:0 16px 20px;display:block;overflow-y:auto}.timeline-title{z-index:2;background:#fff;border-bottom:1px solid #e3e8ec;margin:0 -16px 14px;padding:16px;position:sticky;top:0}.timeline-title>div{justify-content:space-between;align-items:center;display:flex}.timeline-title span{font-size:16px;font-weight:700}.timeline-title b{color:#d94c28;background:#fff0eb;border-radius:999px;padding:2px 8px;font-size:11px}.timeline-title small{color:#86919c;white-space:nowrap;text-overflow:ellipsis;margin-top:4px;font-size:11px;display:block;overflow:hidden}.timeline-panel .note-entry{flex-direction:column}.timeline-panel .note-entry button{align-self:flex-end}.note-entry{gap:8px;display:flex}.note-entry input{border:1px solid #d5dce3;border-radius:7px;flex:1;min-width:0;padding:8px 10px}.note-entry button{color:#fff;background:#f15c35;border:0;border-radius:7px;padding:8px 12px}.review-panel h3{margin:16px 0 8px}.no-log{color:#8a949e}.file-timeline>div{border-top:1px solid #e5e9ed;gap:10px;padding:10px 0;font-size:13px;display:flex;position:relative}.file-timeline i{background:#f15c35;border-radius:50%;flex:none;width:8px;height:8px;margin-top:6px}.file-timeline small{color:#84909b;display:block}.file-timeline>div>span{min-width:0}.timeline-action{color:#303b46;font-size:13px;font-weight:600;line-height:1.5;display:block}.timeline-transition{grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr);align-items:center;gap:5px;margin-top:7px;display:grid}.timeline-transition>strong{color:#f15c35;text-align:center;font-size:18px}.transition-value{background:#fff;border:1px solid #dfe4e8;border-radius:7px;min-width:0;padding:6px 7px;display:block}.transition-value small,.transition-value b{display:block}.transition-value small{color:#8b96a1;margin-bottom:1px;font-size:9px}.transition-value b{overflow-wrap:anywhere;color:#4d5965;font-size:11px;line-height:1.35}.transition-value.after{background:#fff4ef;border-color:#f3c8b9}.transition-value.after b{color:#bd4929}.timeline-note.standalone{margin-top:7px}.timeline-note{color:#65717d;background:#fff;border-radius:6px;margin-top:5px;padding:7px 9px;font-size:12px;font-style:italic;display:block}.timeline-meta{flex-wrap:wrap;align-items:center;gap:7px;margin-top:5px;display:flex!important}.timeline-meta time{white-space:nowrap}.timeline-actor{color:#63707c;background:#e9edf1;border-radius:999px;padding:1px 6px;font-size:9px;font-weight:700}.timeline-revision{color:#35658f;background:#e7f0fb;border-radius:999px;padding:1px 6px;font-size:9px;font-weight:700}.timeline-actor.admin{color:#6d3eac;background:#eee4ff}.timeline-change{color:#4f5b67;margin:3px 0;line-height:1.45;display:block}.timeline-change strong{color:#f15c35;margin:0 3px}.empty{text-align:center;color:#89939e;place-content:center;height:100%;display:grid}.empty div{color:#cad1d8;font-size:80px}.empty h2{color:#3a4652;margin:4px}.viewer-error{text-align:center;color:#7b8794;place-content:center;height:calc(100% - 75px);padding:24px;display:grid}.viewer-error div{color:#e34f2b;background:#fff0eb;border-radius:50%;place-items:center;width:56px;height:56px;margin:0 auto 12px;font-size:30px;font-weight:700;display:grid}.viewer-error h2{color:#34404c;margin:0}.login{background:radial-gradient(circle at top,#293442,#111720 60%);place-items:center;min-height:100vh;display:grid}.login form{text-align:center;background:#fff;border-radius:18px;width:390px;padding:40px;box-shadow:0 30px 80px #0008}.login h1{margin:28px 0 0;font-size:24px}.login p{color:#7b8590}.login input{text-align:center;letter-spacing:8px;border:1px solid #d9dee4;border-radius:9px;width:100%;padding:15px;font-size:24px}.login button{color:#fff;background:#f15c35;border:0;border-radius:9px;width:100%;margin-top:14px;padding:13px;font-weight:700}.login small{color:#d43e2a;margin-top:10px;display:block}.mapping{max-width:1680px;margin:0 auto;padding:30px}.pagehead{justify-content:space-between;align-items:end;display:flex}.pagehead h2{margin:0;font-size:29px}.pagehead p{color:#75808c}.pagehead button,.button,.tr button{background:#fff;border:1px solid #d7dde3;border-radius:8px;margin-left:7px;padding:9px 12px}.maptable{background:#fff;border:1px solid #e1e6ea;border-radius:12px;margin-top:25px;overflow-x:auto}.tr{border-bottom:1px solid #edf0f2;grid-template-columns:2fr 80px 1.5fr 110px 90px;align-items:center;gap:15px;padding:13px 18px;display:grid}.tr.th{color:#77818c;background:#f6f8f9;font-size:12px;font-weight:700}.tr input{border:1px solid #d7dde3;border-radius:7px;width:100%;padding:8px}.source{font-weight:600}.ok{color:#169b65}.warn{color:#e39115}.status-page{max-width:1680px;margin:0 auto;padding:28px 30px}.round-two-page{max-width:1680px;margin:0 auto;padding:28px 30px 45px}.round-two-hero{color:#fff;background:radial-gradient(circle at 85% 15%,#7e5bca52,#0000 36%),linear-gradient(125deg,#182432,#2d2947);border-radius:16px;grid-template-columns:minmax(0,1fr) minmax(310px,420px);align-items:center;gap:28px;padding:28px 30px;display:grid;overflow:hidden;box-shadow:0 14px 34px #181e2f29}.round-two-hero>div:first-child>span{color:#c9b5ff;letter-spacing:.13em;font-size:11px;font-weight:700}.round-two-hero h2{margin:5px 0 3px;font-size:30px}.round-two-hero p{color:#b9c1cd;margin:0}.round-two-source{background:#ffffff0e;border:1px solid #fff2;border-radius:11px;grid-template-columns:1fr auto;gap:5px 10px;padding:14px 16px;display:grid}.round-two-source span{color:#aeb8c5;grid-column:1/-1;font-size:10px}.round-two-source code{color:#eee9ff;text-overflow:ellipsis;align-self:center;font-size:13px;overflow:hidden}.round-two-source button{color:#fff;background:#7a57bd;border:1px solid #a78adc;border-radius:8px;padding:8px 11px;font-weight:700}.round-two-source button:disabled{cursor:wait;opacity:.65}.round-two-upload{border-top:1px solid #fff2;grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto;gap:7px 10px;margin-top:7px;padding-top:12px;display:grid}.round-two-upload select{color:#fff;background:#202638;border:1px solid #fff3;border-radius:8px;outline:0;min-width:0;padding:8px 10px}.round-two-upload input[type=file]{display:none}.round-two-upload .upload-button{background:#248460;border-color:#71bba0}.round-two-upload small{color:#d9e0e8;grid-column:1/-1;font-size:10px}.round-two-progress{grid-template-columns:repeat(4,1fr);gap:12px;margin-top:16px;display:grid}.round-two-progress>div{background:#fff;border:1px solid #e0e5ea;border-radius:11px;padding:15px 17px}.round-two-progress span,.round-two-progress b,.round-two-progress small{display:block}.round-two-progress span{color:#78838e;font-size:11px}.round-two-progress b{color:#332d4c;font-size:26px}.round-two-progress small{color:#9aa3ac;font-size:10px}.round-two-toolbar{justify-content:space-between;align-items:center;gap:14px;margin-top:20px;display:flex}.round-two-filters{flex-wrap:wrap;gap:6px;display:flex}.round-two-filters button{color:#5b6671;background:#fff;border:1px solid #dfe4e9;border-radius:999px;align-items:center;gap:6px;padding:7px 9px;font-size:11px;display:flex}.round-two-filters button.active{border-color:var(--round-color);background:color-mix(in srgb, var(--round-color) 9%, white);color:var(--round-color)}.round-two-filters i{color:var(--round-color);font-style:normal}.round-two-filters b{text-align:center;background:#eef1f4;border-radius:999px;min-width:19px;padding:1px 5px}.round-two-toolbar>label{color:#89939d;background:#fff;border:1px solid #dce2e7;border-radius:9px;align-items:center;gap:7px;min-width:280px;padding:8px 11px;display:flex}.round-two-toolbar input{border:0;outline:0;width:100%}.round-two-empty{text-align:center;background:#f7f4ff;border:1px dashed #bcb0db;border-radius:13px;margin-top:18px;padding:28px}.round-two-empty>div{color:#6847aa;background:#e8dfff;border-radius:13px;place-items:center;width:48px;height:48px;margin:0 auto 8px;font-size:24px;font-weight:700;display:grid}.round-two-empty>span{color:#443665;font-weight:700}.round-two-empty p{color:#746c83;max-width:680px;margin:5px auto 0;font-size:12px}.round-two-list{margin-top:20px}.round-two-list-head{justify-content:space-between;align-items:end;margin-bottom:11px;display:flex}.round-two-list-head h3,.round-two-list-head p{margin:0}.round-two-list-head p{color:#87919b;font-size:11px}.round-two-list-head>b{color:#6e7984;font-size:12px}.round-team-grid{grid-template-columns:repeat(auto-fit,minmax(390px,1fr));gap:12px;display:grid}.round-team{background:#fff;border:1px solid #e0e5ea;border-top:3px solid #929ba4;border-radius:11px;min-width:0;overflow:hidden}.round-team.submitted{border-top-color:#536fbd}.round-team.working{border-top-color:#2185c5}.round-team.problem{border-top-color:#d96b28}.round-team.completed{border-top-color:#26945b}.round-team-head{justify-content:space-between;align-items:center;gap:12px;padding:13px 15px 9px;display:flex}.round-team-head span{color:#909aa4;font-size:9px}.round-team-head h4{color:#34404c;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:14px;overflow:hidden}.round-team-head>div{min-width:0}.round-team-head>em{color:#6f7a84;background:#eef1f3;border-radius:999px;flex:none;padding:4px 8px;font-size:10px;font-style:normal;font-weight:700}.round-team.problem .round-team-head>em{color:#b85820;background:#fff0e4}.round-team.completed .round-team-head>em{color:#277848;background:#e4f4e9}.round-compare{background:#f6f8f9;border-radius:8px;grid-template-columns:1fr 25px 1fr;align-items:center;margin:0 15px 11px;padding:10px 12px;display:grid}.round-compare>div span,.round-compare>div b,.round-compare>div small{display:block}.round-compare span,.round-compare small{color:#89939e;font-size:10px}.round-compare b{color:#45515d;font-size:13px}.round-compare>strong{color:#7959b4;text-align:center}.round-compare .received b{color:#6647a3}.round-compare .waiting b{color:#9aa3ac}.round-compare.round-one-summary{grid-template-columns:1fr}.round-awaiting{text-align:center;color:#98a1aa;border:1px dashed #d8dde2;border-radius:8px;margin:0 15px 14px;padding:11px;font-size:11px}.round-files{border-top:1px solid #edf0f2}.round-files>button{text-align:left;background:#fff;border:0;border-bottom:1px solid #edf0f2;grid-template-columns:minmax(0,1fr) auto 15px;align-items:center;gap:8px;width:100%;padding:10px 14px;display:grid}.round-files>button:hover{background:#faf8ff}.round-files>button>span:first-child{min-width:0}.round-files b,.round-files small{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.round-files b{color:#3f4b56;font-size:12px}.round-files small{color:#929ca5;font-size:10px}.round-file-status{gap:4px;display:flex}.round-file-status em{color:#67737e;background:#eef1f4;border-radius:999px;padding:3px 6px;font-size:9px;font-style:normal}.round-files>button>i{color:#7657b1;font-size:18px;font-style:normal}.status-search,.admin-search{color:#84909b;background:#fff;border:1px solid #dfe4e9;border-radius:9px;align-items:center;gap:8px;min-width:330px;padding:9px 12px;display:flex}.status-search input,.admin-search input{background:0 0;border:0;outline:0;width:100%}.admin-search{margin-top:18px}.admin-search b{color:#687481;white-space:nowrap;font-size:12px}.admin-summary{grid-template-columns:repeat(auto-fit,minmax(170px,230px));gap:12px;margin-top:22px;display:grid}.admin-summary>div{background:#fff;border:1px solid #e0e5ea;border-radius:10px;padding:14px 16px}.admin-summary span,.admin-summary b{display:block}.option-manager{background:#fff;border:1px solid #e0e5ea;border-radius:12px;margin-top:18px;padding:18px}.option-manager-head{justify-content:space-between;align-items:end;gap:18px;display:flex}.option-manager h3,.option-manager p{margin:0}.option-manager p{color:#7e8994;margin-top:3px;font-size:12px}.option-form{gap:7px;display:flex}.option-form select,.option-form input{border:1px solid #d7dde3;border-radius:7px;min-width:0;padding:7px 9px}.option-form input[type=color]{width:42px;padding:3px}.option-form button{color:#fff;background:#f15c35;border:0;border-radius:7px;padding:7px 12px}.option-groups{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin-top:16px;display:grid}.option-groups>div{background:#f7f8fa;border-radius:9px;padding:12px}.option-groups h4{justify-content:space-between;margin:0 0 8px;display:flex}.option-groups h4 span{color:#89949f;font-size:11px}.option-list{flex-wrap:wrap;gap:6px;display:flex}.option-list>span{background:#fff;border:1px solid #e0e4e8;border-radius:999px;align-items:center;gap:5px;padding:4px 5px 4px 7px;font-size:11px;display:flex}.option-list i{border-radius:50%;width:8px;height:8px}.option-list button{color:#8a5860;background:#f0f2f4;border:0;border-radius:50%;width:18px;height:18px;padding:0}.admin-summary span{color:#7d8894;font-size:12px}.admin-summary b{margin-top:3px;font-size:24px}.admin-photo-section{background:#fff;border:1px solid #e0e5ea;border-radius:12px;margin-top:18px;padding:18px}.admin-photo-head{justify-content:space-between;align-items:end;gap:16px;display:flex}.admin-photo-head h3,.admin-photo-head p{margin:0}.admin-photo-head p{color:#7e8994;margin-top:3px;font-size:12px}.admin-photo-head>b{color:#6a7580;font-size:12px}.admin-photo-grid{grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:12px;margin-top:15px;display:grid}.admin-photo-grid article{background:#f8f9fa;border:1px solid #e1e6ea;border-radius:10px;min-width:0;overflow:hidden}.admin-photo-info{padding:11px 12px 8px}.admin-photo-info span,.admin-photo-info b,.admin-photo-info small{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.admin-photo-info span{color:#d65430;font-size:10px;font-weight:700}.admin-photo-info span .photo-revision{color:#35658f;vertical-align:middle;background:#e7f0fb;border-radius:999px;margin-left:7px;padding:1px 6px;font-size:9px;font-style:normal;display:inline-block;overflow:visible}.admin-photo-info span .photo-revision.revision-2{color:#6d3eac;background:#eee4ff}.admin-photo-info b{color:#34404c;margin-top:2px;font-size:13px}.admin-photo-info small{color:#818c97;font-size:11px}.admin-photo-thumbs{gap:6px;padding:0 11px 11px;display:flex;overflow-x:auto}.admin-photo-thumbs button{background:#e4e8ec;border:0;border-radius:7px;flex:none;width:92px;height:72px;padding:0;position:relative;overflow:hidden}.admin-photo-thumbs img{object-fit:cover;width:100%;height:100%;transition:transform .18s}.admin-photo-thumbs button:hover img{transform:scale(1.05)}.admin-photo-thumbs span{color:#fff;background:#121921bf;border-radius:999px;place-items:center;min-width:19px;height:19px;padding:0 5px;font-size:9px;display:grid;position:absolute;bottom:4px;right:4px}.admin-photo-empty{text-align:center;color:#8a949e;padding:35px 12px 20px}.photo-lightbox{z-index:120;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#090e14db;place-items:center;padding:22px;display:grid;position:fixed;inset:0}.photo-lightbox>section{background:#111923;border-radius:14px;flex-direction:column;width:min(1100px,100%);max-height:calc(100dvh - 44px);display:flex;position:relative;overflow:hidden;box-shadow:0 30px 90px #0008}.photo-lightbox>section>img{object-fit:contain;width:100%;min-height:0;display:block}.photo-lightbox>section>div{background:#fff;padding:13px 17px}.photo-lightbox>section span,.photo-lightbox>section b,.photo-lightbox>section small{display:block}.photo-lightbox>section span{color:#d65430;font-size:11px;font-weight:700}.photo-lightbox>section small{color:#7b8691}.photo-version-switch{gap:6px;margin-top:9px;display:flex}.photo-version-switch button{color:#65717d;background:#fff;border:1px solid #d9dfe5;border-radius:7px;padding:6px 10px;font-size:11px;font-weight:700}.photo-version-switch button.active{color:#cc4e2c;background:#fff0eb;border-color:#f15c35}.photo-version-switch button:disabled{cursor:not-allowed;opacity:.45}.photo-lightbox-close{z-index:1;color:#fff;background:#0c1219b8;border:1px solid #fff5;border-radius:50%;place-items:center;width:38px;height:38px;padding:0;font-size:25px;display:grid;position:absolute;top:10px;right:10px}.audit-table .tr{grid-template-columns:170px minmax(290px,2fr) 150px minmax(190px,1fr) minmax(190px,1fr);align-items:start;min-width:1120px}.audit-file,.audit-file b,.audit-file small{min-width:0;display:block}.audit-file b,.audit-file small{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.audit-file small,.audit-table small{color:#84909b}.audit-table em{color:#53606c;background:#eef2f5;border-radius:999px;padding:3px 8px;font-size:12px;font-style:normal;display:inline-block}.actor-badge{background:#eee4ff;border-radius:5px;width:fit-content;margin-top:5px;padding:2px 6px;font-size:9px;font-weight:700;color:#6d3eac!important}.muted{color:#9aa4ad}.progress-overview{color:#fff;background:linear-gradient(120deg,#182432,#293a4d);border-radius:14px;grid-template-columns:minmax(260px,.8fr) minmax(360px,1.2fr);align-items:center;gap:40px;margin-top:22px;padding:22px 26px;display:grid;box-shadow:0 12px 30px #15223024}.progress-copy>span{color:#ff9a78;letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:700}.progress-copy h3{margin:4px 0 2px;font-size:22px}.progress-copy p{color:#aeb9c5;margin:0;font-size:12px}.progress-meters{gap:13px;display:grid}.progress-meters>div>span{justify-content:space-between;margin-bottom:5px;font-size:11px;display:flex}.progress-meters em{color:#ff9a78;font-style:normal;font-weight:700}.progress-meters>div>i{background:#ffffff1c;border-radius:999px;height:7px;display:block;overflow:hidden}.progress-meters>div>i>b{border-radius:inherit;background:linear-gradient(90deg,#f15c35,#ff9a78);height:100%;display:block}.dashboard-section-title{justify-content:space-between;align-items:end;margin-top:26px;display:flex}.dashboard-section-title h3,.dashboard-section-title p,.quality-bar h3,.quality-bar p{margin:0}.dashboard-section-title p,.quality-bar p{color:#84909b;font-size:11px}.dashboard-section-title>b{color:#687481;font-size:12px}.status-cards{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:12px 0 20px;display:grid}.status-cards button{text-align:left;color:#45515d;background:#fff;border:1px solid #dfe4e9;border-radius:10px;grid-template-columns:38px 1fr auto;align-items:center;gap:11px;min-height:84px;padding:14px;transition:transform .15s,box-shadow .15s,border-color .15s;display:grid}.status-cards button:hover{transform:translateY(-2px);box-shadow:0 8px 20px #22303e17}.status-cards button.active{border-color:var(--status-color);box-shadow:0 0 0 2px color-mix(in srgb, var(--status-color) 18%, transparent)}.status-cards .status-icon{background:color-mix(in srgb, var(--status-color) 14%, white);width:38px;height:38px;color:var(--status-color);border-radius:10px;place-items:center;font-size:18px;font-style:normal;display:grid}.status-cards span b,.status-cards span small{display:block}.status-cards span b{color:#3c4854;font-size:13px}.status-cards span small{color:#929ca6;font-size:10px}.status-cards strong{color:var(--status-color);font-size:24px}.quality-bar{background:#fff;border:1px solid #e0e5ea;border-radius:12px;justify-content:space-between;align-items:center;gap:20px;margin-bottom:16px;padding:14px 16px;display:flex}.quality-filters{flex-wrap:wrap;justify-content:flex-end;gap:7px;display:flex}.quality-filters button{color:#5b6773;background:#fff;border:1px solid #e1e5e9;border-radius:999px;align-items:center;gap:6px;padding:6px 9px;font-size:11px;display:flex}.quality-filters button.active{border-color:var(--status-color);background:color-mix(in srgb, var(--status-color) 9%, white)}.quality-filters i{background:color-mix(in srgb, var(--status-color) 15%, white);width:17px;height:17px;color:var(--status-color);border-radius:50%;place-items:center;font-style:normal;display:grid}.quality-filters b{text-align:center;background:#eef1f4;border-radius:999px;min-width:18px;padding:1px 5px}.status-table{background:#fff;border:1px solid #e0e5ea;border-radius:12px;overflow:hidden}.status-row{border-bottom:1px solid #edf0f2;grid-template-columns:minmax(230px,1.8fr) repeat(6,minmax(105px,.8fr)) minmax(180px,1.2fr);align-items:center;gap:12px;padding:11px 16px;font-size:13px;display:grid}.status-note{align-items:center;gap:6px;min-width:0;display:flex}.status-note>i{color:#d95631;background:#fff0eb;border-radius:6px;flex:none;place-items:center;width:20px;height:20px;font-size:10px;font-style:normal;display:grid}.status-note>span:not(.muted){white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.status-row>span:first-child{min-width:0}.status-row b,.status-row small{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.status-row small{color:#84909b}.status-head{color:#6d7884;background:#f4f6f8;font-size:12px;font-weight:700}.status-data-row{cursor:pointer;transition:background .15s}.status-data-row:hover{background:#fff8f5}.packing-cell{flex-direction:column;align-items:flex-start;gap:3px;min-width:0;display:flex}.packing-cell.done .table-pill{color:#684ba9;background:#eee9ff}.packing-cell.waiting .table-pill{color:#7a858f;background:#f1f3f5}.packing-cell small{color:#68747f;max-width:100%}.packing-cell>img{object-fit:cover;border-radius:7px;width:52px;height:42px;margin-bottom:2px;box-shadow:0 1px 4px #1b273326}.packed-bag-row{border-bottom:1px solid #edf0f2;grid-template-columns:minmax(260px,1.1fr) minmax(420px,2fr) minmax(180px,.7fr);align-items:start;gap:22px;padding:16px 18px;display:grid}.packed-bag-head{color:#6d7884;background:#f4f6f8;font-size:12px;font-weight:700}.packed-bag-team b,.packed-bag-team small{display:block}.packed-bag-team small{color:#84909b;margin-top:4px}.packed-bag-contents{gap:7px;display:grid}.packed-bag-contents button{color:#263442;text-align:left;cursor:pointer;background:#fafbfc;border:1px solid #e5e9ed;border-radius:8px;align-items:center;gap:9px;width:100%;padding:8px 10px;display:flex}.packed-bag-contents button:hover{background:#fff8f5;border-color:#e0a18c}.packed-bag-contents i{color:#684ba9;background:#eee9ff;border-radius:999px;flex:none;place-items:center;width:24px;height:24px;font-size:11px;font-style:normal;font-weight:700;display:grid}.packed-bag-contents span,.packed-bag-contents b,.packed-bag-contents small{min-width:0;display:block}.packed-bag-contents b{overflow-wrap:anywhere}.packed-bag-contents small{color:#84909b;margin-top:2px}.packed-bag-info>img{width:84px;height:64px}.table-pill{color:#596571;white-space:nowrap;background:#edf0f3;border-radius:999px;padding:4px 8px;font-size:11px;font-style:normal;font-weight:600;display:inline-block}.table-pill.printing{color:#17659d;background:#d8edff}.table-pill.problem,.table-pill.issue-broken,.table-pill.print-file-broken,.table-pill.print-completed-model-broken{color:#ae2e25;background:#ffd9d4}.table-pill.completed,.table-pill.issue-passed,.table-pill.print-completed{color:#23813a;background:#dff3d8}.table-pill.issue-violation{color:#fff;background:#bd0000}.table-pill.print-printing-round-1,.table-pill.print-printing-round-2{color:#76520b;background:#ffe9b7}.status-empty{text-align:center;color:#88939e;padding:45px}@media (width<=1400px){.workspace{grid-template-columns:minmax(0,1fr);height:auto}.filepanel{max-height:310px}.viewer-layout{grid-template-columns:minmax(0,1fr) 300px;min-height:min(760px,100dvh - 125px)}.status-cards{grid-template-columns:repeat(3,1fr)}}@media (width<=1024px){.round-two-page{padding:18px}.round-two-hero{grid-template-columns:1fr;gap:18px}.round-two-progress{grid-template-columns:1fr 1fr}.round-two-toolbar{flex-direction:column;align-items:stretch}.round-two-toolbar>label{width:100%;min-width:0}.round-team-grid{grid-template-columns:1fr}.layout{height:auto;min-height:calc(100dvh - 68px);display:block}.layout>aside{border-bottom:1px solid #e4e8ed;border-right:0;padding:12px 16px;overflow:visible}.layout>aside .search{max-width:420px}.layout>aside .asidehead{margin:12px 4px 7px}.layout>aside .teams{overscroll-behavior-inline:contain;scroll-snap-type:inline proximity;gap:7px;height:auto;padding-bottom:5px;display:flex;overflow-x:auto}.layout>aside .teams button{scroll-snap-align:start;border:1px solid #edf0f2;min-width:230px;max-width:300px}.sidebar-resizer{display:none}.content{padding:18px;overflow:visible}.teamhead h1{font-size:24px}.workspace{gap:14px;margin-top:14px}.viewer-main .viewer{min-height:520px}.viewer-layout{grid-template-columns:minmax(0,1fr) 280px;min-height:650px}.tools{right:12px}.tools button,.tools a{min-height:38px;padding:8px 10px}}@media (width<=820px){header{flex-wrap:wrap;gap:8px;height:auto;min-height:64px;padding:8px 12px}header nav{scrollbar-width:none;order:3;gap:5px;width:100%;height:44px;overflow-x:auto}header nav button{white-space:nowrap;height:36px;padding:0 10px}header nav button:nth-child(5){margin-left:3px}.header-actions{margin-left:auto}.header-actions .role-badge,.header-actions .logout{display:none}.layout{min-height:calc(100dvh - 112px)}.viewer-layout{grid-template-columns:minmax(0,1fr);height:auto;min-height:0}.viewer-main .viewer{flex:none;height:min(520px,52dvh);min-height:420px}.timeline-panel{overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;border-top:1px solid #e0e5ea;border-left:0;width:100%;max-height:min(380px,38dvh);overflow-y:auto}.mapping{padding:16px}.pagehead{flex-direction:column;align-items:stretch;gap:12px}.status-search,.admin-search{width:100%;min-width:0}.admin-summary{grid-template-columns:repeat(3,1fr)}.option-manager-head,.option-form{flex-direction:column;align-items:stretch}.tr{grid-template-columns:1.5fr 50px 1fr}.tr>:nth-child(4),.tr>:nth-child(5){display:none}.status-page{padding:16px}.progress-overview{grid-template-columns:1fr;gap:18px}.status-cards{grid-template-columns:1fr 1fr}.quality-bar{flex-direction:column;align-items:stretch}.quality-filters{justify-content:flex-start}.status-table{overflow-x:auto}.status-row{min-width:1100px}}@media (width<=700px){.round-two-page{padding:12px}.round-two-hero{border-radius:13px;padding:20px}.round-two-hero h2{font-size:24px}.round-two-source{grid-template-columns:1fr}.round-two-source button{width:100%}.round-two-upload{grid-template-columns:1fr}.round-two-upload small{grid-column:1}.round-two-filters{flex-wrap:nowrap;padding-bottom:4px;overflow-x:auto}.round-two-filters button{flex:none}.round-two-list-head,.round-team-head{align-items:flex-start}.round-team-head h4{white-space:normal}.round-files>button{grid-template-columns:minmax(0,1fr) 15px}.round-file-status{grid-area:2/1/auto/-1;justify-content:flex-start}.round-files>button>i{grid-area:1/2}.content{padding:12px}.layout>aside{padding:10px 12px}.viewer-layout{grid-template-columns:1fr;min-height:0}.viewer-main .viewer{min-height:430px}.timeline-panel{border-top:1px solid #e0e5ea;border-left:0;max-height:420px}.filepanel{max-height:300px}.info{flex-direction:column;align-items:flex-start;gap:3px;height:auto}.tools button,.tools a{min-height:36px;font-size:12px}.status-cards{grid-template-columns:1fr}.packing-modal{max-height:calc(100dvh - 24px);padding:20px;overflow-y:auto}.camera-frame{max-height:52dvh}}
