@import url("/design-system.css");
/* Phông chữ có chân kèm theo máy chủ (góp ý 30/09 — lỗi tách dấu «Huyê`n»): phông hệ thống cũ trên Windows thiếu chữ tiếng Việt
   hai dấu (ề, ắ, ố…) nên trình duyệt tách dấu ra ngoài. Lora (SIL OFL 1.1, đủ tiếng Việt) luôn được dùng, không phụ thuộc máy người xem. */
@font-face{font-family:"Nexus Serif";src:url(/fonts/Lora-Variable.woff) format("woff");font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:"Nexus Serif";src:url(/fonts/Lora-Italic-Variable.woff) format("woff");font-weight:400 700;font-style:italic;font-display:swap}
:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--nx-ink);background:var(--nx-bg);font-synthesis:none;--ink:var(--nx-ink);--accent:var(--nx-blue);--muted:var(--nx-muted);--line:var(--nx-border);--paper:#fff;--mint:var(--nx-light)}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}button{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--nx-blue);outline-offset:3px}input:focus,textarea:focus,select:focus{outline:2px solid #8fb8ef;outline-offset:1px}a{color:inherit;text-decoration:none}[hidden]{display:none!important}h1,h2,p{margin:0}button{border:0;background:none}.muted{color:var(--muted);line-height:1.6}.brand-mark{display:grid;place-items:center;width:44px;height:44px;background:var(--accent);color:#fff;border-radius:12px;font-size:28px;font-weight:800;font-style:italic;flex-shrink:0}.loading{height:100dvh;display:flex;gap:20px;align-items:center;justify-content:center}.primary{background:var(--accent);border:1px solid var(--accent);color:white;border-radius:10px;padding:14px 20px;font-weight:650;display:flex;gap:28px;align-items:center;justify-content:space-between;min-height:48px}.primary:hover{background:var(--nx-blue-hover)}.secondary{padding:12px 16px;border:1px solid var(--line);border-radius:10px;min-height:44px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:700}.pill{display:inline-block;font-size:10px;letter-spacing:1.8px;font-weight:700;background:#e8eef6;padding:9px 12px;border-radius:6px}label{display:block;font-size:13px;font-weight:600}input,select{display:block;width:100%;border:1px solid #ccd8e6;border-radius:9px;background:#fff;padding:13px 14px;color:var(--ink);margin-top:8px;min-height:46px}input::placeholder,textarea::placeholder{color:#5f7793}form label+label{margin-top:20px}.form-error{color:#af4229;font-size:13px;line-height:1.5;min-height:20px;margin:12px 0}.auth-link{display:block;margin:14px auto 0;padding:6px 10px;font-size:14px;font-weight:600;color:var(--nx-blue);border-radius:6px}.auth-link:hover{text-decoration:underline}.auth-note{font-size:12px;color:var(--muted);line-height:1.7;margin-top:18px}.brand{display:flex;align-items:center;gap:14px;font-size:20px;letter-spacing:-.5px}.brand b{font-weight:400;opacity:.7}#auth{display:grid;grid-template-columns:1.06fr 1fr;min-height:100dvh}.auth-story{background:var(--ink);color:#f4f7fb;padding:38px 48px;display:flex;flex-direction:column;position:relative;overflow:hidden}.story-body{padding:65px 0 0;max-width:570px;margin:auto 0}.story-body .eyebrow{color:#a9b0b8;font-size:10px}.story-body h1{font-size:clamp(40px,4.5vw,70px);letter-spacing:-3px;line-height:1.09;margin:24px 0}.story-body h1 em{font-family:"Nexus Serif","Times New Roman",serif;font-weight:400;color:#dda47f}.story-body p{font-size:15px;line-height:1.8;color:#b3b9c1}.blueprint{height:175px;position:relative;margin:32px 0;background-image:linear-gradient(#ffffff06 1px,transparent 1px),linear-gradient(90deg,#ffffff06 1px,transparent 1px);background-size:22px 22px;border-top:1px solid #ffffff12}.plan-box{position:absolute;border:1px solid #7e8ea873;transform:skewY(-12deg)}.plan-box.a{width:160px;height:90px;left:30px;top:40px}.plan-box.b{width:115px;height:65px;left:191px;top:35px}.plan-box.c{width:78px;height:55px;left:111px;top:91px}.blueprint span{position:absolute;bottom:0;right:0;color:#6b7582;letter-spacing:2px;font-size:9px}.story-footer{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1.8px;color:#9098a1;padding-top:28px;border-top:1px solid #ffffff15}.auth-panel{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:42px;background:#f4f7fb}.auth-card{width:100%;max-width:370px;margin:auto}.auth-card h2{font-size:30px;letter-spacing:-1px;margin:26px 0 10px}.auth-card form{margin-top:30px}.auth-card .primary{width:100%}.device-note{border-top:1px solid var(--line);margin-top:35px;padding-top:25px;font-size:12px;color:#6d7680;display:flex;align-items:center;gap:12px}.device-note span{font-size:24px}.auth-panel>small{font-size:10px;letter-spacing:1px;color:#6d776d;margin-top:40px}
#workspace{display:grid;grid-template-columns:82px 326px minmax(0,1fr);height:100dvh;overflow:hidden;background:#ffffff}.rail{background:var(--ink);padding:26px 0 22px;display:flex;align-items:center;flex-direction:column;gap:35px}.rail .brand-mark{width:42px;height:42px}.rail-items{display:flex;flex-direction:column;gap:15px;width:100%;align-items:center}.rail-button{width:60px;height:65px;color:#5f7695;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border-radius:10px}.rail-button>span{font-size:24px;line-height:26px}.rail-button small{font-size:10px}.rail-button.active{background:#2f4647;color:#f5f4e9}.rail-button:hover{background:#263e40}.profile-avatar{margin-top:auto;background:#b5c4d7;color:#343b43;width:38px;height:38px;border-radius:50%;font-size:12px;font-weight:700}.sidebar{background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}.workspace-brand{height:93px;display:flex;align-items:center;justify-content:space-between;margin:0 23px;border-bottom:1px solid var(--line)}.workspace-brand b{display:block;font-size:17px;letter-spacing:-.5px}.workspace-brand div>span{display:block;font-size:8px;letter-spacing:1.5px;color:var(--muted);margin-top:7px}.small-logo{font-size:25px;color:#6c7681}.sidebar-title{display:flex;align-items:center;justify-content:space-between;padding:26px 22px 18px}.sidebar-title h1{font-size:24px;letter-spacing:-.8px;display:flex;align-items:center;gap:10px}.sidebar-title h1>span{font-size:11px;font-weight:500;letter-spacing:0;background:#eaeef2;padding:4px 7px;border-radius:5px;color:#6c7580}.square{min-width:38px;min-height:38px;display:inline-grid;place-items:center;font-size:23px;border-radius:9px}.square:hover{background:#ebeef1}.square.accent{background:#f9e8df;color:var(--accent)}.search-box{display:flex;align-items:center;gap:9px;background:#f5f6f2;border-radius:8px;padding:0 11px;margin:0 22px;font-weight:400}.search-box span{font-size:23px;color:#6e747c}.search-box input{padding:10px 0;background:none;border:0;min-height:40px;font-size:12px;margin:0}.search-box input:focus{outline:0}.search-box:focus-within{outline:2px solid #8fb8ef}.filters{display:flex;padding:18px 22px 21px;gap:6px;border-bottom:1px solid var(--line)}.filters button{font-size:11px;padding:8px 11px;border-radius:6px;color:#6c7485;white-space:nowrap;min-height:34px}.filters button.selected{background:var(--ink);color:#fff}.list-label{font-size:9px;letter-spacing:1.3px;font-weight:600;color:#6b7586;padding:22px 23px 11px;display:flex;justify-content:space-between}.rooms{overflow:auto;padding:0 10px;flex:1}.room{display:flex;width:100%;text-align:left;gap:11px;padding:15px 12px;border-radius:9px;margin:3px 0}.room:hover{background:#f6f6f0}.room.active{background:#e8ecf1}.room-avatar{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:#e1e6ec;color:#667281;font-size:22px;flex-shrink:0}.room-avatar.direct{background:#ede7de;color:#986e54;font-size:13px;font-weight:650}.room-copy{flex:1;min-width:0}.room-top{display:flex;align-items:center;gap:5px;justify-content:space-between;margin-bottom:7px}.room-name{font-size:13px;font-weight:650;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.room-time{font-size:9px;color:#70776e;white-space:nowrap}.room-preview{font-size:11px;color:#6f776d;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.room-bottom{display:flex;gap:6px;align-items:center}.unread{border-radius:9px;min-width:17px;padding:3px;background:var(--accent);color:#fff;font-size:9px;text-align:center;margin-left:auto}.project-tag{display:inline-block;font-size:9px;margin-top:8px;color:#647181}.sidebar-bottom{display:flex;align-items:center;gap:8px;border-top:1px solid var(--line);margin:15px 22px 0;padding:16px 0;color:#6e747d;font-size:10px}.sidebar-bottom button{margin-left:auto;font-size:22px;min-width:32px;min-height:32px}.connection-dot{width:6px;height:6px;background:#d6a062;border-radius:50%}.connected .connection-dot{background:#73869d}.disconnected .connection-dot{background:#cd765b}.chat-main{min-width:0;min-height:0;position:relative}.chat-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:25px}.empty-orbit{width:130px;height:130px;border:1px solid #d9e3f0;border-radius:50%;display:grid;place-items:center;outline:1px dashed #d9e3f0;outline-offset:20px;margin-bottom:52px;background:radial-gradient(#e6f0fb,transparent)}.empty-orbit .brand-mark{width:55px;height:55px;transform:rotate(-8deg);box-shadow:0 12px 30px #182a2914}.chat-empty .eyebrow{font-size:9px;color:#6b7683}.chat-empty h2{font-size:29px;line-height:1.3;letter-spacing:-1px;margin:17px 0}.chat-empty p{color:#6d747e;font-size:13px;line-height:1.8}.chat-empty .primary{font-size:12px;margin-top:26px}.empty-bottom{position:absolute;bottom:34px;font-size:8px;letter-spacing:2px;color:#6c7580}.empty-bottom span{margin:0 15px}#chat{height:100%;display:flex;flex-direction:column}.chat-header{height:93px;min-height:93px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;padding:0 30px}.chat-heading{flex:1;min-width:0}.chat-heading h2{font-size:17px;letter-spacing:-.4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-heading>span{font-size:10px;color:#6e767f;display:block;margin-top:6px}.chat-header .square{color:#7f8790;font-size:24px}.back{display:none}.context-bar{display:flex;align-items:center;gap:9px;padding:11px 30px;background:#ebeff4;border-bottom:1px solid #dde3eb;font-size:11px;color:#657282}.context-bar small{margin-left:auto;font-size:8px;letter-spacing:1px;color:#6c7683}.message-search{padding:10px 24px;display:flex;gap:10px;background:#fff;border-bottom:1px solid var(--line)}.message-search input{margin:0;min-height:38px;padding:9px;font-size:13px}.message-search button{font-size:12px}.messages{flex:1;overflow:auto;padding:25px 32px 12px;overscroll-behavior:contain;scroll-behavior:smooth}.messages .empty{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100%;text-align:center;padding:30px;color:#6d7680}.messages .empty>span{font-size:36px;color:#66768b;margin-bottom:14px}.messages .empty h3{margin:0 0 8px;font-size:17px;color:#54606f}.messages .empty p{font-size:12px;line-height:1.7;max-width:330px}.date-separator{display:flex;align-items:center;gap:14px;font-size:9px;letter-spacing:.5px;color:#6d7680;margin:4px 0 24px;justify-content:center}.date-separator:before,.date-separator:after{content:'';height:1px;background:#e8ebdf;flex:1}.message{display:flex;gap:10px;margin:0 0 19px;align-items:flex-end}.message.mine{flex-direction:row-reverse}.message .avatar{width:28px;height:28px;border-radius:50%;background:#e5e9da;color:#637285;display:grid;place-items:center;font-size:9px;font-weight:650;flex-shrink:0;margin-bottom:20px}.message.mine .avatar{display:none}.message-content{max-width:min(78%,660px);min-width:70px}.message-author{font-size:10px;color:#6a7686;margin-bottom:6px}.message.mine .message-author{text-align:right}.bubble{font-size:13px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;border:1px solid var(--nx-border);background:#fff;border-radius:12px 12px 12px 3px;padding:12px 15px;color:var(--nx-ink)}.mine .bubble{background:var(--nx-light);border-color:#bcd3f0;border-radius:12px 12px 3px 12px;color:var(--nx-ink)}.message-meta{font-size:9px;color:#6b7683;margin:6px 2px}.mine .message-meta{text-align:right}.composer{padding:15px 30px 20px;background:linear-gradient(transparent,#ffffff 10%)}.composer-box{border:1px solid #d3dae2;border-radius:12px;background:#fff;box-shadow:0 3px 12px #23324604}.composer textarea{resize:none;width:100%;border:0;outline:0;background:none;padding:15px 16px 5px;font-size:13px;line-height:1.6;min-height:48px;max-height:160px}.composer textarea:focus{outline:none}.composer-box:focus-within{border-color:#97a7bb}.composer-actions{display:flex;align-items:center;justify-content:space-between;padding:6px 10px 9px 16px}.composer-actions>span{color:#6a7685;font-size:9px}.send-button{width:36px;height:36px;display:grid;place-items:center;background:var(--accent);color:#fff;border-radius:9px;font-size:24px}.composer-hint{display:flex;justify-content:space-between;margin:9px 3px 0;color:#6b7582;font-size:8px}.send-error{margin:8px 30px 0;background:#fff0e7;color:#ad4f30;font-size:12px;padding:10px;border-radius:7px}.load-more{display:block;margin:0 auto 20px;font-size:11px;color:#606f81;border:1px solid #d3dae3;padding:8px 14px;border-radius:15px}dialog{border:1px solid var(--line);border-radius:18px;max-width:500px;width:calc(100% - 32px);padding:25px;color:var(--ink);box-shadow:0 24px 80px var(--nx-ink)33;background:#ffffff;max-height:85dvh}dialog::backdrop{background:#132a3055;backdrop-filter:blur(3px)}.modal-header{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:20px}.modal-header h2{font-size:21px;letter-spacing:-.6px}.modal-header .square{font-size:26px}.modal-copy{font-size:13px;line-height:1.8;color:#6d757e}.modal-actions{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}.modal-actions button{flex:1}.member-list{max-height:220px;overflow:auto;margin:10px 0;border:1px solid var(--line);border-radius:9px;background:#fff}.member-option{display:flex;align-items:center;gap:12px;padding:12px;border-bottom:1px solid var(--line);font-weight:400;font-size:13px}.member-option:last-child{border:0}.member-option input{width:18px;min-height:18px;margin:0;accent-color:var(--accent)}.member-option small{display:block;font-size:10px;color:#6c7683;margin-top:3px}.modal-form>label{margin-top:15px}.modal-form .primary{width:100%;margin-top:18px}.roadmap{list-style:none;padding:0;margin:20px 0}.roadmap li{display:flex;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line);font-size:13px}.roadmap li>span{font-size:10px;color:#6c7684}.roadmap small{margin-left:auto;font-size:10px;color:#6c7683}.roadmap li:first-child{color:var(--accent)}.no-rooms{padding:25px 12px;font-size:12px;color:#6c7681;line-height:1.8}.project-row{padding:14px 0;border-bottom:1px solid var(--line);font-size:14px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:13px 22px;border-radius:10px;font-size:13px;z-index:var(--z-toast,60);max-width:90%;box-shadow:0 4px 24px #0002}
@media(min-width:1500px){#workspace{grid-template-columns:90px 365px minmax(0,1fr)}.messages{padding:30px 7%}.composer{padding:16px 7% 24px}.auth-story{padding:50px 70px}}@media(max-width:1050px){#workspace{grid-template-columns:70px 280px minmax(0,1fr)}.workspace-brand{margin:0 18px}.sidebar-title{padding-left:18px;padding-right:18px}.sidebar-title h1{font-size:22px}.filters{padding:16px 14px}.search-box{margin:0 18px}.chat-header{padding:0 20px}.messages{padding:24px 20px 10px}.composer{padding:12px 20px 18px}.auth-story{padding:30px}.story-body h1{font-size:48px}}@media(max-width:720px){#auth{display:block}.auth-story{padding:24px;min-height:240px}.story-body{padding:27px 0 0}.story-body h1{font-size:37px;letter-spacing:-1.7px;margin:16px 0}.story-body h1 br:nth-child(2){display:none}.story-body p,.blueprint,.story-footer{display:none}.auth-story .brand{font-size:17px}.auth-story .brand-mark{width:35px;height:35px;font-size:24px}.auth-panel{padding:32px 25px}.auth-card{max-width:410px}.auth-card h2{font-size:27px}.auth-card form{margin-top:23px}.auth-panel>small{margin-top:25px}#workspace{grid-template-columns:60px minmax(0,1fr);height:100dvh;padding-top:env(safe-area-inset-top)}.rail{padding:20px 0 calc(20px + env(safe-area-inset-bottom));gap:28px}.rail .brand-mark{width:36px;height:36px;font-size:24px}.rail-button{width:49px;height:58px}.sidebar{border:0}.workspace-brand{height:82px}.sidebar-title h1{font-size:26px}.sidebar-title{padding:24px 20px 18px}.sidebar-title .square{width:40px;height:40px}.filters{padding:18px 20px}.filters button{font-size:12px}.rooms{padding:0 12px}.room{padding:17px 12px}.room-name{font-size:14px}.room-preview{font-size:12px}.room-avatar{width:44px;height:44px}.sidebar-bottom{padding-bottom:calc(15px + env(safe-area-inset-bottom))}.chat-main{display:none}.mobile-chat .rail,.mobile-chat .sidebar{display:none}.mobile-chat#workspace{display:block}.mobile-chat .chat-main{display:block;height:100%}.chat-header{height:75px;min-height:75px;gap:9px;padding:0 12px}.chat-header .room-avatar{width:37px;height:37px;border-radius:10px}.chat-heading h2{font-size:15px}.chat-heading>span{font-size:10px}.chat-header .square{min-width:34px;min-height:40px}.back{display:inline-grid}.messages{padding:22px 15px 10px}.message-content{max-width:83%}.bubble{font-size:14px}.composer{padding:10px 12px calc(10px + env(safe-area-inset-bottom))}.composer textarea{font-size:16px;padding:12px 12px 5px}.composer-hint{display:none}.composer-actions{padding-left:12px}.composer-actions>span{font-size:8px}.send-button{width:40px;height:40px}.send-error{margin:6px 12px}.context-bar{padding:10px 16px}.context-bar small{display:none}.modal-header h2{font-size:20px}input,select{font-size:16px}.message-search input{font-size:16px}.search-box input{font-size:16px}.search-box input::placeholder{font-size:12px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* Chat attachments, quotes and notification controls */
.message-actions{display:flex;gap:5px;flex-wrap:wrap;margin:5px 0}.message-actions button{font:inherit;font-size:12px;border:1px solid var(--line,#dededb);border-radius:12px;background:var(--paper,#fff);padding:4px 8px;cursor:pointer;color:inherit}.message-actions .mine-reaction{background:var(--nx-light);border-color:var(--nx-blue)}.quoted-message{border-left:3px solid var(--nx-blue);background:#00000008;border-radius:5px;padding:8px;margin-bottom:8px;font-size:12px;white-space:pre-wrap;max-height:100px;overflow:auto}.attachment{display:flex;flex-direction:column;gap:6px;padding:9px;margin-top:8px;background:#00000006;border-radius:10px;color:inherit;text-decoration:none;overflow-wrap:anywhere}.attachment img{max-width:280px;max-height:230px;width:100%;object-fit:contain;border-radius:8px}.attachment small{color:#747474}.attachment-drafts{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}.attachment-drafts>span{font-size:12px;background:var(--nx-light);border-radius:10px;padding:6px 10px}.attachment-drafts button,.reply-draft button{border:0;background:none;cursor:pointer;font-size:20px}.reply-draft{display:flex;justify-content:space-between;border-left:3px solid var(--nx-blue);padding:8px;background:#edf2f7;font-size:12px;margin-bottom:8px}.reply-draft span{max-height:65px;overflow:auto}.attach-actions{display:flex;gap:8px}.attach-actions button{border:0;background:none;padding:8px;cursor:pointer;color:var(--nx-blue)}.emoji-picker{display:flex;gap:8px;flex-wrap:wrap}.emoji-picker button{font-size:26px;padding:10px;background:#f0f4fa;border:0;border-radius:12px;cursor:pointer}#upload-status{font-size:12px;padding:6px;color:var(--nx-muted)}.message-content{min-width:0}.bubble{overflow-wrap:anywhere}

/* Nexus chat: green navigation, neutral surfaces and clear conversation hierarchy. */
:root{--muted:var(--nx-muted);--line:var(--nx-border);--paper:#fff;--mint:var(--nx-light)}
.rail{background:var(--nx-blue)}.rail .brand-mark{background:#fff;color:var(--nx-blue)}.rail-button{color:var(--nx-light)}.rail-button.active{background:var(--nx-blue-hover);color:#fff}.rail-button:hover{background:#134179}.profile-avatar{background:var(--nx-light);color:var(--nx-blue-hover)}
.workspace-brand{height:72px}.sidebar-title{padding-top:18px}.sidebar-title h1{font-size:22px}.sidebar-title h1>span{background:#edf3fc;color:var(--nx-muted)}
.room{border-radius:0;margin:0;padding:16px 12px}.rooms{padding:0}.room:hover{background:#f3f6fa}.room.active{background:var(--nx-light)}.room-avatar,.room-avatar.direct{border-radius:50%;background:var(--nx-light);color:var(--nx-blue)}.room-name{font-size:15px;color:var(--nx-ink)}.room-preview{font-size:13px;color:var(--nx-muted)}.room-time{font-size:11px;color:#697589}
#chat,.chat-empty{background:#f4f7fb}.chat-header{height:72px;min-height:72px}.chat-header .room-avatar{border-radius:50%}.chat-heading>span,.chat-header .square{color:var(--nx-muted)}.context-bar{background:#f0f5fc;border-color:#dce7f5;color:var(--nx-muted)}
.message .avatar{background:var(--nx-light);color:var(--nx-blue)}.message-author{color:var(--nx-muted)}.bubble{font-size:15px;border-color:#dce3ec;border-radius:10px;color:var(--nx-ink);box-shadow:0 1px 2px var(--nx-ink)08}.mine .bubble{border-radius:10px;background:var(--nx-light);border-color:#bcd3f0;color:var(--nx-ink)}.message-meta{font-size:11px;color:#68788c}.date-separator{font-size:11px;color:#65758b}.date-separator:before,.date-separator:after{background:#d7e0eb}
.composer{background:#fff;border-top:1px solid var(--nx-border);padding-top:10px}.composer-box{border-color:var(--nx-border);border-radius:10px;box-shadow:none}.composer-box:focus-within{border-color:#8fb8ef}.composer textarea{font-size:15px}.send-button{border-radius:50%;background:var(--nx-blue)}.composer-hint{color:var(--nx-muted)}.attach-actions button{color:var(--nx-blue)}.chat-empty h2{color:var(--nx-ink)}.chat-empty p,.chat-empty .eyebrow,.empty-bottom{color:var(--nx-muted)}.empty-orbit{background:var(--nx-light)}.search-box{background:#f0f5fc}.filters button.selected{background:var(--nx-light);color:var(--nx-blue)}.square.accent{background:var(--nx-light);color:var(--nx-blue)}.square:hover{background:#edf3fc}dialog{background:#fff}
@media(max-width:720px){.chat-header{background:var(--nx-blue);color:#fff}.chat-heading>span,.chat-header .square{color:var(--nx-light)}.composer{padding:10px 12px calc(10px + env(safe-area-inset-bottom))}.message-content{max-width:85%}}
.project-list{display:grid;gap:8px;margin:14px 0}.project-card{display:flex;flex-direction:column;gap:7px;text-align:left;border:1px solid var(--line);border-radius:12px;padding:14px;background:#f0f5fc;width:100%}.project-card span,.project-card small{font-size:12px;color:var(--muted)}.modal-form textarea{display:block;width:100%;padding:12px;border:1px solid var(--line);border-radius:9px;resize:vertical}.member-option{flex-wrap:wrap}.member-option>span{flex:1;min-width:120px}#modal-body h3{margin-top:22px}

.key-fingerprint { overflow-wrap: anywhere; }

.profile-trigger { border:0; background:none; cursor:pointer; color:inherit; font:inherit; text-align:inherit; padding:0; }
.message-author.profile-trigger { font-size:12px; font-weight:600; margin-bottom:5px; }
.avatar img,.person-photo img { width:100%; height:100%; object-fit:cover; border-radius:50%; }
.person-card { text-align:center; overflow-wrap:anywhere; } .person-card p { margin:8px 0; } .person-card small { color:#607082; }
.person-photo { width:90px; height:90px; border-radius:50%; margin:8px auto 18px; display:grid; place-items:center; background:var(--nx-light); color:var(--nx-blue); font-size:28px; }
.personal-qr { width:280px; max-width:100%; height:auto; } #qr-video { width:100%; max-height:360px; border-radius:12px; margin-top:12px; }
.contact-card { display:flex; gap:12px; align-items:center; width:100%; text-align:left; border:0; border-bottom:1px solid #e5eaf0; background:transparent; color:inherit; padding:12px 4px; cursor:pointer; }
.contact-card .avatar { width:44px; height:44px; flex-shrink:0; display:grid; place-items:center; border-radius:50%; background:var(--nx-light); color:var(--nx-blue); }
.contact-card small { display:block; color:#627383; margin-top:5px; }
#chat-title[role=button] { cursor:pointer; }

.person-card label { display:block; margin:12px 0; }
.person-card > a.secondary { display:inline-block; margin:4px 0 12px; }

/* Approved Nexus green conversation theme. */
.rail{background:#f0f5fc;border-right:1px solid var(--nx-border)}.rail .brand-mark{background:var(--nx-blue);color:white}.rail-button{color:var(--nx-muted)}.rail-button.active,.rail-button:hover{background:var(--nx-light);color:var(--nx-blue)}.workspace-brand strong,.sidebar-title h1{color:var(--nx-blue)}
.bubble{background:#fff;border:0;border-radius:16px;color:var(--nx-ink)}.mine .bubble{background:#d3e6fd;border:0;border-radius:16px;color:var(--nx-ink)}.message-author{color:var(--nx-blue)}.message-meta{color:var(--nx-muted)}
#chat{background-color:#f4f7fb;background-image:radial-gradient(#d5deea 0.7px,transparent 0.7px);background-size:18px 18px}.chat-header{background:#fff;color:var(--nx-ink)}.chat-heading>span,.chat-header .square{color:var(--nx-muted)}.chat-header .square:hover{background:var(--nx-light)}.composer{background:#f4f7fb;border:0}.composer-box{background:#fff;border-radius:24px}.filters button{border-radius:22px}.filters button.selected{background:var(--nx-light);color:var(--nx-blue)}.primary{border-radius:24px}.project-card{background:#f0f5fc}.search-box{border-radius:13px}.room.active{background:var(--nx-light)}.room:hover{background:#f0f5fc}
@media(max-width:720px){.rail{background:#fff}.rail-button.active{background:var(--nx-light);color:var(--nx-blue)}.chat-header{background:#fff;color:var(--nx-ink)}.chat-heading>span,.chat-header .square{color:var(--nx-blue)}}

.avatar-crop canvas{display:block;width:280px;max-width:100%;height:auto;aspect-ratio:1;margin:12px auto;border-radius:50%;touch-action:none;cursor:grab;border:2px solid var(--accent)}.avatar-crop input[type=range]{padding:0;min-height:32px;accent-color:var(--accent)}.avatar-crop .primary{margin-top:16px;width:100%;justify-content:center}
@media(max-height:800px){.avatar-crop canvas{width:210px}.avatar-crop label{margin-top:6px}.avatar-crop .primary{margin-top:10px}}

/* Project workspace: compact document-management shell. Chat keeps its existing layout. */
#workspace.cde-mode{display:block;background:#f4f5f7}#workspace.cde-mode>.rail,#workspace.cde-mode>.sidebar,#workspace.cde-mode>.chat-main{display:none!important}
#cde{--cde-blue:var(--nx-blue);--cde-border:var(--nx-border);--cde-muted:#637180;position:absolute;inset:0;background:#f4f5f7;color:#263340;font:14px/1.45 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;overflow:hidden}#cde[hidden]{display:none}#cde button,#cde input,#cde select,#cde textarea{font:inherit}#cde button{cursor:pointer}#cde button:disabled{opacity:.6;cursor:default}#cde [hidden]{display:none!important}
.cde-topbar{height:56px;background:var(--nx-navy);color:#fff;display:flex;align-items:center;padding:0 22px;gap:20px}.cde-brand{display:flex;align-items:center;gap:9px;color:#fff;background:none;border:0;padding:0}.cde-brand b{font-size:19px;letter-spacing:-.8px}.cde-brand span{font-size:11px;letter-spacing:1.5px;color:#c0cbd5}.cde-top-divider{height:25px;width:1px;background:#54606c}.cde-project-switch{color:#fff;background:none;border:0;display:flex;gap:35px;align-items:center;font-size:13px!important}.cde-top-right{margin-left:auto;display:flex;gap:22px;align-items:center}.cde-local-label{font-size:12px;color:#aeb9c4}.cde-icon-button{color:#dce5ec;background:none;border:0;font-size:23px!important}.cde-avatar{width:30px;height:30px;border:0;background:#536c84;color:#fff;border-radius:50%;font-size:11px!important}.cde-sidebar{position:absolute;top:56px;bottom:0;left:0;width:208px;background:#fff;border-right:1px solid var(--cde-border);padding:20px 10px;display:flex;flex-direction:column}.cde-product{display:flex;gap:10px;align-items:center;padding:0 12px 21px;border-bottom:1px solid #edf0f2}.cde-product-icon{width:32px;height:35px;display:grid;place-items:center;background:#187aba;color:#fff;font-weight:800;border-radius:3px;font-size:20px}.cde-product strong{font-size:15px;display:block}.cde-product small{color:var(--cde-muted);font-size:11px}.cde-nav-group{font-size:9px;font-weight:600;letter-spacing:1px;color:#687684;margin:24px 12px 8px}.cde-nav{width:100%;border:0;background:none;text-align:left;display:flex;align-items:center;gap:13px;color:#485867;height:40px;padding:0 13px;margin:2px 0;border-radius:3px;font-size:13px!important}.cde-nav span{width:18px;font-size:18px;color:#687784}.cde-nav:hover{background:#f3f6f9}.cde-nav.selected{background:#e7f2fb;color:#076fae;font-weight:600;border-left:3px solid #087cbd;padding-left:10px}.cde-nav.selected span{color:#076fae}.cde-sidebar-foot{margin-top:auto;padding:20px 12px 0;border-top:1px solid #edf0f2;color:#637180;font-size:11px}.cde-sidebar-foot small{display:block;margin-top:4px;color:#697683}.cde-online-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#336097;margin-right:5px}
.cde-main{position:absolute;left:208px;right:0;top:56px;bottom:0;overflow:auto;padding:24px 28px}.cde-breadcrumb{color:#697683;font-size:11px;margin-bottom:19px}.cde-breadcrumb span{margin:0 9px;color:#697583}.cde-page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.cde-page-heading h1{font-size:25px;line-height:1.3;font-weight:650;margin:0 0 5px;letter-spacing:-.5px}.cde-page-heading p{font-size:12px;color:#697683;margin:0}.cde-heading-actions{display:flex;gap:8px;flex-shrink:0}#cde .cde-button{height:34px;padding:0 14px;border:1px solid #c9d1d9;background:#fff;border-radius:3px;color:#3e4e5d;white-space:nowrap;font-weight:500;font-size:12px;display:inline-flex;align-items:center;justify-content:center;gap:6px;box-shadow:none}#cde .cde-button.primary{color:#fff;background:var(--cde-blue);border-color:var(--cde-blue)}#cde .cde-button:hover{filter:brightness(.97)}.cde-content{background:#fff;border:1px solid var(--cde-border);border-radius:4px;overflow:hidden}.cde-tabs{display:flex;gap:25px;height:49px;border-bottom:1px solid var(--cde-border);padding:0 20px}.cde-tabs button{display:flex;gap:8px;align-items:center;border:0;border-bottom:3px solid transparent;background:none;font-size:12px!important;color:#657380;padding:0 1px}.cde-tabs button.active{color:#0674c1;border-bottom-color:#0674c1;font-weight:600}.cde-tabs button span{font-size:10px;padding:1px 5px;border-radius:8px;background:#edf1f5;color:#687683}.cde-table-toolbar{display:flex;gap:14px;align-items:center;padding:15px 18px;border-bottom:1px solid var(--cde-border);min-height:62px;font-size:12px}.cde-table-toolbar>span{color:#687784}.cde-search{display:flex;align-items:center;gap:9px;border:1px solid #cfd6de;border-radius:3px;padding:0 10px;width:300px;height:33px;color:#677685;font-size:22px}#cde .cde-search input{border:0;box-shadow:none;padding:0;height:auto;background:none;width:100%;font-size:12px;outline:none}.cde-toolbar-spacer{flex:1}.cde-table-wrap{width:100%;overflow:auto;min-height:300px}.cde-table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}.cde-table th{background:#f8f9fb;color:#657380;font-size:11px;font-weight:600;padding:13px 16px;border-bottom:1px solid var(--cde-border);border-right:1px solid #eef0f3}.cde-table td{padding:16px;border-bottom:1px solid #e9edf1;font-size:12px;color:#485867;height:57px}.cde-table tbody tr:hover{background:#f4f9fd}.cde-table [data-issue]{cursor:pointer}.cde-id-col{width:65px}.cde-title-col{min-width:250px}.cde-number{color:#677684!important}.cde-title-link{border:0;background:none;padding:0;color:#1673ad;font-weight:500;text-align:left;font-size:12px!important;display:inline-flex;align-items:center;gap:12px}.cde-title-link:hover{text-decoration:underline}.cde-badge{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-size:11px;color:#445565;background:#eef2f5;padding:4px 9px;border-radius:3px}.cde-badge i{width:6px;height:6px;background:#8496a7;border-radius:50%}.cde-badge.open{color:#1f70ad;background:#e8f3fc}.cde-badge.open i{background:#2782c1}.cde-badge.in_progress{color:#936509;background:#fff5da}.cde-badge.in_progress i{background:#c99722}.cde-badge.in_review{color:#7954a4;background:#f0ebf9}.cde-badge.in_review i{background:#9170b9}.cde-badge.closed{color:#395980;background:#eaeef4}.cde-badge.closed i{background:#436793}.cde-person-dot{display:inline-grid;place-items:center;background:#eaf0f5;color:#61768b;width:23px;height:23px;font-size:10px;border-radius:50%;margin-right:8px}.cde-priority{color:#5e788f;font-size:10px}.cde-priority.high{color:#a16914}.cde-priority.urgent{color:#ca4d47}.cde-overdue{color:#b55049!important}.cde-overdue small,.cde-warning{display:block;font-size:10px;color:#9f6a23;margin-top:3px}.cde-table-footer{padding:12px 17px;display:flex;justify-content:space-between;border-top:1px solid #e5e9ee;color:#697681;font-size:10px}.cde-project-tile{display:inline-grid;place-items:center;width:33px;height:33px;background:#edf4fa;color:#367faf;border:1px solid #d7e6f1;border-radius:3px;font-size:21px}.cde-project-state{font-size:11px;color:#53606f}.cde-empty{text-align:center;padding:60px 20px;color:#687784}.cde-empty>span{font-size:35px;color:#567795}.cde-empty h3{font-size:15px;color:#657787;margin:12px 0 5px}.cde-empty p{font-size:12px}.cde-loading{text-align:center;padding:60px;color:#627788}.cde-page-error{padding:12px;background:#fff0ef;color:#a64e43;border:1px solid #efd0cb;margin-bottom:12px;font-size:12px}.cde-update{display:flex;align-items:center;gap:12px;padding:8px 12px;border:1px solid #cee0ed;background:#edf7ff;color:#3d7399;font-size:11px;margin-bottom:12px}.cde-update button,.cde-text-button{background:none;border:0;color:#0878b9;font-size:12px!important;padding:0}.cde-text-button.danger{color:#b55249}.cde-filters{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px 12px;align-items:end;padding:14px 16px;background:#f8fafc;border-bottom:1px solid var(--cde-border)}.cde-filters #cde-clear-filters{justify-self:start;align-self:end;height:31px}.cde-filter-count{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--nx-blue,#087cbd);color:#fff;font-size:10px;font-weight:700;margin-left:4px}.cde-filters label{font-size:11px;color:#677786;min-width:130px;display:grid;gap:5px}.cde-filters input,.cde-filters select{height:31px!important;padding:4px 8px!important;font-size:11px!important;border:1px solid #cdd6de!important;border-radius:3px!important;background:#fff!important}.cde-filters button{margin:0 0 8px}
.cde-drawer{position:absolute;top:56px;right:0;bottom:0;width:420px;background:#fff;border-left:1px solid #cfd7df;box-shadow:-7px 0 20px #23394c12;z-index:var(--z-drawer,20);overflow:hidden}.cde-drawer>header{min-height:84px;border-bottom:1px solid #dde3e9;display:flex;justify-content:space-between;padding:20px 22px;gap:15px;align-items:start}.cde-drawer>header small{font-size:9px;color:#8493a0;letter-spacing:1px}.cde-drawer h2{font-size:19px;font-weight:600;margin:4px 0 0;line-height:1.35;overflow-wrap:anywhere}.cde-close{border:0;background:none;color:#657787;font-size:24px!important;line-height:1;padding:0}.cde-drawer-body{padding:22px;overflow:auto;height:calc(100% - 90px)}.cde-drawer-backdrop{position:absolute;inset:56px 420px 0 208px;background:#263d5010;z-index:calc(var(--z-drawer,20) - 1)}.cde-detail-status{display:flex;align-items:center;gap:12px;margin-bottom:17px}.cde-detail-tabs{display:flex;gap:25px;border-bottom:1px solid #e2e7ed;margin-bottom:22px}.cde-detail-tabs button{border:0;border-bottom:2px solid transparent;padding:10px 0;background:none;font-size:12px!important;color:#637788}.cde-detail-tabs button.active{border-bottom-color:#0879bc;color:#0879bc}.cde-detail-tabs span{font-size:10px;background:#eef2f5;padding:1px 4px}.cde-detail-info h3{font-size:11px;color:#657786;font-weight:500;margin:0 0 7px}.cde-detail-info p{font-size:12px;line-height:1.7;white-space:pre-wrap}.cde-detail-info dl,.cde-settings-card dl{display:grid;grid-template-columns:130px 1fr;gap:18px 15px;margin:25px 0;font-size:12px}.cde-detail-info dt,.cde-settings-card dt{color:#677783}.cde-detail-info dd,.cde-settings-card dd{margin:0;color:#425666;overflow-wrap:anywhere}.cde-panel-note{font-size:10px!important;background:#f5f8fa;padding:10px 12px;color:#677784;margin:22px 0!important}.cde-detail-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:12px 22px;border-top:1px solid #e9edf1;background:#fff;position:sticky;bottom:0;margin:0 -22px -22px}.cde-detail-actions:empty{display:none}.cde-detail-actions .cde-button{font-size:12px;padding:7px 12px}.cde-detail-actions .cde-button.push{margin-left:auto}.cde-detail-actions .cde-button.danger{color:#b0392b;border-color:#e6b1aa;background:#fff}.cde-detail-actions .cde-button.danger:hover{background:#fff1f1}.cde-activity{padding:15px 0;border-bottom:1px solid #e8edf2;font-size:12px}.cde-activity time{display:block;font-size:10px;color:#687682;margin:3px 0 8px}.cde-activity p{margin:5px 0;white-space:pre-wrap}.cde-activity small{font-size:11px;color:#657784;line-height:1.6}.cde-form{display:grid;gap:17px}.cde-form label{display:grid;gap:7px;color:#617483;font-size:12px}.cde-form em{font-style:normal;color:#c85f50}.cde-form input,.cde-form select,.cde-form textarea{width:100%;border:1px solid #cbd5de;border-radius:3px;padding:9px 10px;font-size:12px!important;background:#fff;color:#354f63;box-shadow:none;outline:none}.cde-form input:focus,.cde-form select:focus,.cde-form textarea:focus{border-color:#1182c6;box-shadow:0 0 0 2px #e5f3fb}.cde-form textarea{resize:vertical}.cde-form footer{display:flex;justify-content:flex-end;gap:8px;border-top:1px solid #e5eaf0;padding:18px 0;margin-top:7px}.cde-form-error{font-size:11px;color:#b6554d;white-space:pre-wrap;margin:0}.cde-panel-section{border-top:1px solid #e1e7ed;padding-top:20px;margin-top:25px}.cde-panel-section h3{font-size:14px;margin-bottom:16px}.cde-settings-card{padding:22px 25px;border-bottom:1px solid #e3e8ed}.cde-settings-card h2{font-size:15px;font-weight:600}.cde-settings-card p{font-size:12px;color:#647785}.cde-notification-list>button{display:flex;gap:13px;align-items:center;width:100%;background:#fff;border:0;border-bottom:1px solid #e6ecf1;padding:18px 22px;text-align:left;color:#4c6274;font-size:12px!important}.cde-notification-list small{display:block;color:#637785;font-size:11px;margin-top:4px}.cde-notification-list>button>span:last-child{margin-left:auto}
@media(min-width:1500px){.cde-main{padding:30px 36px}.cde-table td{padding-top:18px;padding-bottom:18px}}
@media(max-width:950px){.cde-sidebar{width:174px}.cde-main{left:174px;padding:20px}.cde-nav{font-size:12px!important;padding-left:9px}.cde-nav.selected{padding-left:6px}.cde-page-heading{align-items:flex-start;flex-wrap:wrap;gap:14px}.cde-page-heading p{max-width:400px}.cde-local-label{display:none}.cde-drawer-backdrop{left:174px}.cde-table-title{min-width:200px}}
@media(max-width:650px){.cde-topbar{padding:0 13px;gap:12px}.cde-brand b{font-size:16px}.cde-brand span,.cde-top-divider,.cde-product,.cde-nav-group,.cde-sidebar-foot,.cde-project-switch{display:none}.cde-top-right{gap:15px}.cde-nav{min-width:70px;width:auto;flex:1;flex-direction:column;height:51px;gap:1px;padding:3px 5px!important;font-size:9px!important;justify-content:center;white-space:nowrap}.cde-nav span{font-size:18px;text-align:center}.cde-nav.selected{border-left:0;border-top:2px solid #087cbd;border-radius:0}.cde-main{padding:17px 12px}.cde-page-heading{margin-bottom:16px}.cde-page-heading h1{font-size:22px}.cde-page-heading p{font-size:11px}.cde-breadcrumb{font-size:10px;margin-bottom:12px}.cde-heading-actions{width:100%}.cde-table-toolbar{padding:12px;gap:8px;flex-wrap:wrap}.cde-search{width:100%;flex:1;min-width:175px}.cde-table-toolbar>span{font-size:10px}.cde-tabs{gap:17px;padding:0 12px;overflow:auto;white-space:nowrap}.cde-tabs button{font-size:11px!important}.cde-table-footer{display:block;line-height:1.8}.cde-table-footer>span:last-child{display:none}.cde-drawer{width:100%;top:56px;bottom:0}.cde-drawer-backdrop{display:none}.cde-content{border-radius:3px}.cde-filters label{min-width:120px;flex:1}.cde-settings-card{padding:18px}.cde-settings-card dl{grid-template-columns:90px 1fr}.cde-project-tile{display:none}}

#cde .cde-button{min-height:34px;line-height:1.2}#cde .cde-form footer .cde-button{width:auto}

/* Project setup: reference REF-06, shared organization/member workspace. */
#cde.setup-mode{--cde-blue:var(--nx-blue);--cde-border:#dce5ef;color:#173052;background:#f6f9fd}
#cde.setup-mode .cde-topbar{height:60px;background:var(--nx-navy);padding:0 24px}
#cde.setup-mode .cde-brand b{font-size:25px;letter-spacing:-.7px;color:#fff}
#cde.setup-mode .cde-brand span{font-size:25px;color:#8dc5ff;letter-spacing:-.7px}
#cde.setup-mode .cde-sidebar{top:60px;width:236px;background:#f6f9fd;padding:18px 10px;border-color:#dce5ef}
#cde.setup-mode .cde-product{padding:14px 10px;margin:0 0 24px;border:1px solid #dce5ef;border-radius:7px;background:#fff}
#cde.setup-mode .cde-nav-group{display:none}
#cde.setup-mode .cde-nav{height:54px;font-size:15px!important;margin:3px 0;padding:10px 17px;gap:16px;border-radius:5px;color:#465f83}
#cde.setup-mode .cde-nav.selected{background:#e5f1ff;color:#0066ff;border-color:#0066ff;font-weight:600}
#cde.setup-mode .cde-main{top:60px;left:236px;padding:22px;right:0;transition:none;background:linear-gradient(120deg,#fbfdff,#f3f8fc)}
#cde.setup-mode.drawer-open .cde-main{right:368px}
#cde.setup-mode .cde-breadcrumb{font-size:14px;margin:0 0 28px}
#cde.setup-mode .cde-page-heading{margin-bottom:24px;gap:16px}
#cde.setup-mode .cde-page-heading h1{font-size:29px;line-height:1.3;font-weight:750;color:#112c50}
#cde.setup-mode .cde-page-heading p{font-size:15px;line-height:1.6;margin-top:8px;color:#5a6f90}
#cde.setup-mode .cde-content{background:transparent;border:0;overflow:visible;border-radius:0}
.setup-steps{list-style:none;display:flex;gap:24px;padding:16px 18px;margin:0 0 18px;border:1px solid #dce5ef;border-radius:8px;background:#ffffffb8}
.setup-steps li{display:flex;gap:18px;flex:1;align-items:flex-start;color:#566b8b;position:relative;min-width:0}
.setup-steps li:not(:last-child):after{content:'⟶';color:#c4d3e6;position:absolute;right:0;top:12px;font-size:24px}
.setup-steps li>span{width:44px;height:44px;flex-shrink:0;background:#e0e7f0;display:grid;place-items:center;border-radius:50%;font-size:20px;font-weight:650}
.setup-steps strong{display:block;font-size:16px;padding:5px 0}
.setup-steps p{font-size:14px;color:#66768f;line-height:1.5;margin:0}
.setup-steps .active>span{background:#0066ff;color:white}.setup-steps .active strong{color:#0066ff}
.setup-notice{border:1px solid #c7e2ff;background:#e9f4ff;border-radius:7px;padding:13px 15px;color:#2162b7;font-size:13px;line-height:1.65;margin:0 0 20px}
.setup-notice>b{font-size:21px;color:#0066ff;vertical-align:middle;margin-right:10px}
.setup-tabs{display:flex;gap:10px;border-bottom:1px solid #d6e0ec;height:56px;margin-bottom:24px}
#cde .setup-tabs button{border:0;border-bottom:3px solid transparent;background:none;padding:0 18px;font-size:15px;color:#596e8b;font-weight:600}
#cde .setup-tabs button[aria-selected=true]{color:#0066ff;border-bottom-color:#0066ff}
.setup-toolbar{display:flex;gap:12px;align-items:center;margin-bottom:20px}
#cde .setup-toolbar select{height:44px;font-size:13px;border:1px solid #ccd9e8;border-radius:5px;padding:0 12px;background:white;max-width:190px;color:#344d70}
.setup-search{display:flex;align-items:center;border:1px solid #ccd9e8;border-radius:5px;height:44px;padding:0 12px;gap:10px;background:#fff;max-width:288px;flex:1;min-width:150px;color:#5e7794}
.setup-search span{font-size:24px}#cde .setup-search input{border:0;background:none;box-shadow:none;font-size:13px;width:100%;padding:0;min-width:0}
#cde.setup-mode .cde-button{font-size:14px!important;min-height:44px;padding:10px 15px;border-radius:5px}
#cde.setup-mode .cde-button.primary{background:#0066ff;border-color:#0066ff;color:#fff;font-weight:650}
.setup-org-table{border:1px solid #dce5ef;border-radius:8px;overflow:hidden;background:#fff}
.setup-org-table .cde-table-wrap{min-height:0}.setup-org-table .cde-table{white-space:normal}
.setup-org-table .cde-table th{background:#f0f5fa;font-size:13px;color:#314969;border-right:0;height:53px;padding:12px 16px}
#cde .setup-org-table th button{border:0;background:none;padding:0;color:inherit;font-size:13px!important;font-weight:600;white-space:nowrap}
.setup-org-table th button span{margin-left:7px;color:#5c779a}
.setup-org-table .cde-table td{height:83px;padding:12px 17px;font-size:14px;color:#203b5f}
.org-name-cell{display:flex;gap:14px;align-items:center;min-width:180px}.org-name-cell strong{font-size:14px;color:#122f53;display:block;overflow-wrap:anywhere}.org-name-cell small{display:block;color:#667691;font-size:12px;margin-top:6px}
.org-monogram{width:57px;height:57px;border:1px solid #dbe6f2;display:grid;place-items:center;border-radius:9px;color:#1475d1;background:linear-gradient(145deg,white,#edf5ff);font-size:19px;font-weight:750;flex-shrink:0;overflow-wrap:anywhere;text-align:center;padding:3px}
.org-kind{border-radius:5px;padding:7px 10px;font-size:12px;display:inline-block;background:#ecf2f7;color:#405e7e;white-space:nowrap}.org-kind.client{background:#e4efff;color:#0062ee}.org-kind.design{background:#e9efff;color:#5364cb}.org-kind.bim{background:#efebff;color:#7659da}
.org-member-icon{font-size:23px;color:#5f7696;margin-right:5px}.org-state{display:inline-flex;border-radius:20px;padding:7px 11px;font-size:12px;white-space:nowrap}.org-state.active{background:#e4edf8;color:#094894}.org-state.inactive{background:#f1f3f5;color:#687789}
#cde .org-more{border:0;background:none;color:#52698b;letter-spacing:1px;font-size:17px!important;padding:9px;cursor:pointer}.setup-count{font-size:12px;color:#67768d;margin:12px 0}
#cde.setup-mode .cde-drawer{top:60px;width:368px;border-color:#e0e7ef;box-shadow:-6px 0 24px #1c395d08;display:flex;flex-direction:column}
#cde.setup-mode .cde-drawer-backdrop{display:none}
#cde.setup-mode .cde-drawer>header{min-height:68px;border:0;padding:25px 21px 10px;flex-shrink:0}
#cde.setup-mode .cde-drawer>header small:empty{display:none}
#cde.setup-mode .cde-drawer h2{font-size:22px;font-weight:700;margin:0;color:#112d50}
#cde.setup-mode .cde-drawer-body{height:auto;flex:1;min-height:0;padding:0 21px 22px;display:flex;flex-direction:column;overflow:auto}
.org-form-description{font-size:13px;line-height:1.6;color:#4d6283;margin:0 0 28px}
#cde.setup-mode .org-form{display:flex;flex-direction:column;gap:20px;flex:1;min-height:min-content}
#cde.setup-mode .org-form label{font-size:13px;color:#203b61;font-weight:650;gap:10px}
#cde.setup-mode .org-form input,#cde.setup-mode .org-form select{font-size:14px!important;height:42px;border-radius:6px;font-weight:400;border-color:#ccd9e9;padding:10px 12px}
#cde.setup-mode .org-form footer{margin-top:auto;padding:24px 0 12px;border:0;position:sticky;bottom:-22px;background:#fff;flex-shrink:0}
#cde.setup-mode .org-form footer button:first-child{flex:1}#cde.setup-mode .org-form footer button:last-child{flex:2}
.org-inactive-note{font-size:12px;color:#916019;background:#fff5df;border-radius:5px;padding:12px;line-height:1.6;margin:0}
@media(max-width:1300px){.setup-steps{gap:14px}.setup-steps li{gap:10px}.setup-steps li:not(:last-child):after{display:none}.setup-steps p{font-size:12px}.setup-toolbar{flex-wrap:wrap}.setup-toolbar .cde-toolbar-spacer{display:none}.setup-org-table .cde-table{min-width:700px}#cde.setup-mode.drawer-open .cde-main{right:0}#cde.setup-mode.drawer-open .cde-drawer-backdrop{display:block;inset:60px 368px 0 236px;background:#17395e24}}
@media(max-width:950px){#cde.setup-mode .cde-sidebar{width:180px}#cde.setup-mode .cde-main{left:180px;padding:18px}#cde.setup-mode .cde-nav{font-size:12px!important;padding:8px;gap:8px}#cde.setup-mode.drawer-open .cde-drawer-backdrop{left:180px}.setup-steps{padding:14px 12px}.setup-steps strong{font-size:13px}.setup-steps p{font-size:11px}.setup-steps li>span{width:32px;height:32px;font-size:16px}}
@media(max-width:650px){#cde.setup-mode .cde-topbar{height:56px;padding:0 14px}#cde.setup-mode .cde-brand b{font-size:20px}#cde.setup-mode .cde-brand span{display:inline;font-size:20px}#cde.setup-mode .cde-nav{height:52px;min-width:76px;font-size:9px!important;gap:2px}#cde.setup-mode .cde-main{top:56px;left:0;right:0;bottom:62px;padding:16px 12px}#cde.setup-mode .cde-breadcrumb{font-size:11px;margin-bottom:18px}#cde.setup-mode .cde-page-heading h1{font-size:23px}#cde.setup-mode .cde-page-heading p{font-size:12px}.setup-steps{gap:7px;padding:12px 8px}.setup-steps li{gap:6px}.setup-steps li>span{width:25px;height:25px;font-size:13px}.setup-steps strong{font-size:11px}.setup-steps p{display:none}.setup-notice{font-size:11px;padding:10px}.setup-tabs{margin-bottom:16px}#cde .setup-tabs button{font-size:13px;padding:0 10px}.setup-toolbar{gap:8px}.setup-search{max-width:none;flex-basis:100%}#cde .setup-toolbar select{flex:1;max-width:none;min-width:0;font-size:12px}.setup-toolbar .primary{width:100%}#cde.setup-mode .cde-drawer{top:56px;width:100%;bottom:0}#cde.setup-mode.drawer-open .cde-drawer-backdrop{display:none}#cde.setup-mode .org-form input,#cde.setup-mode .org-form select{font-size:16px!important}#cde.setup-mode .cde-drawer-body{padding-bottom:calc(16px + env(safe-area-inset-bottom))}#cde.setup-mode .org-form footer{bottom:-16px;padding-bottom:calc(12px + env(safe-area-inset-bottom))}}
#cde.setup-mode .cde-breadcrumb{margin-bottom:20px}
#cde.setup-mode .cde-product strong{display:block;font-size:13px;line-height:1.5;overflow-wrap:anywhere}
#cde.setup-mode .cde-product small{font-size:12px;color:#637691;display:block;margin-bottom:4px}
#cde.setup-mode .org-form label>span{display:block}
#cde.setup-mode .org-form label{margin:0;gap:8px}
#cde.setup-mode .org-form input,#cde.setup-mode .org-form select{margin:0;min-height:42px;height:42px}
#cde.setup-mode .org-form-description{margin-bottom:36px}
.setup-steps{padding-top:12px;padding-bottom:12px}
.setup-notice>b{line-height:1}
.cde-nav span svg{display:block;width:23px;height:23px}.nexus-cube{width:31px;height:31px;flex-shrink:0}
.setup-header-search{margin-left:auto;display:flex;align-items:center;gap:10px;width:260px;max-width:22vw;height:38px;border:1px solid #5b7898;border-radius:6px;padding:0 12px;color:#b5c9df}
.setup-header-search>span{font-size:24px}#cde .setup-header-search input{margin:0;background:transparent;border:0;min-height:0;height:30px;padding:0;color:white;font-size:13px;min-width:0;width:100%;box-shadow:none}
#cde .setup-header-search input::placeholder{color:#b5c9df}#cde.setup-mode .cde-top-right{margin-left:12px}
@media(max-width:950px){.setup-header-search{display:none}#cde.setup-mode .cde-top-right{margin-left:auto}}@media(max-width:650px){.nexus-cube{width:25px;height:25px}.cde-nav span svg{width:20px;height:20px}}

/* W1 reference refinement: actual identity and shared line icons. */
.cde-identity{display:flex;flex-direction:column;gap:3px;margin-left:-12px;font-size:13px}.cde-identity small{color:#b9cee6;font-size:12px}
.cde-icon-button svg{width:23px;height:23px;display:block}
.setup-tabs button{display:inline-flex;align-items:center;gap:10px}.setup-tabs svg,.org-member-icon svg{width:21px;height:21px;vertical-align:middle}.org-member-icon{display:inline-flex;vertical-align:middle}
@media(min-width:951px){#cde.setup-mode .cde-sidebar{padding-top:12px}#cde.setup-mode .cde-product{margin-bottom:18px;min-height:74px}#cde.setup-mode .cde-product>div{min-width:0}#cde.setup-mode .cde-product strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#cde.setup-mode .cde-nav{height:48px;margin:3px 0}}
@media(min-width:1301px){#cde.setup-mode .org-form footer{padding-bottom:58px}}
@media(max-width:950px){.cde-identity{display:none}}
@media(min-width:651px) and (max-width:1300px){#cde.setup-mode .cde-topbar{gap:14px}#cde.setup-mode .cde-local-label{display:none}#cde.setup-mode .cde-project-switch{gap:12px;white-space:nowrap;max-width:220px;overflow:hidden}#cde.setup-mode .cde-identity{white-space:nowrap}#cde.setup-mode .cde-identity strong{max-width:140px;overflow:hidden;text-overflow:ellipsis}}
/* W2: member and invitation table shares W1 organization setup shell. */
.member-toolbar{display:flex;gap:12px;align-items:center;margin-bottom:20px}.member-toolbar>label{flex:1;margin:0;padding:12px;border:1px solid #dce5ef;background:#fff;border-radius:6px;gap:8px;font-size:12px;color:#536783}.member-toolbar select{margin:0;min-height:36px;height:36px;padding:7px 10px;font-size:13px!important;border-radius:5px}.member-toolbar>.primary{margin-left:auto;white-space:nowrap}.member-search{margin:0 0 12px;max-width:360px}.member-delivery-note{font-size:12px;line-height:1.6;color:#60748c;margin:8px 0 18px}.member-name{display:flex;gap:10px;align-items:center;min-width:135px}.member-name strong{font-size:13px}.member-avatar{width:36px;height:36px;flex-shrink:0;border-radius:50%;display:grid;place-items:center;color:#0668fa;background:#ddecff;font-size:12px;font-weight:650}.member-email{overflow-wrap:anywhere;max-width:200px}.member-table .cde-table td{font-size:12px;height:70px;padding:12px 10px}.member-table .cde-table th{padding:12px 10px;font-size:12px}.member-state,.member-role{display:inline-block;padding:6px 8px;border-radius:5px;font-size:11px;white-space:nowrap}.member-state.active{color:#074189;background:#e7eff8}.member-state.pending{color:#b96b00;background:#fff4dc}.member-state.revoked{color:#ce3242;background:#ffecee}.member-state.expired{color:#6d7581;background:#eceff3}.member-role{color:#0764d8;background:#e5f0ff}.member-role.owner,.member-role.manager{color:#824acd;background:#f0e9ff}.member-role.viewer{color:#5d687b;background:#eef1f6}.member-delivery-state{display:block;color:#72829a;font-size:10px;max-width:145px;margin-top:5px}.member-pagination{display:flex;justify-content:space-between;align-items:center;margin:15px 0;color:#63748a;font-size:12px}.member-pagination>div{display:flex;gap:12px;align-items:center}.member-invite-help{background:#eaf3ff;border-radius:6px;padding:15px;line-height:1.65;font-size:12px;color:#4b668b;margin:4px 0}.invite-only{display:flex;flex-direction:column;gap:18px}.invite-only[hidden]{display:none}#cde.setup-mode .member-form footer{padding-bottom:12px;position:static;margin-top:8px}#cde.setup-mode .member-form{flex:0 0 auto}.member-form>p{line-height:1.5}
@media(max-width:1300px){.member-toolbar{flex-wrap:wrap}.member-toolbar>label{min-width:160px}.member-table .cde-table{min-width:900px}}
@media(max-width:650px){.member-toolbar>label{min-width:140px;padding:8px}.member-toolbar>.primary{width:100%}.member-search{max-width:none}.member-pagination{align-items:flex-start;gap:8px;flex-direction:column}.member-pagination .cde-button{min-height:36px!important;padding:6px 12px!important}#cde.setup-mode .member-form footer{padding-bottom:calc(12px + env(safe-area-inset-bottom))}}
/* REF05/06 alignment: keep search scoped and existing-account action separate. */
.setup-tagline{font-size:14px;color:#e3ecf8;white-space:nowrap}#cde.setup-mode .cde-project-switch,#cde.setup-mode .cde-local-label{display:none}#cde.setup-mode .cde-top-right{flex:none;margin-left:12px;gap:14px}#cde.setup-mode .setup-header-search{margin-left:auto;width:240px;max-width:24vw}#cde.setup-mode .cde-avatar{background:#0875ff;color:#fff;width:38px;height:38px}#cde.setup-mode .cde-identity{display:flex;flex-direction:column;line-height:1.45;min-width:112px}#cde.setup-mode .cde-identity strong{font-size:14px}#cde.setup-mode .cde-identity small{font-size:12px;color:#c5d6eb}#cde.setup-mode .cde-product{cursor:pointer}#cde.setup-mode .cde-product:focus-visible{outline:2px solid #0066ff}#cde.setup-mode .cde-product:after{content:'›';color:#0066ff;margin-left:auto;font-size:22px}.setup-org-table:not(.member-table) th:nth-child(1){width:34%}.setup-org-table:not(.member-table) th:nth-child(2){width:19%}.setup-org-table:not(.member-table) th:nth-child(3){width:15%}.setup-org-table:not(.member-table) th:nth-child(4){width:21%}.setup-org-table:not(.member-table) th:last-child{width:11%}
#cde.members-mode .cde-page-heading{margin-bottom:14px}#cde.members-mode .cde-page-heading p{margin-top:3px}#cde.members-mode .setup-tabs{height:48px;margin-bottom:24px}#cde.members-mode .setup-tabs svg{display:none}.member-toolbar{margin-bottom:26px;gap:12px}.member-toolbar>label{max-width:225px;min-width:0}.member-add-actions{margin-left:auto;display:flex;position:relative}.member-add-actions>details{position:absolute;right:0;top:100%;z-index:4}.member-add-actions summary{cursor:pointer;font-size:11px;text-align:right;color:#60748c;padding:1px 4px}.member-add-actions details button{white-space:nowrap;box-shadow:0 4px 14px #142f5520;background:white}.member-table .cde-table th{height:53px}.member-table .cde-table td{height:66px}.member-table .member-state{border-radius:5px}.member-table .member-name strong{font-size:13px}#cde.members-mode .org-form-description{margin-bottom:28px;line-height:1.55;min-height:60px}#cde.members-mode .member-form{gap:24px}#cde.members-mode .member-form footer{padding:0;margin-top:0}#cde.members-mode .member-form footer [data-member-cancel]{display:none}#cde.members-mode .member-form footer .primary{height:48px;font-size:16px!important}.member-invite-help{margin:0;padding:17px;min-height:96px;font-size:13px}
@media(max-width:1250px){.setup-tagline{display:none}#cde.setup-mode .setup-header-search{max-width:30vw}#cde.setup-mode .cde-top-right{margin-left:auto}.member-toolbar>label{max-width:none}}@media(max-width:950px){#cde.setup-mode .setup-header-search{display:flex;max-width:200px}.member-toolbar{flex-wrap:wrap}.member-add-actions{margin-left:0}}@media(max-width:650px){.setup-tagline,#cde.setup-mode .cde-identity{display:none}#cde.setup-mode .setup-header-search{position:fixed;left:12px;right:12px;top:62px;width:auto;max-width:none;background:#fff;border-color:#cedbeb;color:#617692;z-index:2}#cde .setup-header-search input{color:#25374a}#cde.setup-mode .cde-main{padding-top:58px}#cde.setup-mode.drawer-open .setup-header-search{display:none}.member-toolbar{margin-bottom:20px}.member-add-actions{width:100%;margin-bottom:6px}.member-add-actions>.primary{width:100%}#cde.members-mode .org-form-description{min-height:0;margin-bottom:20px}#cde.members-mode .member-form{gap:20px}#cde.members-mode .member-form footer{padding-bottom:12px}.member-invite-help{min-height:0}}
#cde.setup-mode .cde-sidebar-foot{border-top:0;padding:0 18px 22px;color:#19375f}#cde.setup-mode .cde-sidebar-foot strong{display:block;font-size:13px;margin:9px 0 4px}#cde.setup-mode .cde-sidebar-foot small{font-size:12px;line-height:1.5;color:#637692}.setup-skyline{display:block;width:100%;height:80px}#cde #members-help{border:2px solid #dbe8f7;border-radius:50%;width:22px;height:22px;padding:0;font-size:14px;line-height:18px}.member-add-actions summary{list-style:none}.member-add-actions summary::-webkit-details-marker{display:none}#cde.setup-mode .cde-button.primary{background:#0066ff;border-color:#0066ff}#cde.members-mode .member-form footer .primary{background:#0066ff}#cde.members-mode .member-form{gap:26px}#cde.members-mode .member-form .cde-form-error:empty{display:none}.setup-org-table:not(.member-table) .cde-table{table-layout:fixed}
@media(max-width:650px){#cde.setup-mode .cde-sidebar-foot{display:none}.setup-skyline{display:none}}
#cde.setup-mode .org-form select[name=active]{padding-left:35px;background-image:radial-gradient(circle at 18px 50%,#8b98a8 0 5px,transparent 6px)}#cde.setup-mode .org-form select[name=active][data-active=true]{background-image:radial-gradient(circle at 18px 50%,#004ba6 0 5px,transparent 6px)}

/* Shared project list controls; table remains horizontally scrollable. */
#cde .project-filters{gap:18px;align-items:end;flex-wrap:wrap}#cde .project-filters label{color:var(--nx-muted);font-size:12px;min-width:160px}#cde .project-filters input,#cde .project-filters select{margin:6px 0 0;min-height:38px;border-radius:var(--nx-radius);border-color:var(--nx-border);font-size:13px}#cde .project-filters strong{margin-left:auto;padding-bottom:10px;white-space:nowrap}@media(max-width:650px){#cde .project-filters label{flex:1;min-width:120px}#cde .project-filters label:first-child{flex-basis:100%}}

#cde .cde-brand span{display:inline;font-size:19px;letter-spacing:-.5px;color:#8dc5ff}#cde .cde-brand b{font-size:19px}#cde .cde-brand{gap:6px}@media(max-width:650px){#cde .cde-brand b,#cde .cde-brand span{font-size:16px}#cde .cde-brand .nexus-cube{width:24px;height:24px}}
/* Discipline catalog (schema 12): classification only, shown beside organizations. */
.setup-disciplines{margin-top:28px;padding-top:20px;border-top:1px solid #e3e8f0}
.setup-disciplines h3{margin:0;font-size:15px;font-weight:600}
.setup-note,.setup-empty-note{font-size:12px;color:#67768d;margin:6px 0 12px}
.cde-discipline{display:block;font-size:11px;color:#67768d;margin-top:2px}
.assignment-discipline small{display:block;font-size:11px;color:#67768d;margin-top:2px}
/* Two-way create button on the issue list */
.cde-create-menu{position:relative}.cde-create-menu>summary{list-style:none;cursor:pointer}.cde-create-menu>summary::-webkit-details-marker{display:none}
.cde-create-options{position:absolute;right:0;top:calc(100% + 6px);z-index:var(--z-popover,40);min-width:260px;background:#fff;border:1px solid #d8e2ed;border-radius:8px;padding:4px;box-shadow:0 8px 28px #1c345a33;display:grid}
.cde-create-options button{border:0;background:none;text-align:left;padding:9px 12px;border-radius:5px;display:grid;gap:2px;cursor:pointer}.cde-create-options button:hover,.cde-create-options button:focus-visible{background:#eaf2ff}
.cde-create-options strong{font-size:13px;color:#122b4c}.cde-create-options small{font-size:11px;color:#67768d}

/* Shared sidebar inside the CDE shell */
#cde .cde-sidebar.nx-nav{position:absolute;top:56px;bottom:0;left:0;width:240px;padding:0;background:#f8fbff;border-right:1px solid var(--nx-border)}#cde .cde-sidebar.nx-nav.collapsed{width:64px}
#cde:has(.cde-sidebar.nx-nav) .cde-main{left:240px}#cde:has(.cde-sidebar.nx-nav.collapsed) .cde-main{left:64px}
#cde.setup-mode .cde-sidebar.nx-nav{top:56px;width:240px;padding:0}#cde.setup-mode:has(.cde-sidebar.nx-nav) .cde-main{left:240px}#cde.setup-mode:has(.cde-sidebar.nx-nav.collapsed) .cde-main{left:64px}
@media(max-width:950px){#cde .cde-sidebar.nx-nav,#cde.setup-mode .cde-sidebar.nx-nav{width:64px}#cde:has(.cde-sidebar.nx-nav) .cde-main,#cde.setup-mode:has(.cde-sidebar.nx-nav) .cde-main{left:64px}}


/* Chat shell: shared sidebar as the rail; brand on top, contacts + account at the bottom */
.rail.rail-wrap{background:#f8fbff;border-right:1px solid var(--nx-border,#dce5ef);padding:10px 0 calc(10px + env(safe-area-inset-bottom));gap:6px;align-items:stretch;overflow:hidden}
.rail.rail-wrap .brand-mark{width:40px;height:40px;margin:0 auto 6px;background:transparent;border-radius:8px}.rail.rail-wrap .brand-mark img{width:36px;height:36px}
.rail.rail-wrap .nx-nav{flex:1;min-height:0;border-right:0;background:transparent;width:auto}.rail.rail-wrap .nx-nav .nx-nav-toggle{display:none}
.rail-foot{display:flex;flex-direction:column;align-items:center;gap:8px;padding-top:8px;border-top:1px solid var(--nx-border,#dce5ef)}
.rail-foot-button{border:0;background:transparent;color:#4b607d;font-size:10.5px;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;border-radius:6px;cursor:pointer;width:56px}.rail-foot-button span{font-size:18px;line-height:1}.rail-foot-button:hover{background:#eef4fb}
.rail.rail-wrap .profile-avatar{width:36px;height:36px;border-radius:50%;background:var(--nx-blue,#2c68d8);color:#fff;font-size:12px;font-weight:700;border:0}
#workspace{grid-template-columns:64px 326px minmax(0,1fr)}
@media(min-width:1500px){#workspace{grid-template-columns:64px 365px minmax(0,1fr)}}@media(max-width:1050px){#workspace{grid-template-columns:64px 280px minmax(0,1fr)}}@media(max-width:720px){#workspace{grid-template-columns:64px minmax(0,1fr)}.rail.rail-wrap{background:#f8fbff}}

/* Navy top bar shared with the project pages; the chat grid gains a header row */
#workspace{grid-template-rows:52px minmax(0,1fr)}
.app-topbar{grid-column:1/-1;height:52px;background:var(--nx-navy);color:#fff;display:flex;align-items:center;gap:40px;padding:0 20px;font-size:13px}
.app-topbar-brand{display:flex;align-items:center;gap:8px;color:#fff;font-weight:700;font-size:20px;letter-spacing:-.5px}.app-topbar-brand span{color:#72b8ff;font-weight:700}.app-topbar-brand .nx-mark{width:30px;height:30px}
.app-topbar-crumb{color:#c9d8ea}.app-topbar-crumb b{color:#fff;font-weight:600}.app-topbar-actor{margin-left:auto;color:#dfe8f3}
.rail.rail-wrap .brand-mark{display:none}
.sidebar-title{padding-top:18px}
@media(max-width:720px){#workspace{grid-template-rows:52px minmax(0,1fr)}.app-topbar{padding:0 12px;gap:14px}.app-topbar-crumb{display:none}.mobile-chat .app-topbar{display:none}}

/* Account modal: actions stack as rows instead of five squeezed columns */
.modal-actions button{flex:1 1 calc(50% - 10px);min-width:150px}
.cde-snapshot{margin:0 0 14px;border:1px solid var(--line,#dfe6ee);border-radius:8px;overflow:hidden;background:#f8fafc}.cde-snapshot a{display:block}.cde-snapshot img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}.cde-snapshot-pending{display:grid;place-items:center;aspect-ratio:3/2;color:#64748b;font-size:13px}.cde-snapshot figcaption{padding:6px 10px;font-size:12px;color:#64748b;border-top:1px solid var(--line,#dfe6ee)}

/* ---- Trang Dự án (cde.js home): chip lọc, thẻ dự án, bảng dự án, cột Cần chú ý ---- */
#cde .project-view-toggle{display:inline-flex;border:1px solid var(--nx-border);border-radius:var(--nx-radius);background:#fff;overflow:hidden}#cde .project-view-toggle button{width:36px;height:34px;border:0;background:#fff;color:var(--nx-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}#cde .project-view-toggle button+button{border-left:1px solid var(--nx-border)}#cde .project-view-toggle button.active{background:var(--nx-light);color:var(--nx-blue)}#cde .project-view-toggle svg{width:16px;height:16px}
#cde .project-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:18px}#cde .project-search{display:flex;align-items:center;gap:8px;width:260px;height:34px;padding:0 10px;background:#fff;border:1px solid var(--nx-border);border-radius:var(--nx-radius);color:#617695}#cde .project-search input{border:0;padding:0;margin:0;min-height:0;height:100%;flex:1;font-size:13px;background:transparent;box-shadow:none}#cde .project-search input:focus{outline:none}
#cde .project-chip{height:30px;padding:0 12px;border:1px solid var(--nx-border);border-radius:15px;background:#fff;color:var(--nx-ink);font-size:12px;cursor:pointer}#cde .project-chip.active{border-color:var(--nx-blue);background:var(--nx-light);color:var(--nx-blue);font-weight:600}#cde .project-toolbar-sep{width:1px;height:20px;background:var(--nx-border);margin:0 4px}#cde .project-toolbar select{height:30px;min-height:0;margin:0;padding:0 28px 0 12px;border:1px solid var(--nx-border);border-radius:15px;background-color:#fff;font-size:12px;color:var(--nx-ink)}#cde .project-count{margin-left:auto;color:var(--nx-muted);font-size:12px;white-space:nowrap}
#cde .project-body{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;align-items:start}@media(max-width:1100px){#cde .project-body{grid-template-columns:minmax(0,1fr)}}
#cde .project-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:20px}#cde .project-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--nx-border);border-radius:10px;overflow:hidden;color:var(--nx-ink);text-decoration:none;transition:box-shadow .15s,transform .15s}#cde .project-card:hover{box-shadow:0 6px 18px rgba(16,44,75,.08);transform:translateY(-1px)}#cde .project-card.dim{opacity:.7}#cde .project-card .band{height:6px;display:block}
#cde .project-card-head{display:flex;gap:14px;align-items:flex-start;padding:18px 20px 14px}#cde .project-monogram{width:46px;height:46px;border-radius:8px;background:var(--nx-navy);color:#fff;font-weight:700;font-size:15px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}#cde .project-monogram.small{width:36px;height:36px;font-size:12px}#cde .project-card-title{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}#cde .project-card-title b{font-size:16px;color:var(--nx-navy);line-height:1.25}#cde .project-card-title span{color:var(--nx-muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#cde .project-state{border-radius:12px;padding:3px 10px;font-size:11px;font-weight:700;white-space:nowrap;background:#eef2f7;color:var(--nx-muted)}#cde .project-state.active{background:#e6f6ec;color:#067647}#cde .project-state.on_hold{background:#fff4e0;color:var(--nx-warning)}#cde .project-state.completed{background:var(--nx-light);color:var(--nx-blue)}#cde .project-state::before{content:"● ";font-size:9px}
#cde .project-card-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #eef2f7;border-bottom:1px solid #eef2f7}#cde .project-card-stats>div{padding:12px 20px;display:flex;flex-direction:column;gap:2px;min-width:0}#cde .project-card-stats>div+div{border-left:1px solid #eef2f7}#cde .project-card-stats b{font-size:20px;font-weight:700;color:var(--nx-navy);line-height:1.2}#cde .project-card-stats em,#cde .project-overdue{font-style:normal;font-size:12px;color:var(--nx-danger);font-weight:700}#cde .project-card-stats span{color:var(--nx-muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#cde .project-card-foot{display:flex;align-items:center;gap:10px;padding:12px 20px;font-size:12px;color:var(--nx-muted)}#cde .project-card-meta{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#cde .project-card-meta b{color:var(--nx-ink)}#cde .project-card-links{display:flex;gap:12px;flex-shrink:0}#cde .project-card-links span{color:var(--nx-blue);font-weight:600}#cde .project-card-links span:hover{text-decoration:underline}
#cde .project-avatars{display:inline-flex;flex-shrink:0}#cde .project-avatars span{width:24px;height:24px;border-radius:50%;color:#fff;font-size:10px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;border:2px solid #fff;margin-left:-8px}#cde .project-avatars span:first-child{margin-left:0}#cde .project-avatars .more{background:#eef2f7;color:var(--nx-muted)}
#cde .project-card-new{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:170px;border:2px dashed #c9d5e4;border-radius:10px;background:transparent;color:var(--nx-muted);cursor:pointer;font:inherit}#cde .project-card-new>span{width:40px;height:40px;border-radius:50%;background:var(--nx-light);color:var(--nx-blue);display:inline-flex;align-items:center;justify-content:center;font-size:20px}#cde .project-card-new b{color:var(--nx-ink)}#cde .project-card-new small{font-size:12px}#cde .project-card-new:hover{border-color:var(--nx-blue)}
#cde .project-table-wrap{background:#fff;border:1px solid var(--nx-border);border-radius:10px;overflow:hidden}#cde .project-table th{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--nx-muted);background:#f8fafc}#cde .project-table td{vertical-align:middle;height:64px}#cde .project-table tr.dim td{color:var(--nx-muted);background:#fbfcfe}#cde .project-row-title{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none}#cde .project-row-title>span:last-child{display:flex;flex-direction:column}#cde .project-row-title b{color:var(--nx-navy);font-size:14px}#cde .project-row-title small,#cde .project-activity small,#cde .project-table small{display:block;color:var(--nx-muted);font-size:12px}#cde .project-activity{display:flex;flex-direction:column}
#cde .project-bar{display:flex;height:4px;width:90px;background:#eef2f7;border-radius:2px;overflow:hidden;margin-top:6px}#cde .project-bar i{display:block;background:var(--nx-blue)}#cde .project-bar i.over{background:var(--nx-danger)}#cde .project-role{background:#eef2f7;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:700;white-space:nowrap}
#cde .project-attention{background:#fff;border:1px solid var(--nx-border);border-radius:10px;overflow:hidden;position:sticky;top:0}#cde .project-attention-head{display:flex;align-items:center;gap:8px;padding:14px 18px;border-bottom:1px solid #eef2f7}#cde .project-attention-head b{color:var(--nx-navy);font-size:14px}#cde .project-attention-head span{color:var(--nx-muted);font-size:12px;flex:1}#cde .project-attention-head a{font-size:12px;font-weight:600;color:var(--nx-blue);text-decoration:none}
#cde .project-attention-item{display:flex;gap:12px;align-items:flex-start;padding:12px 18px;border-bottom:1px solid #eef2f7;color:var(--nx-ink);text-decoration:none}#cde .project-attention-item:last-child{border-bottom:0}#cde .project-attention-item:hover{background:#f8fafc}#cde .project-attention-item i{width:8px;height:8px;border-radius:50%;margin-top:6px;flex-shrink:0;background:#8a9bb3}#cde .project-attention-item i.overdue{background:var(--nx-danger)}#cde .project-attention-item i.approve{background:#e08a1e}#cde .project-attention-item i.review{background:var(--nx-blue)}#cde .project-attention-item i.handling{background:#0a8f6c}#cde .project-attention-item>span{display:flex;flex-direction:column;gap:2px;min-width:0}#cde .project-attention-item b{font-size:13px;line-height:1.3}#cde .project-attention-item small{color:var(--nx-muted);font-size:12px}#cde .project-attention-empty{margin:0;padding:18px;color:var(--nx-muted);font-size:13px}
@media(max-width:650px){#cde .project-search{width:100%}#cde .project-cards{grid-template-columns:minmax(0,1fr)}#cde .project-card-links{display:none}#cde .project-count{margin-left:0}}
#cde .hue-0{background:#0665ed}#cde .hue-1{background:#0a8f6c}#cde .hue-2{background:#7a3ee8}#cde .hue-3{background:#a8600c}#cde .hue-4{background:#c0392b}#cde .hue-5{background:#0e7c86}
#cde .project-bar .w0{width:0}#cde .project-bar .w10{width:10%}#cde .project-bar .w20{width:20%}#cde .project-bar .w30{width:30%}#cde .project-bar .w40{width:40%}#cde .project-bar .w50{width:50%}#cde .project-bar .w60{width:60%}#cde .project-bar .w70{width:70%}#cde .project-bar .w80{width:80%}#cde .project-bar .w90{width:90%}#cde .project-bar .w100{width:100%}
#cde.projects-mode .cde-content{background:transparent;border:0;overflow:visible;border-radius:0}#cde .cde-breadcrumb{padding-left:18px}
#cde .project-toolbar select{display:inline-block;width:auto;max-width:none;min-width:0;flex:0 0 auto}#cde .project-card-stats span{white-space:normal;overflow:visible;line-height:1.3}#cde .project-card-stats>div{padding:12px 16px}
#cde .project-card-foot{flex-wrap:wrap}#cde .project-card-meta{flex:1 1 200px;white-space:normal;overflow:visible;line-height:1.4}
#cde .project-body.table-mode{grid-template-columns:minmax(0,1fr)}#cde .project-body.table-mode .project-attention{max-width:720px;position:static}#cde .project-table-wrap{min-height:0}#cde .project-table td,#cde .project-table th{white-space:nowrap}#cde .project-table td:first-child{white-space:normal}
#cde .cde-danger-zone{border-color:#f3c2c2}#cde .cde-danger-zone h2{color:var(--nx-danger)}#cde .cde-danger-note{color:var(--nx-muted);font-size:13px;line-height:1.5;margin:0 0 12px}#cde .cde-button.danger{color:#fff;background:var(--nx-danger);border-color:var(--nx-danger)}#cde .cde-button.danger:disabled{opacity:.6;cursor:not-allowed}
#cde .invite-link-box{display:flex;gap:8px;margin:12px 0}#cde .invite-link-box input{flex:1;min-width:0;font-size:12px;font-family:ui-monospace,Menlo,monospace;height:36px;margin:0}#cde .cde-form-footer{display:flex;justify-content:flex-end;margin-top:16px}
#cde .wip-scope-options{display:flex;flex-direction:column;gap:8px;font-size:13px}#cde .wip-scope-options label{display:flex;gap:8px;align-items:flex-start;cursor:pointer}#cde .wip-scope-options input{margin:3px 0 0}
.handover-groups{display:grid;gap:12px;margin:14px 0}.handover-group{border:1px solid var(--nx-border,#dce5ef);border-radius:10px;padding:12px 14px;background:#f8fbff}.handover-head{display:flex;justify-content:space-between;align-items:center;font-weight:650;font-size:14px}.handover-head b{background:#e3eefc;color:#0b4fb3;border-radius:999px;padding:2px 10px;font-size:12px}.handover-items{margin:8px 0 6px;padding-left:18px;font-size:13px;color:#4d5f77;line-height:1.5}.handover-list{margin:12px 0;padding-left:18px;line-height:1.7}.handover-group label{margin-top:6px}
.member-disciplines{margin:14px 0}.member-field-label{display:block;font-size:13px;font-weight:600;margin-bottom:8px}.member-chips{display:flex;flex-wrap:wrap;gap:8px}.member-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid #ccd8e6;border-radius:999px;padding:7px 12px;font-size:13px;background:#fff;cursor:pointer;margin:0;font-weight:500}.member-chip input{position:absolute;opacity:0;width:0;height:0;min-height:0;margin:0}.member-chip.on{background:#e8f0fe;border-color:var(--nx-blue,#0665ed);color:#0b4fb3;font-weight:650}.member-leads{display:grid;gap:6px;margin-top:10px}.member-lead{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;margin:0}.member-lead input{width:16px;height:16px;min-height:0;margin:0}.member-lead.hidden{display:none}
.member-form label.member-lead{display:flex;align-items:center;gap:8px;margin:0}.member-form .member-lead input{display:inline-block;width:16px;height:16px;min-height:0;margin:0;padding:0}.member-form .member-chips label{margin:0}.member-disc{display:block;color:#0b4fb3;font-size:12px;margin-top:3px}
.member-form label.member-lead.hidden{display:none}
.cde-badge.returned{color:#b4521a;background:#fff2e8}
.cde-badge.returned i{background:#e0702e}
.cde-return-box{margin:10px 0 14px;background:#fff7ec;border:1px solid #f6d9b0;border-left:4px solid #e0702e;border-radius:10px;padding:12px 14px;font-size:13px;color:#5a3a10;line-height:1.5}
.cde-return-box b{color:#7a4a08}
.cde-return-box p{margin:6px 0;white-space:pre-wrap;color:#173052;font-size:13.5px}
.cde-return-box small{color:#7a4a08}
.cde-return-note{margin:0 0 10px;background:#fff7ec;border:1px solid #f6d9b0;border-radius:8px;padding:8px 12px;font-size:13px;color:#5a3a10;white-space:pre-wrap}

.auth-help{text-align:center;text-decoration:none;border:1px solid var(--nx-line,#dce5ef);width:max-content;padding:7px 14px}.auth-help:hover{background:#eef4ff}

.help-dialog{width:min(1180px,96vw);max-width:96vw;height:min(92vh,1100px);max-height:92vh;padding:0;border:0;border-radius:14px;box-shadow:0 20px 60px rgba(9,46,85,.3);overflow:hidden;background:#fff}
.help-dialog::backdrop{background:rgba(9,20,40,.55)}
.help-dialog-head{display:flex;align-items:center;gap:14px;padding:10px 14px 10px 18px;border-bottom:1px solid #dce5ef;background:#f6f9fc;font-size:14px}
.help-dialog-head b{flex:1;font-size:15px}.help-dialog-open{color:var(--nx-blue,#0665ed);font-size:13px;text-decoration:none}.help-dialog-open:hover{text-decoration:underline}
#help-close{border:0;background:transparent;font-size:22px;line-height:1;cursor:pointer;color:#5b6b82;padding:2px 8px;border-radius:6px}#help-close:hover{background:#e8eef6}
#help-frame{display:block;width:100%;height:calc(100% - 46px);border:0;background:#f5f7fb}
@media (max-width:700px){.help-dialog{width:100vw;height:100vh;max-width:100vw;max-height:100vh;border-radius:0}}
/* Đăng ký tham gia (tab thứ 3 trong Thành viên & đơn vị) */
.setup-tab-badge{font-size:11px;padding:2px 8px;border-radius:10px;background:#e8590c;color:#fff;font-weight:700;margin-left:4px}.setup-tab-badge[hidden]{display:none}
.reg-link{border:1px solid #d6e0ec;border-radius:8px;padding:18px 20px;margin-bottom:24px;background:#f8fbff}.reg-link.off{background:#f7f8fa}.reg-link-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.reg-link-head h3,.reg-list h3,.reg-card-head h3{margin:0 0 4px;font-size:15px}.reg-link-head .setup-note{margin:0;max-width:760px}
.reg-state{white-space:nowrap;font-size:12px;font-weight:600;padding:4px 10px;border-radius:12px;background:#eef2f5;color:#53606f}.reg-state.on,.reg-state.approved{background:#e3f6ea;color:#1b7a44}.reg-state.off,.reg-state.rejected{background:#fdecea;color:#b0392b}.reg-state.pending{background:#fff3d6;color:#8a5a00}.reg-state.changes{background:#f0ebf9;color:#6a49a0}
.reg-link-row{display:flex;gap:8px;margin:14px 0 6px;align-items:center}#cde .reg-link-url{flex:1;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;height:40px;border:1px solid #ccd9e8;border-radius:5px;padding:0 12px;background:#fff}.reg-link-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.reg-list{margin-bottom:20px}.reg-list .setup-toolbar{margin-bottom:12px}.reg-done>details>summary{cursor:pointer;list-style:none}.reg-done>details>summary h3{color:#596e8b}.reg-done>details>summary::before{content:'▸ ';color:#687784}.reg-done>details[open]>summary::before{content:'▾ '}
.reg-card{border:1px solid #d6e0ec;border-radius:8px;padding:16px 18px;margin-bottom:14px;background:#fff}.reg-card.pending{border-left:4px solid #e8a317}.reg-card.changes{border-left:4px solid #9170b9}.reg-card.approved{border-left:4px solid #2f9e5a}.reg-card.rejected{border-left:4px solid #c9463a;opacity:.85}
.reg-card-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:8px}.reg-card-head .org-kind{margin-bottom:6px;display:inline-block}.reg-card-head h3 small{font-weight:500;color:#657380}.reg-card-head .setup-note{margin:2px 0 0}
.reg-details>summary{cursor:pointer;font-size:13px;color:#1673ad;font-weight:600;margin:6px 0 10px}.reg-people{white-space:normal;margin-bottom:8px}#cde .reg-people td{height:auto;padding:10px 12px;vertical-align:top}#cde .reg-people th{padding:9px 12px}.reg-people .cde-badge{margin:0 4px 4px 0}.reg-people .reg-lead{background:#fff2d9;color:#7a4b00}.reg-contact-tag{color:#1b7a44;font-weight:600;margin-left:4px}.reg-profile{display:block;color:#67768d;font-size:11px;margin-top:2px}
.reg-note{font-size:12px;color:#485867;margin:8px 0;padding:10px 12px;background:#f8f9fb;border-radius:5px}.reg-review-note{background:#fff8e6}.reg-result{font-size:12px;color:#2a5d3f;margin:8px 0;padding:10px 12px;background:#eef9f2;border-radius:5px}.reg-result ul{margin:6px 0 0;padding-left:18px;color:#485867}.reg-result code{font-size:11px;word-break:break-all}.reg-result details{margin-top:6px}.reg-result summary{cursor:pointer}
.reg-card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid #e9edf1}#cde .reg-card-actions .cde-button{min-height:38px}
.reg-panel-foot{margin-top:18px;display:flex;justify-content:flex-end}#cde .cde-drawer textarea[name=note]{width:100%;min-height:80px}#cde .cde-button.danger{color:#b0392b;border-color:#e6b1aa}
@media(max-width:650px){.reg-link-head,.reg-card-head{flex-direction:column}.reg-link-row{flex-wrap:wrap}#cde .reg-link-url{flex-basis:100%}.reg-people{min-width:640px}.reg-details{overflow:auto}}
.org-kind.pm{background:#e6f6f4;color:#0f766e}.org-kind.contractor{background:#fff1e6;color:#b45309}.org-kind.supplier{background:#f1f5f9;color:#475569}
/* Hồ sơ năng lực (tab Năng lực, panel thành viên, hồ sơ cá nhân) */
.cap-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:10px}.cap-tiles{display:flex;gap:10px;flex-wrap:wrap}.cap-tile{min-width:132px;padding:12px 16px;border:1px solid #d6e0ec;border-radius:8px;background:#f8fbff}.cap-tile b{display:block;font-size:22px;color:#0066ff;line-height:1.1}.cap-tile b small{font-size:13px;color:#687784;font-weight:500}.cap-tile span{font-size:11px;color:#657380}
#cde .cap-actions .cde-button{min-height:44px;text-decoration:none}
.cap-facts{margin:0 0 6px;color:#0b4f9a;font-size:12.5px}.cap-facts b{font-size:14px}.cap-summary{margin:0 0 6px;line-height:1.5}.cap-k{display:inline-block;min-width:80px;color:#67768d;font-size:11px;text-transform:uppercase;letter-spacing:.04em;margin-right:4px}.cap-person p{margin:2px 0}.cap-ul{margin:4px 0 4px 16px;padding:0;line-height:1.55}.cap-empty{color:#687784;font-style:italic;margin:4px 0;font-size:12.5px}
.member-capability{margin:22px 0 14px;padding-top:14px;border-top:1px solid #e9edf1}.member-capability h4{margin:0 0 6px;font-size:13px;color:#16202b}.member-capability .cde-text-button{font-size:12px!important;margin-right:12px}
.cap-form label{display:block;font-size:12px;font-weight:600;color:#596e8b;margin:10px 0 0}.cap-form input,.cap-form textarea{display:block;width:100%;margin-top:4px;padding:8px 10px;border:1px solid #ccd9e8;border-radius:5px;font:inherit;font-size:13px}.cap-grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.cap-list{border:1px solid #d6e0ec;border-radius:6px;padding:8px 12px 12px;margin:14px 0 0}.cap-list legend{font-size:12px;font-weight:700;color:#0b4f9a;padding:0 4px}.cap-list legend small{font-weight:500;color:#8c99a5}.cap-row{display:grid;grid-template-columns:1.1fr 1.6fr .6fr .8fr 28px;gap:6px;align-items:center;margin-top:6px}.cap-row input{margin:0;padding:6px 8px;font-size:12.5px}.cap-del{border:0;background:none;color:#687784;font-size:18px;cursor:pointer;line-height:1}.cap-del:hover{color:#b0392b}.cap-add{margin-top:8px;border:1px dashed #b7c6d8;background:none;border-radius:5px;padding:6px 10px;font-size:12px;color:#0b4f9a;cursor:pointer}.cap-error{color:#b0392b;font-size:12px;margin:8px 0 0;min-height:0}.cap-error:empty{display:none}.cap-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:14px}.cap-foot small{color:#687784;font-size:11px}.cap-who{margin:0 0 6px;font-weight:600;color:#16202b}
.person-capability{margin-top:14px;padding-top:12px;border-top:1px solid #e5e9ee;text-align:left}.person-capability h4{margin:0 0 6px;font-size:13px}.person-capability .secondary{margin-top:8px}.cap-modal{text-align:left;max-height:70vh;overflow:auto;padding-right:4px}.cap-modal .cap-form .primary{margin-top:0}
@media(max-width:650px){.cap-people{grid-template-columns:1fr}.cap-row{grid-template-columns:1fr 1fr;grid-auto-rows:auto}.cap-row .cap-del{grid-column:2;justify-self:end}.cap-grid2{grid-template-columns:1fr}}
.cde-drawer .cap-row{grid-template-columns:1fr 1fr 28px}.cde-drawer .cap-row .cap-del{grid-row:1;grid-column:3}.cde-drawer .cap-row+.cap-row{border-top:1px dashed #e5e9ee;padding-top:8px}.cap-modal .cap-row{grid-template-columns:1fr 1.3fr .5fr .7fr 24px}
/* Cài đặt dự án (renderSettings) */
#cde .pset{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:18px;background:#f4f5f7}#cde .pset-card{background:#fff;border:1px solid #dfe5ec;border-radius:8px;padding:18px 20px;min-width:0}#cde .pset-info,#cde .pset-danger,#cde #wip-scope-card{grid-column:1/-1}
#cde .pset-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}#cde .pset-head h3{margin:0;font-size:14px;font-weight:650}#cde .pset-title{display:flex;gap:14px;align-items:center}#cde .pset-title h2{margin:0;font-size:20px;font-weight:650}#cde .pset-title p{margin:2px 0 0;color:#657380;font-size:12.5px}#cde .pset-title .project-monogram{width:44px;height:44px;font-size:17px}
#cde .pset-dl{display:grid;grid-template-columns:repeat(3,120px 1fr);gap:10px 14px;margin:14px 0 0;font-size:12.5px}#cde .pset-dl dt{color:#677783}#cde .pset-dl dd{margin:0;color:#263340;font-weight:500}#cde .pset-dl code{font-size:11px;background:#eef2f6;padding:1px 6px;border-radius:4px}
#cde .pset-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}#cde .pset-tile{display:block;padding:10px 12px;border:1px solid #e3e8ed;border-radius:6px;text-decoration:none;color:inherit;background:#f8fafc}#cde .pset-tile:hover{border-color:var(--nx-blue);background:#f2f7ff}#cde .pset-tile b{display:block;font-size:20px;color:#0b4f9a;line-height:1.1}#cde .pset-tile span{font-size:11px;color:#657380}
#cde .pset-todo{margin-top:14px;padding-top:12px;border-top:1px solid #eef1f4}#cde .pset-todo h4{margin:0 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:#67768d}#cde .pset-todo ul{margin:0;padding:0;list-style:none;font-size:13px}#cde .pset-todo li{padding:5px 0}#cde .pset-warn{color:#cb4e0a}#cde .pset-ok{margin:0;color:#1b7a44;font-size:13px}
#cde .pset-note{margin:0 0 10px;color:#657380;font-size:12.5px}#cde .pset-opts{display:grid;grid-template-columns:1fr 1fr;gap:12px}#cde .pset-opt{position:relative;display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:1.5px solid #dfe5ec;border-radius:8px;cursor:pointer;background:#fff}#cde .pset-opt.on{border-color:var(--nx-blue);background:#f2f7ff;box-shadow:0 0 0 3px #0665ed1a}#cde .pset-opt.ro{cursor:default}#cde .pset-opt input{position:absolute;opacity:0;width:0;height:0;margin:0}#cde .pset-opt-ico{width:36px;height:36px;border-radius:8px;background:#eef2f7;display:grid;place-items:center;flex:0 0 36px;color:#0b4f9a}#cde .pset-opt-ico svg{width:20px;height:20px}#cde .pset-opt-txt b{display:block;font-size:13.5px;margin-bottom:3px}#cde .pset-opt-txt small{font-size:12px;color:#657380;line-height:1.45;display:block}#cde .pset-opt em{position:absolute;top:10px;right:12px;font-style:normal;font-size:10.5px;font-weight:700;color:#0b4f9a;background:#dbe9ff;padding:2px 8px;border-radius:10px}#cde .pset-opt:not(.on):not(.ro):hover{border-color:#9dbde8}
#cde .pset-links{display:grid;gap:6px}#cde .pset-link{display:flex;gap:12px;align-items:center;padding:9px 10px;border-radius:6px;text-decoration:none;color:inherit}#cde .pset-link:hover{background:#f2f7ff}#cde .pset-link-ico{width:32px;height:32px;border-radius:7px;background:#eef2f7;display:grid;place-items:center;color:#0b4f9a;flex:0 0 32px}#cde .pset-link-ico svg{width:18px;height:18px}#cde .pset-link b{display:block;font-size:13px}#cde .pset-link small{color:#657380;font-size:11.5px}#cde .pset-link i{margin-left:auto;color:#697583;font-style:normal;font-size:18px}
#cde .pset-danger .pset-head h3{color:var(--nx-danger)}#cde .pset-danger-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 0;border-top:1px solid #f3e4e4}#cde .pset-danger-row:first-of-type{border-top:0}#cde .pset-danger-row b{display:block;font-size:13px}#cde .pset-danger-row small{display:block;color:#657380;font-size:12px;margin-top:2px;line-height:1.5}#cde .pset-danger-row .cde-danger-note{margin:2px 0 0}
@media(max-width:1000px){#cde .pset{grid-template-columns:1fr}#cde .pset-dl{grid-template-columns:120px 1fr}#cde .pset-opts{grid-template-columns:1fr}#cde .pset-tiles{grid-template-columns:1fr 1fr}}
/* Màn xét duyệt đăng ký tham gia */
.reg-review{border:0;border-radius:12px;padding:0;width:min(1180px,96vw);max-width:96vw;height:min(92vh,1000px);max-height:92vh;box-shadow:0 24px 60px rgba(0,0,0,.35);font:13px -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:#263340;display:flex;flex-direction:column;overflow:hidden}.reg-review[open]{display:flex}.reg-review::backdrop{background:rgba(10,20,40,.5)}
.reg-loading{padding:40px;text-align:center;color:#657380}
.rv-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 24px 14px;border-bottom:1px solid #e3e8ed;background:#f8fafc}.rv-eyebrow{margin:0 0 2px;font-size:10.5px;letter-spacing:.14em;font-weight:700;color:#0b4f9a}.rv-head h2{margin:0;font-size:19px}.rv-head h2 small{font-weight:500;color:#657380;font-size:14px}.rv-meta{margin:4px 0 0;color:#657380;font-size:12px}.rv-x{border:0;background:none;font-size:26px;line-height:1;color:#687784;cursor:pointer}
.rv-body{flex:1;overflow:auto;padding:16px 24px}.rv-sec{margin-bottom:22px}.rv-sec h3{margin:0 0 10px;font-size:14px;color:#0b4f9a}.rv-sec h3 small{font-weight:500;color:#657380;margin-left:6px}
.rv-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:10px 12px}.rv-grid label{display:block;font-size:11.5px;font-weight:600;color:#596e8b}.rv-grid input,.rv-grid select{display:block;width:100%;margin-top:3px;padding:7px 9px;border:1px solid #ccd9e8;border-radius:5px;font:inherit;font-size:13px}.rv-span2{grid-column:span 2}
.rv-note{margin:10px 0 0;padding:8px 12px;background:#f8f9fb;border-radius:6px;font-size:12.5px}.rv-hint{margin:4px 0 8px;font-size:12px;color:#657380}
.rv-merge{margin-top:12px;padding:12px 14px;border:1px solid #e3e8ed;border-radius:8px;background:#fbfcfe}.rv-opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:8px}.rv-opt{display:flex;gap:10px;align-items:flex-start;padding:9px 12px;border:1.5px solid #dfe5ec;border-radius:7px;cursor:pointer;background:#fff}.rv-opt.on{border-color:#0665ed;background:#f2f7ff}.rv-opt input{margin-top:3px}.rv-opt b{display:block;font-size:13px}.rv-opt small{color:#657380;font-size:11.5px}
.rv-discmap{margin:0 0 10px;padding:8px 12px;background:#fff8e6;border:1px solid #f5d78e;border-radius:6px;font-size:12.5px;display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}.rv-dm i{font-style:normal;font-weight:600}.rv-dm select{margin-left:4px;padding:4px 6px;border:1px solid #ccd9e8;border-radius:5px;font:inherit;font-size:12px}
.rv-table{width:100%;border-collapse:collapse;font-size:12.5px}.rv-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#657380;padding:8px 8px;border-bottom:1px solid #e3e8ed;background:#f8f9fb}.rv-table td{padding:9px 8px;border-bottom:1px solid #eef1f4;vertical-align:top}.rv-table tr.off td{opacity:.45}.rv-table tr.off td:first-child{opacity:1}.rv-table tr.open td{border-bottom:0}.rv-prow td{background:#f8fafc;padding:6px 8px 14px}
.rv-in{display:block;width:100%;padding:5px 8px;border:1px solid #d6dee8;border-radius:5px;font:inherit;font-size:12.5px;background:#fff}.rv-in.sm{font-size:11.5px;margin-top:4px;color:#485867}.rv-who{min-width:210px}.rv-more{margin-top:6px;border:0;background:none;color:#0b6bd6;font:inherit;font-size:11.5px;cursor:pointer;padding:0}
.ed,.rv-disc.ed,.rv-lead.ed{background:#fff3c4!important}.rv-in.ed,.rv-grid .ed{border-color:#f0c04a!important}
.rv-chip{display:inline-flex;align-items:center;gap:4px;margin:0 4px 4px 0;padding:2px 8px;border:1px solid #d6dee8;border-radius:999px;font-size:11.5px;cursor:pointer;background:#fff;user-select:none}.rv-chip input{margin:0;width:12px;height:12px}.rv-chip.on{background:#e6f0ff;border-color:#8fb6ee;color:#0b4f9a}.rv-chip.lead.on{background:#fff2d9;border-color:#e8b447;color:#7a4b00}.rv-chip em{font-style:normal;font-size:10px;color:#a16b1b}
.rv-st{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;white-space:nowrap}.rv-st.new{background:#e3f6ea;color:#1b7a44}.rv-st.account{background:#e6f0ff;color:#0b4f9a}.rv-st.member,.rv-st.pending{background:#eef2f5;color:#596e8b}.rv-table td small{display:block;color:#687784;font-size:11px;margin-top:2px}
.rv-empty{color:#687784;font-style:italic}.rv-warn{margin:10px 0 0;padding:8px 12px 8px 26px;background:#fff8e6;border:1px solid #f5d78e;border-radius:6px;font-size:12.5px;color:#7a4b00}
.rv-profile dl{display:grid;grid-template-columns:150px 1fr;gap:4px 12px;margin:4px 0 8px;font-size:12.5px}.rv-profile dt{color:#657380}.rv-profile dd{margin:0}.rv-prof-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}.rv-prof-cols b{display:block;font-size:12px;color:#0b4f9a;margin-bottom:4px}.rv-prof-cols ul{margin:0;padding-left:16px}.rv-prof-cols li span+span::before{content:' · ';color:#697583}
.rv-foot{border-top:1px solid #e3e8ed;padding:12px 24px 14px;background:#fff}.rv-sum{font-size:12.5px;margin-bottom:8px;color:#263340}.rv-ed{color:#7a4b00;font-weight:600}.rv-fields{display:grid;grid-template-columns:2fr 1fr;gap:10px;margin-bottom:10px}.rv-fields label{font-size:11.5px;font-weight:600;color:#596e8b}.rv-fields input{display:block;width:100%;margin-top:3px;padding:7px 9px;border:1px solid #ccd9e8;border-radius:5px;font:inherit;font-size:13px}
.rv-actions{display:flex;gap:8px;align-items:center}.rv-sp{flex:1}.reg-review .cde-button{min-height:38px;padding:0 14px;border:1px solid #c9d1d9;background:#fff;border-radius:5px;color:#3e4e5d;font:inherit;font-weight:500;cursor:pointer}.reg-review .cde-button.primary{color:#fff;background:var(--nx-blue);border-color:var(--nx-blue)}.reg-review .cde-button.danger{color:#b0392b;border-color:#e6b1aa}.reg-review .cde-button:disabled{opacity:.6;cursor:default}
#rv-err:empty{display:none}#rv-err{margin:8px 0 0;color:#b0392b;font-weight:600}
.reg-inline{display:inline}.reg-inline summary{display:inline;cursor:pointer;color:#0b6bd6}.reg-inline ul{margin:4px 0 0;padding-left:18px}
@media(max-width:900px){.rv-grid{grid-template-columns:1fr 1fr}.rv-fields{grid-template-columns:1fr}.rv-table{font-size:12px}.rv-prof-cols{grid-template-columns:1fr}}
.reg-review input:not([type=checkbox]):not([type=radio]),.reg-review select{height:auto;min-height:0;box-shadow:none;width:100%}.reg-review input[type=checkbox],.reg-review input[type=radio]{width:15px;height:15px;min-height:0;margin:0;flex:0 0 15px;accent-color:#0665ed}.reg-review .rv-opt input{margin-top:2px}.reg-review .rv-chip input{width:12px;height:12px;flex-basis:12px}.reg-review label{margin:0}.reg-review .rv-table input[type=checkbox]{margin-top:8px}
.rv-adddisc{display:flex;gap:12px;align-items:center;margin:0 0 8px;font-size:12px;color:#596e8b}.rv-adddisc label{display:flex;gap:8px;align-items:center;font-weight:600}.reg-review .rv-adddisc input{width:240px;padding:5px 8px;border:1px solid #ccd9e8;border-radius:5px;font:inherit;font-size:12.5px}

/* Năng lực nhân sự — bảng theo đơn vị */
.cap-tile small{display:block;font-size:11px;color:#687784;margin-top:2px}
.cap-org{margin:18px 0 6px;border:1px solid #dfe5ec;border-radius:8px;overflow:hidden;background:#fff}.cap-org-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;background:#f8fafc;border-bottom:1px solid #e3e8ed;flex-wrap:wrap}.cap-org-title{display:flex;align-items:center;gap:10px}.cap-org-title h3{margin:0;font-size:15px}.cap-org-title h3 small{font-weight:500;color:#657380}.cap-org-title .org-kind{padding:4px 9px;font-size:11px}.cap-org-meta{display:flex;align-items:center;gap:14px;font-size:12px;color:#657380}#cde .cap-org-meta .cde-button{min-height:32px;padding:0 12px;font-size:12px!important;text-decoration:none}
.cap-wrap{min-height:0}.cap-table{white-space:normal}#cde .cap-table th{padding:9px 12px;font-size:11px}#cde .cap-table td{padding:10px 12px;height:auto;vertical-align:top;font-size:12.5px;cursor:pointer}#cde .cap-table tr.empty td{color:#67768d}.cap-no{width:32px;color:#697583}.cap-name b{display:block;font-size:13px;color:#16202b}.cap-name small{display:block;color:#657380;font-size:11.5px;margin-top:1px}.cap-name .cap-contact{color:#687784}
.cap-disc{display:inline-block;margin:0 4px 4px 0;padding:2px 8px;border-radius:10px;background:#eef2f7;color:#485867;font-size:11.5px;white-space:nowrap}.cap-disc.lead{background:#fff2d9;color:#7a4b00;font-weight:600}.cap-dash{color:#63778a}.cap-num b{font-size:14px;color:#0b4f9a}
.cap-cert{display:inline-block;margin:0 4px 4px 0;padding:2px 8px;border-radius:5px;background:#e3f6ea;color:#1b7a44;font-size:11.5px;white-space:nowrap}.cap-cert em{font-style:normal;font-weight:700}.cap-more{font-size:11px;color:#657380}
.cap-bar{display:inline-block;width:64px;height:6px;border-radius:3px;background:#e9edf1;vertical-align:middle;overflow:hidden;margin-right:6px}.cap-bar i{display:block;height:100%;background:#0665ed;border-radius:3px}.cap-bar i.w0{width:0}.cap-bar i.w10{width:10%}.cap-bar i.w20{width:20%}.cap-bar i.w30{width:30%}.cap-bar i.w40{width:40%}.cap-bar i.w50{width:50%}.cap-bar i.w60{width:60%}.cap-bar i.w70{width:70%}.cap-bar i.w80{width:80%}.cap-bar i.w90{width:90%}.cap-bar i.w100{width:100%;background:#1b8a4c}.cap-table td small{font-size:11px;color:#67768d}
.cap-act{white-space:nowrap}#cde .cap-act .cde-text-button{margin-right:10px;font-size:12px!important}
.cap-detail h3{margin:0 0 2px;font-size:17px}.cap-detail-sub{margin:0 0 10px;color:#657380;font-size:12.5px;line-height:1.5}.cap-detail .cde-button{margin-top:14px}
@media(max-width:900px){.cap-org-head{align-items:flex-start}.cap-table{min-width:760px}}
/* ---- Trao đổi: hoàn thiện (gọn thao tác, nhóm tin, nhắc tên, thẻ, ghim, đang gõ, xem ảnh) ---- */
.message{margin:0 0 10px}
.message.grouped{margin-top:-4px}.message.grouped .message-author,.message.grouped>.avatar{visibility:hidden;height:0;margin:0;overflow:hidden}.message.grouped>.avatar{height:0;width:28px}
.message-actions{margin:2px 0 0;min-height:0}
@media (hover:hover){.message-actions>button:not(.reaction){opacity:0;transition:opacity .12s}.message:hover .message-actions>button,.message:focus-within .message-actions>button{opacity:1}}
.message-actions>button:not(.reaction){font-size:11px;padding:2px 8px;border-radius:999px;background:#fff;border:1px solid var(--nx-border);color:#4a5a6a}.message-actions>button:not(.reaction):hover{border-color:var(--nx-blue);color:var(--nx-blue)}
.message.mentioned .bubble{border-color:#f0c04a;background:#fffbea}.message.mine.mentioned .bubble{background:#e6f0fd}
.mention{color:#0b4f9a;font-weight:650;background:#e8f1fd;border-radius:4px;padding:0 3px}.mention.me{background:#fff0c2;color:#7a4b00}
.msg-link{color:var(--nx-blue);text-decoration:underline;overflow-wrap:anywhere}
.msg-card{display:flex;flex-direction:column;gap:3px;margin:8px 0 2px;padding:9px 12px;border:1px solid var(--nx-border);border-left:4px solid var(--nx-blue);border-radius:8px;background:#f7f9fc;color:var(--nx-ink);text-decoration:none;max-width:420px;white-space:normal}.msg-card:hover{border-color:var(--nx-blue)}
.msg-card .card-kind{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:#657380;font-weight:700}.msg-card b{font-size:13px;line-height:1.35}.msg-card .card-meta{font-size:12px;color:#5b6876;display:flex;align-items:center;gap:6px}
.msg-card.drawing{border-left-color:#6a49a0}.msg-card .status{display:inline-block;width:8px;height:8px;border-radius:50%;background:#9aa7b4}.msg-card .status.open{background:#6b7a8b}.msg-card .status.in_progress{background:#0665ed}.msg-card .status.in_review{background:#b7791f}.msg-card .status.closed{background:#1b8a4c}
.message.is-pinned .bubble{box-shadow:inset 0 0 0 1px #f0c04a}
.message.flash .bubble{animation:msgflash 1.5s ease-out}@keyframes msgflash{0%{background:#fff3c4}100%{background:inherit}}
.attachment .file-ico{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:8px;background:#eef2f6;color:#0b4f9a;font-size:10px;font-weight:800;letter-spacing:.04em}
.attachment.is-image img{max-width:280px;max-height:220px;border-radius:8px;cursor:zoom-in;display:block}
.pinned-bar{border-bottom:1px solid var(--nx-border);background:#fffbea;padding:6px 14px;font-size:12.5px}.pinned-bar .pinned-head{display:flex;justify-content:space-between;width:100%;border:0;background:none;font:inherit;font-weight:650;color:#7a4b00;cursor:pointer;padding:2px 0}.pinned-bar .pinned-head small{color:#0b4f9a;font-weight:600}
.pinned-bar .pinned-latest{display:block;width:100%;text-align:left;border:0;background:none;font:inherit;font-size:12.5px;color:#4a5a6a;cursor:pointer;padding:2px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pinned-bar ul{list-style:none;margin:4px 0 0;padding:0;max-height:180px;overflow:auto}.pinned-bar li{display:flex;gap:6px;align-items:flex-start;border-top:1px dashed #f0c04a55;padding:5px 0}.pinned-bar li>button:first-child{flex:1;text-align:left;border:0;background:none;font:inherit;font-size:12.5px;cursor:pointer;color:#16202b}.pinned-bar .unpin{border:0;background:none;font-size:16px;color:#9a3412;cursor:pointer;line-height:1}
.typing{padding:2px 22px 6px;font-size:12px;color:#657380;display:flex;align-items:center;gap:8px}.typing .dots{display:inline-flex;gap:3px}.typing .dots i{width:6px;height:6px;border-radius:50%;background:#9aa7b4;animation:typing 1.2s infinite}.typing .dots i:nth-child(2){animation-delay:.2s}.typing .dots i:nth-child(3){animation-delay:.4s}@keyframes typing{0%,80%,100%{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
.composer{position:relative}.mention-pop{position:absolute;left:12px;bottom:calc(100% + 6px);z-index:var(--z-popover,40);width:min(360px,calc(100% - 24px));background:#fff;border:1px solid var(--nx-border);border-radius:10px;box-shadow:0 12px 32px rgba(16,32,48,.18);overflow:hidden;padding:4px}
.mention-pop button{display:flex;gap:10px;align-items:center;width:100%;border:0;background:none;padding:7px 10px;border-radius:6px;font:inherit;font-size:13px;text-align:left;cursor:pointer;color:var(--nx-ink)}.mention-pop button.active,.mention-pop button:hover{background:#eef4fc}.mention-pop button small{display:block;color:#657380;font-size:11.5px}.mention-pop .avatar.small{width:26px;height:26px;border-radius:50%;background:#e5e9da;color:#637285;display:grid;place-items:center;font-size:9px;font-weight:700;flex-shrink:0}
dialog.lightbox{border:0;background:transparent;padding:0;max-width:96vw;max-height:96vh;width:auto;height:auto;overflow:visible}dialog.lightbox::backdrop{background:rgba(5,12,24,.85)}dialog.lightbox img{max-width:94vw;max-height:88vh;display:block;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
dialog.lightbox #lightbox-close{position:absolute;top:-14px;right:-14px;width:36px;height:36px;border-radius:50%;border:0;background:#fff;font-size:22px;cursor:pointer}dialog.lightbox #lightbox-open{display:block;text-align:center;margin-top:8px;color:#fff;font-size:13px}
@media (max-width:720px){.attachment.is-image img{max-width:100%}.msg-card{max-width:100%}.message-actions>button:not(.reaction){font-size:11.5px}}
/* Trao đổi trên điện thoại: thanh menu xuống đáy (như các trang khác), danh sách/khung chat chiếm toàn bộ chiều ngang. */
@media(max-width:650px){
  #workspace{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);padding-bottom:62px}
  #workspace .app-topbar{grid-column:1}
  #workspace .rail-wrap{position:fixed;left:0;right:0;bottom:0;top:auto;height:62px;padding:4px;flex-direction:row;align-items:center;border-right:0;border-top:1px solid var(--nx-border,#dce5ef);z-index:30;overflow:hidden}
  #workspace .rail-foot{flex-direction:row;padding:0 6px;border-top:0;border-left:1px solid var(--nx-border,#dce5ef)}
  #workspace .sidebar,#workspace .chat-main{grid-column:1}
  #workspace.mobile-chat .rail-wrap{display:none}
  #workspace.mobile-chat{padding-bottom:0}}
/* Trao đổi: nhóm phòng theo dự án + cột phải ngữ cảnh dự án */
.room-group{margin:2px 0 6px}.room-group-head{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:0;background:transparent;border-radius:8px;font:inherit;font-size:12.5px;font-weight:700;color:#4b5b6b;text-align:left;cursor:pointer;letter-spacing:.02em}.room-group-head:hover{background:#eef3f9}
.room-group-chev{display:inline-block;width:12px;transition:transform .15s;color:#657788}.room-group.open .room-group-chev{transform:rotate(90deg)}.room-group-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-group-name small{font-weight:500;color:#657788}
.room-group-meta small{color:#657788;font-weight:500}.room-group-meta .unread{display:inline-block;min-width:20px;padding:1px 6px;border-radius:10px;background:#0665ed;color:#fff;font-size:11px;font-weight:700;text-align:center}
.room-group-body .room{padding:11px 10px 11px 22px}.room-group-body .project-tag{display:none}
#chat .chat-body{display:flex;flex:1;min-height:0}#chat .chat-col{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0}
.room-context{width:320px;flex:0 0 320px;border-left:1px solid var(--nx-border,#dce5ef);background:#fff;overflow:auto;padding:12px 14px 24px;font-size:13px;color:#16202b}
.ctx-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.ctx-head b{font-size:14px}.ctx-loading{color:#657380;padding:12px}
.ctx-card{border:1px solid #e3e9f0;border-radius:10px;padding:10px 12px;margin-bottom:12px;background:#fbfcfe}.ctx-eyebrow{display:flex;align-items:center;gap:8px;font-size:10.5px;letter-spacing:.12em;font-weight:700;color:#0b4f9a;margin-bottom:6px}.ctx-eyebrow small{margin-left:auto;font-weight:600;color:#657380;letter-spacing:0}
.ctx-project h3{margin:0;font-size:15px}.ctx-muted{color:#657380;font-size:12px;margin:4px 0}
.ctx-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-top:8px}.ctx-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.ctx-links a{font-size:12px;padding:4px 9px;border:1px solid #d6e0ec;border-radius:999px;color:#0b4f9a;text-decoration:none;background:#fff}.ctx-links a:hover{border-color:#0665ed}.ctx-stats a{display:flex;flex-direction:column;align-items:center;padding:6px 2px;border:1px solid #e3e9f0;border-radius:8px;background:#fff;text-decoration:none;color:#16202b}.ctx-stats a b{font-size:16px;line-height:1.1}.ctx-stats a span{font-size:10.5px;color:#657380}.ctx-stats a.bad b{color:#c2371f}.ctx-stats a:hover{border-color:#0665ed}
.ctx-org{margin-top:6px}.ctx-org-name{font-weight:700;font-size:12px;color:#334455;padding:4px 0;border-bottom:1px solid #eef2f6;display:flex;gap:6px;align-items:center}.ctx-org-name small{font-weight:600;color:#657380}.ctx-org-name .ctx-count{margin-left:auto}
.ctx-person{display:flex;align-items:center;gap:8px;padding:5px 0}.ctx-avatar{position:relative;display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#e4ebf4;color:#0b4f9a;font-size:11px;font-weight:700;flex:0 0 30px}.ctx-avatar i{position:absolute;right:-1px;bottom:-1px;width:9px;height:9px;border-radius:50%;background:#b8c2cc;border:2px solid #fff}.ctx-person.online .ctx-avatar i{background:#1b8a4c}
.ctx-who{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.2}.ctx-who b{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ctx-who b small{font-weight:500;color:#657380}.ctx-who small{font-size:11px;color:#657380;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ctx-actions{display:flex;gap:2px;opacity:.6}.ctx-person:hover .ctx-actions{opacity:1}.ctx-actions button,.ctx-actions a{width:26px;height:26px;border:1px solid transparent;border-radius:6px;background:transparent;color:#0665ed;font-size:13px;cursor:pointer;display:grid;place-items:center;text-decoration:none}.ctx-actions button:hover,.ctx-actions a:hover{background:#eef3f9;border-color:#d6e0ec}
.ctx-row{display:flex;align-items:center;gap:6px;width:100%;padding:7px 4px;border:0;border-top:1px solid #eef2f6;background:transparent;font:inherit;font-size:13px;color:#16202b;text-align:left;cursor:pointer;text-decoration:none}.ctx-row:first-of-type{border-top:0}.ctx-row span{margin-left:auto;color:#657788}.ctx-row:hover{color:#0665ed}
.ctx-files{display:grid;gap:4px;margin-top:4px}.ctx-file{display:grid;grid-template-columns:22px 1fr;gap:2px 6px;padding:5px 4px;border-radius:6px;text-decoration:none;color:#16202b}.ctx-file:hover{background:#eef3f9}.ctx-file-name{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ctx-file small{grid-column:2;color:#657380;font-size:11px}
#room-info[aria-pressed=true]{background:#e4ebf4;color:#0665ed}
@media(max-width:1100px){.room-context{position:absolute;top:0;right:0;bottom:0;width:min(360px,100%);box-shadow:-8px 0 24px rgba(16,32,48,.12);z-index:5}#chat .chat-body{position:relative}}

/* Đăng nhập trên điện thoại: chỉ QR */
.auth-mobile{margin-top:6px}.auth-mobile h3{margin:0 0 8px;font-size:17px}.auth-mobile ol{margin:0 0 10px;padding-left:20px;line-height:1.5}.auth-mobile .muted{font-size:13px}.auth-mobile video{width:100%;max-height:60vh;border-radius:10px;margin-top:10px;background:#000}.auth-mobile .primary{width:100%;margin-top:6px}.auth-mobile .auth-link{display:block;margin:12px auto 0}#auth-scan-error{margin-top:8px}

#toast{max-width:min(90%,calc(100% - 180px))}@media(max-width:650px){#toast{bottom:78px;max-width:calc(100% - 24px)}}
.cde-table small.cde-muted{display:block;color:#8a6a1a;font-size:11.5px;margin-top:2px}.cde-button.trashed{opacity:.75;border-style:dashed}
.cde-trashed-note{display:block;margin:0 0 10px;padding:8px 12px;border:1px solid #f0a3a3;background:#fff1f1;border-radius:8px;color:#6b2a2a;font-size:13px}

/* Ngăn kéo vấn đề v2: thẻ vị trí trên bản vẽ (ảnh + số hiệu + nút mở), lưới thông tin 2 cột, hàng thao tác dính đáy */
.cde-drawer-body{display:flex;flex-direction:column}.cde-detail-info{flex:1}
.cde-detail-info h3 .cde-count{display:inline-block;min-width:16px;padding:0 5px;margin-left:6px;border-radius:999px;background:#eef2f5;color:#5a6b80;font-size:10px;text-align:center;line-height:16px}
.cde-anchor-list{display:grid;gap:12px;margin:0 0 20px}.cde-anchor-card{margin:0;border:1px solid #dfe6ee;border-radius:10px;overflow:hidden;background:#fff}.cde-anchor-card.trashed{border-style:dashed;background:#fafbfc}
.cde-anchor-thumb{display:block;position:relative;background:#f3f6f9;aspect-ratio:16/9;overflow:hidden}.cde-anchor-thumb img{display:block;width:100%;height:100%;object-fit:cover}.cde-anchor-thumb .cde-snapshot-pending{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:12px;color:#657688}
.cde-anchor-veil{position:absolute;left:0;right:0;bottom:0;padding:5px 10px;background:rgba(107,42,42,.85);color:#fff;font-size:11px;font-weight:600}
.cde-anchor-card figcaption{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;border-top:1px solid #eef2f6;font-size:12px}
.cde-anchor-title{display:flex;flex-direction:column;min-width:0}.cde-anchor-title b{color:#112d50;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cde-anchor-title span{color:#657784;font-size:11px}
.cde-anchor-acts{display:flex;gap:6px;flex-shrink:0}.cde-anchor-acts .cde-button.small{font-size:11.5px;padding:5px 9px}.cde-anchor-note{font-size:11px;color:#8a6a1a}
.cde-no-anchor{font-size:12px;margin:0 0 18px}
.cde-detail-info .cde-desc{margin:0 0 18px;padding:10px 12px;background:#f8fafc;border-radius:8px;border:1px solid #eef2f6}.cde-detail-info .cde-desc.muted{color:#667686;background:transparent;border-style:dashed}
.cde-detail-info dl.cde-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;margin:0 0 6px}.cde-meta-grid div{min-width:0}.cde-meta-grid dt{font-size:10.5px;letter-spacing:.03em;text-transform:uppercase;color:#657786;margin:0 0 3px}.cde-meta-grid dd{margin:0;font-size:13px;color:#1f3448;font-weight:500;overflow-wrap:anywhere}
.cde-detail-info .cde-panel-note{margin:16px 0 18px!important}
#cde .cde-detail-actions .cde-button.primary{order:-1}#cde .cde-detail-actions .cde-button.push{order:10;margin-left:auto}
#cde .cde-detail-actions .cde-button.danger,#cde .cde-detail-actions .cde-button.danger:not(:hover){background:#fff;color:#b0392b;border:1px solid #e6b1aa}#cde .cde-detail-actions .cde-button.danger:hover{background:#fff1f1}
.cde-anchor-thumb{aspect-ratio:auto;height:170px}

/* ===== Trang Vấn đề v2 ===== */
.issue-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:0;border-bottom:1px solid var(--cde-border)}
.issue-stat{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:14px 18px;border:0;border-right:1px solid #eef1f4;background:#fff;text-align:left;cursor:pointer;font:inherit;border-top:3px solid transparent}.issue-stat:last-child{border-right:0}.issue-stat b{font-size:22px;line-height:1.1;color:#112d50;font-weight:700}.issue-stat span{font-size:11.5px;color:#657686}.issue-stat:hover{background:#f7f9fc}
.issue-stat.on{background:#f3f7ff}.issue-stat.st-open.on{border-top-color:#1f70ad}.issue-stat.st-prog.on{border-top-color:#c98a0b}.issue-stat.st-rev.on{border-top-color:#7954a4}.issue-stat.st-late.on{border-top-color:#c2371f}.issue-stat.st-done.on{border-top-color:#395980}
.issue-stat.st-late b{color:#c2371f}.issue-stat.st-prog b{color:#936509}.issue-stat.st-rev b{color:#7954a4}.issue-stat.st-open b{color:#1f70ad}
#cde .cde-tabs.seg-tabs{height:auto;padding:12px 18px 0;gap:6px;border-bottom:1px solid var(--cde-border)}#cde .cde-tabs.seg-tabs button{border:1px solid transparent;border-radius:8px 8px 0 0;padding:8px 12px;font-size:12.5px!important;color:#5a6b80;gap:7px}#cde .cde-tabs.seg-tabs button span{background:#eef2f5;border-radius:999px;padding:1px 7px;font-size:10.5px;color:#5a6b80}#cde .cde-tabs.seg-tabs button.active{color:#1b5fd6;background:#f3f7ff;border-color:#d6e3fb;border-bottom-color:#f3f7ff;margin-bottom:-1px}#cde .cde-tabs.seg-tabs button.active span{background:#1b5fd6;color:#fff}
#cde .cde-search{display:flex;align-items:center;gap:8px;border:1px solid #d7dee7;border-radius:8px;padding:0 10px;height:36px;min-width:300px;background:#fff}#cde .cde-search svg{width:15px;height:15px;fill:none;stroke:#7b8a99;stroke-width:1.8}#cde .cde-search input{border:0;outline:0;flex:1;font:inherit;font-size:13px;background:transparent}
#cde .issue-table th{background:#f8f9fb;border-right:0;padding:11px 14px;font-size:11px;letter-spacing:.03em;text-transform:uppercase}#cde .issue-table td{padding:11px 14px;height:auto;vertical-align:middle;font-size:12.5px}#cde .issue-table tr.issue-row{cursor:pointer;transition:background .12s}#cde .issue-table tr.issue-row:hover td{background:#f7f9fd}#cde .issue-table tr.issue-row:focus-visible{outline:2px solid #1b5fd6;outline-offset:-2px}#cde .issue-table tr.done td{color:#687684}#cde .issue-table tr.done .cde-title-link{color:#5a6b80}
#cde .issue-table .cde-number{color:#667686;font-variant-numeric:tabular-nums;width:56px}#cde .issue-table .c-title{white-space:normal;min-width:260px}#cde .issue-table .cde-title-link{font-size:13px!important;font-weight:600;color:#112d50;line-height:1.35}#cde .issue-table .cde-title-link:hover{color:#1b5fd6}
.cde-issue-sub{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px;align-items:center}.cde-chip{display:inline-flex;align-items:center;font-size:11px;padding:1px 7px;border-radius:999px;background:#eef4ff;color:#1b5fd6;font-weight:600}.cde-chip.trashed{background:#f3f3f3;color:#8a8a8a}.cde-chip.more{background:#eef2f5;color:#5a6b80}.cde-sub-item{font-size:11px;color:#657686}.cde-sub-item.warn{color:#b4521a;font-weight:600}.cde-sub-item.muted{color:#657787}
.cde-who{display:inline-flex;align-items:center;gap:9px}.cde-who>span{display:flex;flex-direction:column;line-height:1.25}.cde-who b{font-weight:600;color:#1f3448;font-size:12.5px}.cde-who small{font-size:10.5px;color:#667686}
.cde-av{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;color:#fff;font-size:10.5px;font-weight:700;flex:none}.av-c0{background:#1b5fd6}.av-c1{background:#0f8a6a}.av-c2{background:#b45309}.av-c3{background:#7c3aed}.av-c4{background:#be185d}.av-c5{background:#0e7490}.av-c6{background:#4d7c0f}.av-c7{background:#9f1239}
.cde-org{color:#3f4f63}.cde-prio{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#4a5a6e}.cde-prio i{width:8px;height:8px;border-radius:50%;background:#9aa7b3}.cde-prio.high i{background:#e0702e}.cde-prio.urgent i{background:#c2371f}.cde-prio.urgent{color:#c2371f;font-weight:600}.cde-prio.low i{background:#c5ced8}
#cde .issue-table .c-due{white-space:nowrap}#cde .issue-table .c-due>span{display:block;font-variant-numeric:tabular-nums}#cde .issue-table .c-due small{display:block;font-size:10.5px}.due-late{color:#c2371f;font-weight:600}.due-soon{color:#b4521a}.due-ok{color:#667686}
#cde .issue-table .c-acts{width:110px;text-align:right}#cde .issue-table .row-acts{display:inline-flex;gap:2px;opacity:0;transition:opacity .12s}#cde .issue-table tr:hover .row-acts,#cde .issue-table tr:focus-within .row-acts{opacity:1}#cde .issue-table .ra{width:30px;height:30px;border:0;border-radius:6px;background:transparent;color:#5a6b80;display:inline-grid;place-items:center;cursor:pointer;font-size:16px}#cde .issue-table .ra svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}#cde .issue-table .ra:hover{background:#eef4ff;color:#1b5fd6}
#cde .cde-badge{border-radius:999px;padding:3px 10px;font-weight:600}#cde .cde-badge i{width:6px;height:6px;border-radius:50%;background:currentColor;display:inline-block}
.cde-ctx{position:fixed;z-index:1000;min-width:200px;background:#fff;border:1px solid #d7dee7;border-radius:10px;box-shadow:0 12px 32px rgba(15,35,60,.18);padding:6px;display:flex;flex-direction:column}.cde-ctx[hidden]{display:none}.cde-ctx button{border:0;background:transparent;text-align:left;padding:8px 12px;font:inherit;font-size:13px;color:#1f3448;border-radius:6px;cursor:pointer}.cde-ctx button:hover{background:#f3f7ff;color:#1b5fd6}.cde-ctx button.sep{border-top:1px solid #eef2f6;border-radius:0 0 6px 6px;margin-top:4px;padding-top:10px}.cde-ctx button.danger{color:#b0392b}.cde-ctx button.danger:hover{background:#fff1f1;color:#b0392b}
@media(max-width:1100px){.issue-stats{grid-template-columns:repeat(3,1fr)}.issue-stat{border-bottom:1px solid #eef1f4}}
/* Điện thoại, trang Vấn đề: thanh dưới có một nút cho mỗi modul đã bật (tới trang chủ modul); chức năng con không hiện ở thanh dưới */

#cde #phases-card .pset-opt-ico svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}#cde #phases-card .pset-opt-txt b{padding-right:62px}#cde .nx-nav-phase{font-size:12px!important;font-weight:700}
#cde #phases-card .pset-opt em.off{background:#f1f5f9;color:#64748b}
/* Góp ý 27/09 ý 7: gửi email thông báo khi sửa / thêm / gỡ thành viên */
.member-notify{display:grid;gap:8px;margin:14px 0 6px;padding:12px 14px;border:1px solid #d6dde8;border-radius:10px;background:#f7f9fc}
.member-notify .notify-check{display:flex;align-items:center;gap:8px;font-weight:600;font-size:14px;color:#1b2a41}
.member-notify textarea{width:100%;box-sizing:border-box;resize:vertical;min-height:52px;padding:8px 10px;border:1px solid #c9d2df;border-radius:8px;font:inherit;font-size:14px;background:#fff;color:#1b2a41}
.member-notify .notify-preview{font-size:13px;color:#33435a;line-height:1.5;border-top:1px dashed #d6dde8;padding-top:8px}
.member-notify .notify-preview b{display:block;color:#1b2a41}
.member-notify .notify-preview ul{margin:4px 0 0 18px;padding:0}
.member-notify .notify-preview p{margin:4px 0 0}
.member-notify .notify-head{display:block;font-size:12px;font-weight:600;color:#4a5a70;text-transform:uppercase;letter-spacing:.03em;margin-bottom:2px}
.member-notify .notify-none{margin:0;color:#4a5a70}
.notify-slot[hidden]{display:none}
.member-notify .notify-check{margin:0}.member-notify .notify-check input{width:16px;height:16px;min-height:0;margin:0;flex:0 0 auto}.member-notify .member-field-label{margin:0}
/* Lối vào Học viện (/hoc) trên trang đăng nhập */
.hoc-entry{display:flex;flex-direction:column;gap:12px;margin-top:26px;padding:22px 24px;border:1px solid #ffffff2e;border-radius:14px;background:#ffffff0d;color:#f4f7fb;max-width:560px;transition:border-color .15s,background .15s}
.hoc-entry:hover{border-color:#ffffff60;background:#ffffff14}
.hoc-entry-top{display:flex;align-items:center;gap:10px;font-size:10.5px;letter-spacing:1.4px;font-weight:700;color:#a9b0b8;text-transform:uppercase}
.hoc-entry-top b{color:#20334d;background:#dda47f;padding:4px 8px;border-radius:5px;letter-spacing:1.4px}
.hoc-entry strong{font-size:22px;letter-spacing:-.4px;line-height:1.25}
.hoc-entry strong em{font-family:"Nexus Serif","Times New Roman",serif;font-weight:400;color:#dda47f}
.hoc-entry-sub{font-size:13px;line-height:1.7;color:#b3b9c1}
.hoc-entry-cta{display:flex;align-items:center;gap:16px}
.hoc-entry-cta span{background:var(--nx-blue);color:#fff;font-weight:650;font-size:14px;padding:10px 16px;border-radius:10px}
.hoc-entry-cta small{font-size:12px;color:#a9b0b8}
.hoc-or{display:flex;align-items:center;gap:12px;margin:26px 0 14px;color:var(--muted);font-size:12px}
.hoc-or::before,.hoc-or::after{content:"";flex:1;height:1px;background:var(--line)}
.hoc-link{display:flex;align-items:center;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);min-height:48px}
.hoc-link:hover{border-color:#b6c7da}
.hoc-link-ic{display:grid;place-items:center;width:38px;height:38px;border-radius:9px;background:var(--nx-light);color:var(--nx-blue);flex-shrink:0}
.hoc-link-t{display:flex;flex-direction:column;gap:2px;flex:1}
.hoc-link-t b{font-size:14px}.hoc-link-t small{font-size:12px;color:var(--muted)}
.hoc-link>span:last-child{color:var(--nx-blue);font-weight:700}
:root[data-theme=dark] .hoc-link{background:transparent}
.story-body .blueprint{display:none}
@media(max-width:720px){.hoc-entry{display:none}}
/* Trang đăng nhập: chữ ký cuối khung (thay dòng nhỏ «CDE Nexus · Không gian cộng tác dự án») */
.auth-note:empty{display:none}
.auth-sign{display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:44px;text-align:center}
.auth-sign-line{display:flex;align-items:center;gap:14px;margin-bottom:4px}
.auth-sign-line i{width:56px;height:1px;background:linear-gradient(90deg,transparent,#c9a46c)}
.auth-sign-line i:last-child{background:linear-gradient(90deg,#c9a46c,transparent)}
.auth-sign-line img{width:30px;height:30px;border-radius:50%;box-shadow:0 0 0 3px #fff,0 0 0 4px #e5d6bb}
.auth-sign-name{font-size:17px;font-weight:700;letter-spacing:-.2px;color:var(--ink)}
.auth-sign-name b{font-weight:500;color:var(--nx-blue)}
.auth-sign-tag{font-family:"Nexus Serif","Times New Roman",serif;font-style:italic;font-size:15px;color:#9a7443;letter-spacing:.3px}
.auth-sign-sub{font-size:10px;letter-spacing:1.6px;text-transform:uppercase;color:var(--muted)}
:root[data-theme=dark] .auth-sign-line img{box-shadow:0 0 0 3px #1b2533,0 0 0 4px #5a4a33}
:root[data-theme=dark] .auth-sign-tag{color:#dcb887}
@media(max-width:720px){.auth-sign{margin-top:28px}}
/* Vấn đề theo mã tệp (issues.file_code): nhãn mã trước tiêu đề, nhóm theo tệp */
.cde-fcode{display:inline-block;margin:0 6px 2px 0;padding:1px 7px;border:1px solid #c7d7ee;border-radius:6px;background:#f1f6fd;color:#1e4f9a;font:600 11.5px/18px system-ui,-apple-system,"Segoe UI",sans-serif;letter-spacing:.2px;cursor:pointer;vertical-align:middle;white-space:nowrap}
.cde-fcode:hover{background:#e3eefc}
#cde-group-file.on{background:#eaf2ff;border-color:#9dc0f3;color:#1b5fd6}
tr.cde-fgroup td{background:#f6f8fb;border-top:2px solid #dbe4ef;padding:8px 10px}
.cde-fg{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px}
.cde-fg-code{font-weight:700;color:#12325e}
.cde-fg-name{color:#475569}
.cde-fg-bar{display:inline-block;width:120px;height:6px;border-radius:4px;background:#e2e8f0;overflow:hidden}
.cde-fg-bar i{display:block;height:100%;background:#16a34a}
.cde-fg-num{color:#475569}.cde-fg-num em{color:#b91c1c;font-style:normal;font-weight:600}
.cde-icode{display:block;font-size:11px;font-weight:600;color:#1e4f9a;white-space:nowrap;margin-top:2px}
/* Cài đặt dự án: mã vấn đề, tổng hợp tuần */
.pset-form{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-top:8px}
.pset-form .pset-note{flex-basis:100%;margin:0}
.pset-check{display:flex;gap:8px;align-items:center;font-weight:600;flex-basis:100%}
.pset-field{display:flex;flex-direction:column;gap:4px;font-size:13px;color:#475569}
.pset-field input,.pset-field select{font:inherit;padding:7px 10px;border:1px solid #cbd5e1;border-radius:8px;min-width:160px;background:#fff;color:#1f2d3d}
.pset-field input[name=pattern]{min-width:280px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.pset-on{margin-left:auto;font-style:normal;font-size:12px;color:#166534;background:#dcfce7;border-radius:999px;padding:2px 10px}
.pset-saved{margin-left:10px;font-size:12px;color:#166534}
/* Khối «Trợ lý AI» (public/ai-settings.js, chặng 6) */
.pset-on.ai-off{color:#475569;background:#eef1f5}#cde #ai-card .pset-check{margin:0}#cde #ai-card .pset-check input{height:18px;min-height:0}#cde #ai-card .pset-form{gap:10px 12px}#cde #ai-card .pset-check.ai-feature{font-weight:500;padding-left:26px}.pset-note.ai-warn{color:#92400e;background:#fffaeb;border:1px solid #f4d58a;border-radius:8px;padding:8px 10px}#ai-card:target{box-shadow:0 0 0 2px #cfe0ff}
.pset-preview{margin-top:10px}.pset-preview summary{cursor:pointer;font-weight:600;font-size:13px}
.pset-pv{margin-top:8px;padding:10px 12px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc}
.pset-pv pre{white-space:pre-wrap;font:13px/1.55 inherit;margin:6px 0 0;color:#334155}
.pset-check input{width:18px;height:18px;min-width:0;flex:none;margin:0;accent-color:#1b5fd6}
/* Quy ước tên tệp theo MIDP (góp ý 29/09) */
#cde .nm-parts{display:flex;flex-wrap:wrap;align-items:flex-start;gap:4px;margin:6px 0 12px}
#cde .nm-parts>i{font-style:normal;font-weight:700;color:#9aabc0;padding-top:7px}
#cde .nm-part{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 9px;border:1px solid #bcd3f7;border-radius:8px;background:#f3f8ff;min-width:40px}
#cde .nm-part b{font-size:14px;color:#0553c4}#cde .nm-part small{font-size:10.5px;color:#63758e;white-space:nowrap}#cde .nm-part.desc b{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#cde .nm-table{display:grid;border:1px solid #e3eaf3;border-radius:10px;overflow:hidden;margin-bottom:14px}
#cde .nm-table>div{display:grid;grid-template-columns:170px minmax(0,1fr);grid-template-rows:auto auto;column-gap:14px;padding:8px 12px;border-top:1px solid #edf1f6;font-size:12.5px}
#cde .nm-table>div:first-child{border-top:0}#cde .nm-table b{color:#102c4b;grid-row:1}#cde .nm-table>div>small{grid-row:2;grid-column:1;color:#7a8ca3;font-size:11px}
#cde .nm-table>div>span{grid-row:1/3;grid-column:2;color:#3b4f68;line-height:1.7}#cde .nm-table code{font:600 12px/1 inherit;color:#0553c4;background:#edf4ff;border-radius:5px;padding:2px 5px;margin-right:2px}
#cde .nm-form{display:grid;gap:12px;align-items:start}
#cde .nm-levels,#cde .nm-exempt{border:0;padding:0;margin:0;display:grid;gap:8px}#cde .nm-levels legend,#cde .nm-exempt legend{font-weight:700;color:#102c4b;margin-bottom:6px;font-size:13px}#cde .nm-exempt legend small{font-weight:400;color:#7a8ca3}
#cde .nm-levels{grid-template-columns:repeat(3,minmax(0,1fr))}
#cde .nm-level{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid #dce5ef;border-radius:10px;cursor:pointer;font-size:12.5px}#cde .nm-level.on{border:2px solid #0665ed;background:#f3f8ff;padding:9px 11px}
#cde .nm-level span{display:flex;flex-direction:column;gap:2px}#cde .nm-level b{font-size:13px;color:#102c4b}#cde .nm-level small{color:#4a5f7a;line-height:1.4}
#cde .nm-exempt>div{display:flex;flex-direction:column;gap:4px;max-height:220px;overflow:auto;border:1px solid #e3eaf3;border-radius:10px;padding:8px 10px}
#cde .nm-folder{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:400}
@media(max-width:760px){#cde .nm-levels{grid-template-columns:1fr}#cde .nm-table>div{grid-template-columns:1fr}#cde .nm-table>div>span{grid-row:auto;grid-column:1}}

/* Góp ý 29/09 #01 — sửa bảng mã MIDP, danh sách thư mục miễn áp dụng */
#cde .nm-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:6px 0 10px}
#cde .nm-edit{font-size:12px;margin-left:6px;padding:0 4px}
#cde .nm-codes{display:grid;gap:6px;margin:8px 0}
#cde .nm-code-row{display:grid;grid-template-columns:90px minmax(0,1fr) minmax(0,.8fr) auto;gap:6px;align-items:center}
#cde .nm-code-row input{min-width:0;width:100%;box-sizing:border-box;margin:0;height:34px;min-height:34px;padding:4px 8px}
#cde .nm-code-row button{margin:0;align-self:center}
#cde .nm-code-row input[name=code]{font-family:ui-monospace,Menlo,monospace}
#cde .nm-exempt{flex:1 1 100%;min-width:0}
#cde .nm-exempt>div{display:block;padding:6px 0}
#cde label.nm-folder{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:8px;width:auto;margin:0;padding:4px 10px;font-size:13px;font-weight:400;color:#263340;line-height:1.35;cursor:pointer}
#cde label.nm-folder:hover{background:#f4f8fd}
#cde label.nm-folder input[type=checkbox]{flex:0 0 auto;width:16px;height:16px;margin:0;padding:0;min-height:0}
#cde .pset-card.pset-focus{box-shadow:0 0 0 2px #7fb0ea}
/* Vấn đề theo bộ môn / loại + «Tạo báo cáo» (góp ý 30/09 tối) */
.cde-dbadge{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:18px;padding:0 5px;border-radius:4px;background:#64748b;color:#fff;font-size:10px;font-weight:700;letter-spacing:.02em;flex:none}
.cde-dbadge.none{background:#cbd5e1;color:#475569}
.cde-kind{display:inline-flex;align-items:center;gap:8px}.cde-kind-t{display:flex;flex-direction:column;line-height:1.25}.cde-kind-t b{font-size:12px;font-weight:600;color:#1f2f44}.cde-kind-t small{font-size:11px;color:#5b6b7e}.cde-kind-t small.none{color:#b45309;font-style:italic}
#cde .issue-table td.c-kind{white-space:nowrap}
.iss-facets{display:flex;flex-direction:column;gap:8px;padding:10px 18px;border-bottom:1px solid var(--cde-border);background:#fbfcfe}
.iss-facet{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.iss-fl{min-width:58px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#6b7b8e}.iss-fe{font-size:12px;color:#7a8898}
#cde .iss-chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border:1px solid #d5dde6;border-radius:999px;background:#fff;color:#2c3e55;font:inherit;font-size:12px;cursor:pointer}
#cde .iss-chip b{font-size:11px;font-weight:700;color:#475569;background:#eef2f6;border-radius:999px;padding:0 6px}#cde .iss-chip small{font-size:10.5px;color:#b45309}
#cde .iss-chip:hover{border-color:#9db4cf}#cde .iss-chip.on{border-color:#1b5fd6;background:#eaf2ff;color:#1b5fd6}#cde .iss-chip.on b{background:#1b5fd6;color:#fff}
#cde .iss-chip.zero{opacity:.55}#cde .iss-chip.warn{border-color:#f3c77b;background:#fff8eb;color:#92400e}#cde .iss-chip.warn.on{border-color:#d97706;background:#fdecc8}
#cde .iss-chip .cde-dbadge{height:16px;min-width:22px;font-size:9.5px}
#cde .seg-tabs .seg-label{align-self:center;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#6b7b8e;margin-right:4px}
#cde .cde-groupby{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 4px 0 10px;border:1px solid #c9d1d9;border-radius:3px;font-size:12px;color:#3e4e5d;background:#fff}
#cde .cde-groupby select{height:28px;border:0;background:#f3f6f9;border-radius:3px;font:inherit;font-size:12px;padding:0 6px}
#cde .cde-button.primary-soft{color:#1b5fd6;border-color:#9dc0f3;background:#eaf2ff}
.cde-fg-code.plain{font-weight:700}
dialog.irp{width:min(760px,calc(100vw - 32px));max-height:calc(100vh - 40px);padding:0;border:0;border-radius:10px;box-shadow:0 20px 60px rgba(15,30,50,.3);color:#1f2f44}
dialog.irp::backdrop{background:rgba(15,25,40,.45)}
.irp form{display:flex;flex-direction:column;max-height:calc(100vh - 40px)}
.irp header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid #e3e8ee}.irp h2{margin:0;font-size:16px}
.irp-x{border:0;background:none;font-size:22px;line-height:1;cursor:pointer;color:#64748b}
.irp-body{overflow:auto;padding:14px 20px;display:flex;flex-direction:column;gap:12px}
.irp fieldset{border:1px solid #e3e8ee;border-radius:8px;padding:8px 12px 10px;margin:0}.irp legend{font-size:12px;font-weight:700;color:#334155;padding:0 4px;display:flex;gap:8px;align-items:center}
.irp legend .cde-text-button{font-weight:500;font-size:11.5px}
.irp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:4px 12px}
.irp-ck{display:flex;align-items:center;gap:7px;font-size:12.5px;padding:3px 0;cursor:pointer}.irp-ck b{margin-left:auto;font-size:11px;color:#64748b}.irp-ck.zero{color:#94a3b8}
.irp-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.irp-cols label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:#334155}
.irp-cols select,.irp-cols input,.irp-row select,.irp-save input{height:32px;border:1px solid #cbd5e1;border-radius:4px;padding:0 8px;font:inherit;font-size:12.5px;font-weight:400}
.irp-row{display:flex;align-items:center;gap:8px}.irp-l{font-size:12px;font-weight:600}
.irp footer{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 20px;border-top:1px solid #e3e8ee;background:#f8fafc}.irp footer .sp{flex:1}
.irp-count{font-size:12.5px;color:#334155}.irp-count em{color:#b45309}.irp-save{display:inline-flex;gap:6px}.irp-save input{width:140px}
.irp a.disabled{opacity:.45;pointer-events:none}
@media(max-width:700px){.irp-cols{grid-template-columns:1fr 1fr}.irp-save{width:100%}.irp-save input{flex:1}}
#cde .irp input[type=checkbox]{width:15px;height:15px;min-height:0;margin:0;padding:0;flex:none;box-shadow:none}
#cde .irp-grid .irp-ck span{flex:1;min-width:0}
#cde .irp-save input{width:150px;height:32px;min-height:0}
#cde .cde-groupby{white-space:nowrap}
#cde .irp label.irp-ck{display:flex;flex-direction:row;align-items:center;gap:7px;margin:0;padding:4px 0;min-height:0;font-weight:500}
#cde .irp-grid .irp-ck span.cde-dbadge{flex:none;width:auto}
#cde .irp-cols label{margin:0;align-self:end}
#cde .irp footer .cde-button{height:32px}
/* Báo cáo định kỳ qua email (duyệt 30/09 tối) */
#cde .irp-tabs{display:flex;gap:2px;padding:0 20px;border-bottom:1px solid #e3e8ee}
#cde .irp-tabs button{border:0;background:none;padding:10px 12px;font:inherit;font-size:13px;font-weight:600;color:#5b6b7f;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer}
#cde .irp-tabs button.on{color:#1b5fd6;border-bottom-color:#1b5fd6}
#cde .irp-note{background:#f1f6ff;border:1px solid #cfe0fb;border-radius:8px;padding:8px 12px;font-size:12.5px;color:#1e3a6b}
#cde .irp-note.ok{background:#ecf7f0;border-color:#b7e0c6;color:#14532d}#cde .irp-note.bad{background:#fdecea;border-color:#f5c2bd;color:#7a1b12}
#cde .irp-srow{display:grid;grid-template-columns:110px 1fr;gap:10px;align-items:center}#cde .irp-srow.top{align-items:start}#cde .irp-srow>span:first-child{font-size:12.5px;font-weight:700;color:#334155}
#cde .irp-srow>input{height:32px;border:1px solid #cbd5e1;border-radius:4px;padding:0 10px;font:inherit;font-size:13px;min-height:0}
#cde .irp-seg{display:inline-flex;border:1px solid #cbd5e1;border-radius:6px;overflow:hidden;width:max-content}
#cde .irp-seg label{display:inline-flex;margin:0;cursor:pointer}#cde .irp-seg input{position:absolute;opacity:0;pointer-events:none}
#cde .irp-seg label span{padding:6px 12px;font-size:12.5px;border-right:1px solid #e2e8f0}#cde .irp-seg label:last-child span{border-right:0}#cde .irp-seg label.on span{background:#1b5fd6;color:#fff;font-weight:700}
#cde .irp-when{display:flex;gap:8px;align-items:center;flex-wrap:wrap}#cde .irp-when select{height:32px;border:1px solid #cbd5e1;border-radius:4px;padding:0 8px;font:inherit;font-size:12.5px;width:auto;min-height:0}#cde .irp-when small{color:#64748b;font-size:11.5px}
#cde .irp-rcs{display:flex;flex-direction:column;gap:7px}#cde .irp-rcrow{display:flex;flex-wrap:wrap;gap:6px}#cde .irp-rcrow:empty{display:none}
#cde label.irp-rc,#cde span.irp-rc{display:inline-flex;align-items:center;gap:6px;margin:0;padding:4px 10px;border:1px solid #d6dde6;border-radius:999px;font-size:12.5px;font-weight:500;background:#fff;cursor:pointer}
#cde label.irp-rc input{position:absolute;opacity:0;pointer-events:none}#cde .irp-rc b{font-size:11px;color:#64748b;background:#eef2f6;border-radius:999px;padding:0 6px}
#cde .irp-rc.on{border-color:#1b5fd6;background:#eaf2ff;color:#1b5fd6;font-weight:600}#cde .irp-rc.on b{background:#1b5fd6;color:#fff}
#cde span.irp-rc button{border:0;background:none;color:inherit;font-size:14px;line-height:1;padding:0 0 0 2px;cursor:pointer}
#cde .irp-add{display:flex;gap:6px}#cde .irp-add input{flex:1;height:32px;border:1px solid #cbd5e1;border-radius:4px;padding:0 10px;font:inherit;font-size:12.5px;min-height:0}
#cde .irp-hint{font-size:11.5px;color:#64748b}#cde .irp-opts{display:flex;flex-direction:column;gap:2px}
#cde [data-sc-msg].bad{color:#b42318}#cde .cde-button.busy{opacity:.6;cursor:progress}
#cde .irs .irp-body{gap:10px}#cde .irs-it{border:1px solid #e3e8ee;border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:6px}#cde .irs-it.off{background:#f8fafc}#cde .irs-it.off .irs-t b{color:#64748b}
#cde .irs-t{display:flex;align-items:center;gap:8px}#cde .irs-t b{font-size:14px}#cde .irs-t .sp{flex:1}
#cde .irs-sw{position:relative;display:inline-block;width:36px;height:20px;margin:0;cursor:pointer}#cde .irs-sw input{position:absolute;opacity:0}#cde .irs-sw i{position:absolute;inset:0;border-radius:999px;background:#cbd5e1;transition:background .15s}#cde .irs-sw i:after{content:"";position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:left .15s}#cde .irs-sw input:checked+i{background:#1b5fd6}#cde .irs-sw input:checked+i:after{left:18px}
#cde .irs-meta{font-size:12px;color:#5b6b7f}#cde .irs-rc{display:flex;flex-wrap:wrap;gap:4px}#cde .irs-rc span{font-size:11.5px;background:#eef2f6;border-radius:999px;padding:1px 8px;color:#334155}#cde .irs-rc span.off{text-decoration:line-through;color:#94a3b8}
#cde .irs-hist{font-size:12px;color:#334155;background:#f8fafc;border-radius:6px;padding:5px 8px}#cde .irs-hist .ok{color:#1f7a4d;font-weight:700}#cde .irs-hist .bad{color:#b42318;font-weight:700}
#cde .irs-acts{display:flex;gap:6px;flex-wrap:wrap;align-items:center}#cde .irs-acts .cde-button{height:28px;min-height:0;padding:0 10px}#cde .cde-button.danger-soft{color:#b42318;border-color:#f0c4bf}
#cde .irs-runs table{width:100%;border-collapse:collapse;font-size:12px}#cde .irs-runs th{text-align:left;color:#64748b;font-weight:600;border-bottom:1px solid #e3e8ee;padding:4px 6px}#cde .irs-runs td{padding:4px 6px;border-bottom:1px solid #f1f4f7}#cde .irs-runs td.failed{color:#b42318}#cde .irs-runs td.sent{color:#1f7a4d}
#cde .irs-rc span.warn{background:#fff4d6;color:#8a5a00}
/* Vấn đề theo giai đoạn (docs/specs/ISSUE-PHASE.md): 4 tab lớn, nhãn giai đoạn trong bảng. */
.iss-ptabs{display:flex;border:1px solid #dce5ef;border-radius:14px 14px 0 0;background:#fff;overflow-x:auto;margin-bottom:12px}
.iss-ptab{--ph:#20334d;--ph-bg:#f4f7fb;flex:1;min-width:150px;padding:12px 16px 10px;display:flex;flex-direction:column;align-items:flex-start;gap:3px;border:0;border-bottom:3px solid transparent;background:none;color:#56687f;font:inherit;text-align:left;cursor:pointer}
.iss-ptab:hover{background:#f7f9fc}
.iss-ptab.on{border-bottom-color:var(--ph);color:var(--ph);background:var(--ph-bg)}
.iss-ptab-t{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:700}
.iss-ptab-n{font-size:12px;padding:1px 8px;border-radius:10px;background:#eef2f7;color:inherit}.iss-ptab.on .iss-ptab-n{background:#fff}
.iss-ptab-s{font-size:12px;color:#56687f;font-weight:400}
.iss-ptab:focus-visible{outline:2px solid #1f5fd6;outline-offset:-2px}
.iss-phase{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 9px;border-radius:12px;background:var(--ph-bg);color:var(--ph);font-size:12px;font-weight:600;white-space:nowrap}
.iss-phase i{width:7px;height:7px;border-radius:4px;background:var(--ph)}
.iss-nocat{color:#b45309;font-style:italic}
@media (max-width:760px){.iss-ptab{min-width:120px;padding:10px 12px 8px}.iss-ptab-s{display:none}}
[data-ph=prep]{--ph:#7a5af8;--ph-bg:#f2efff}[data-ph=design]{--ph:#6941c6;--ph-bg:#f4f0ff}[data-ph=construction]{--ph:#0665ed;--ph-bg:#edf4ff}[data-ph=asbuilt]{--ph:#167548;--ph-bg:#e8f5ee}
/* Danh sách Vấn đề — bản gọn (duyệt 30/09 tối) */
#cde .iv-refresh{width:34px;padding:0;font-size:15px}
#cde .iv-report>summary.cde-button{gap:6px}#cde .iv-report .cde-create-options hr{border:0;border-top:1px solid #eef1f5;margin:4px 0}
#cde .iv-tabs{display:flex;align-items:flex-end;gap:22px;padding:0 20px;border-bottom:1px solid var(--cde-border,#e3e8ee)}
#cde .iv-tabs button{display:inline-flex;align-items:center;gap:6px;border:0;background:none;padding:12px 0 10px;font:inherit;font-size:13px;font-weight:600;color:#5b6b7f;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer}
#cde .iv-tabs button i{font-style:normal;font-size:11px;font-weight:600;color:#5b6b7f;background:#eef2f6;border-radius:9px;padding:0 6px;line-height:17px}
#cde .iv-tabs button:hover{color:#1b2b3f}#cde .iv-tabs button.on{color:#14243a;border-bottom-color:#1b5fd6}#cde .iv-tabs button.on i{background:#1b5fd6;color:#fff}
#cde .iv-tabs button.late i{background:#fde8e6;color:#b42318}#cde .iv-tabs button.late.on i{background:#b42318;color:#fff}
#cde .iv-tabs .sp{flex:1}#cde .iv-tabs .iv-trash{color:#8593a4;font-weight:500}
#cde .iv-bar{display:flex;align-items:center;gap:8px;padding:10px 20px;border-bottom:1px solid var(--cde-border,#e3e8ee);flex-wrap:wrap}
#cde .iv-bar .sp{flex:1}#cde .iv-bar .cde-search{height:32px;min-width:260px;width:300px;border-radius:6px}
#cde .iv-sidebtn,#cde .iv-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid #d3dbe4;border-radius:6px;background:#fff;color:#4a5b70;cursor:pointer;font-size:14px;padding:0}
#cde .iv-sidebtn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7}#cde .iv-sidebtn.on{background:#eef4ff;border-color:#cfdefa;color:#1b4fb0}
#cde .iv-tokens{display:contents}
#cde .iv-tok{display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 4px 0 10px;border-radius:6px;background:#eef4ff;border:1px solid #cfdefa;color:#1b4fb0;font-size:12.5px;font-weight:600;max-width:340px}
#cde .iv-tok b{font-weight:500;color:#51637a}#cde .iv-tok{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
#cde .iv-tok button{border:0;background:none;color:#7a8ca3;cursor:pointer;font-size:11px;padding:2px 6px;border-radius:4px}#cde .iv-tok button:hover{background:#dbe7fb;color:#1b4fb0}
#cde .iv-add{height:28px;padding:0 10px;border:1px dashed #c3ccd7;border-radius:6px;background:#fff;color:#4a5b70;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}#cde .iv-add.on{border-style:solid;border-color:#1b5fd6;color:#1b5fd6}
#cde .iv-clear{border:0;background:none;color:#1b5fd6;font:inherit;font-size:11.5px;font-weight:600;cursor:pointer;padding:0 4px;text-transform:none;letter-spacing:0}
#cde .iv-group{display:inline-flex;align-items:center;gap:6px;margin:0;font-size:12.5px;color:#5b6b7f;font-weight:500;white-space:nowrap}
#cde .iv-group select{height:30px;min-height:0;width:auto;border:1px solid #d3dbe4;border-radius:6px;background:#fff;padding:0 26px 0 10px;font:inherit;font-size:12.5px;font-weight:600;color:#233246}
#cde .iv-bar #cde-row-count{font-size:12.5px;color:#6b7b8e;white-space:nowrap;margin-left:4px;font-variant-numeric:tabular-nums}
#cde .iv-bar+.cde-filters{border-bottom:1px solid var(--cde-border,#e3e8ee)}
#cde .iv-body{display:grid;grid-template-columns:228px minmax(0,1fr)}#cde .iv-body.side-off{grid-template-columns:minmax(0,1fr)}#cde .iv-body.side-off .iv-side-wrap{display:none}
#cde .iv-side-wrap{border-right:1px solid var(--cde-border,#e3e8ee);background:#fbfcfd}
#cde .iv-side{position:sticky;top:0;padding:14px 12px 20px;display:flex;flex-direction:column;gap:14px;max-height:calc(100vh - 120px);overflow:auto}
#cde .iv-side h4{display:flex;align-items:center;justify-content:space-between;margin:0 0 4px;padding:0 8px;font-size:11px;letter-spacing:.6px;text-transform:uppercase;color:#7a8898;font-weight:700}
#cde .iv-f{display:flex;align-items:center;gap:8px;width:100%;border:0;background:none;padding:5px 8px;border-radius:6px;font:inherit;font-size:13px;color:#233246;cursor:pointer;text-align:left}
#cde .iv-f:hover{background:#f0f4f8}#cde .iv-f.on{background:#e8f0fe;color:#1b4fb0;font-weight:600}
#cde .iv-fl{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#cde .iv-fn{color:#7a8898;font-size:12px;font-variant-numeric:tabular-nums}#cde .iv-f.on .iv-fn{color:#1b4fb0}
#cde .iv-f.warn{color:#9a5b00}#cde .iv-f.warn .iv-fn{color:#9a5b00}
#cde .iv-dot{width:8px;height:8px;border-radius:50%;flex:none;margin:0 3px}
#cde .iv-f .cde-dbadge{min-width:34px;height:17px;font-size:10px}
#cde .iv-empty{margin:2px 8px;font-size:12px;color:#8593a4}
#cde .iv-main{min-width:0}
#cde .issue-table td{padding:9px 12px}#cde .issue-table th{font-size:11px}
#cde .cde-cat{font-size:12.5px;color:#34465c;white-space:nowrap}#cde .cde-cat.none{color:#9a5b00}
#cde .cde-kind{gap:7px}#cde .c-kind .cde-dbadge{min-width:30px}
#cde .cde-prio-mark{color:#b42318;font-weight:800;margin-right:4px}
#cde .cde-who small{color:#7a8898}
@media(max-width:900px){#cde .iv-body{grid-template-columns:minmax(0,1fr)}#cde .iv-side-wrap{border-right:0;border-bottom:1px solid var(--cde-border,#e3e8ee)}#cde .iv-side{position:static;max-height:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}#cde .iv-bar .cde-search{width:100%;min-width:0}#cde .iv-tabs{overflow-x:auto;gap:16px}}
#cde .iv-right{display:inline-flex;align-items:center;gap:8px;margin-left:auto}
#cde .iv-phases{display:flex;align-items:center;gap:4px;padding:12px 20px 0}#cde .iv-ph-l{font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:#7a8898;margin-right:6px}
#cde .iv-phases button{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 12px;border:1px solid #d9e1ea;border-radius:999px;background:#fff;font:inherit;font-size:12.5px;font-weight:600;color:#34465c;cursor:pointer}
#cde .iv-phases button b{font-size:11px;font-weight:700;color:#6b7b8e}#cde .iv-phases button:hover{border-color:#b8c6d6}
#cde .iv-phases button.on{background:#14243a;border-color:#14243a;color:#fff}#cde .iv-phases button.on b{color:#c9d6e6}
#cde .iv-ph-dot{width:8px;height:8px;border-radius:50%;flex:none}
/* ===== Giao diện navy (duyệt 30/09 23:02): dải navy đầu trang cho mọi trang CDE (.nx-band trong design-system.css). ===== */
#cde .cde-page-heading.nx-band{align-items:center;flex-wrap:wrap;gap:14px;margin-bottom:14px}
#cde .cde-page-heading.nx-band h1{font-size:22px;line-height:1.2;margin:0;color:#fff;letter-spacing:-.2px}
#cde .cde-page-heading.nx-band p{margin:3px 0 0;font-size:12.5px;max-width:none;color:#a9bad0}
#cde .nx-band-title{min-width:0}
#cde .cde-page-heading.nx-band .cde-heading-actions{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
#cde .nx-band-late{color:#ff9b93;font-weight:600}
#cde .cde-page-heading.nx-band.nx-band-joined{border-radius:12px 12px 0 0;margin-bottom:0;box-shadow:none}
#cde .cde-content.iv-content{border-radius:0 0 12px 12px;border-top:0}
#cde .nx-band .iv-phases{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:0 0 0 14px;border-left:1px solid #ffffff24}
#cde .nx-band .iv-ph-l{display:none}
#cde .nx-band .iv-phases button{height:30px;padding:0 12px;border:1px solid #ffffff26;border-radius:999px;background:transparent;color:#d4deea;font-size:12.5px;font-weight:600}
#cde .nx-band .iv-phases button b{color:#8fa4bf}
#cde .nx-band .iv-phases button:hover{border-color:#ffffff55;color:#fff}
#cde .nx-band .iv-phases button.on{background:#fff;border-color:#fff;color:var(--nx-navy)}#cde .nx-band .iv-phases button.on b{color:#5b6b7f}
#cde .nx-band .iv-refresh{width:34px}
/* Điểm nhấn navy trong danh sách */
@media(max-width:760px){#cde .nx-band .iv-phases{border-left:0;padding-left:0;width:100%;overflow-x:auto;flex-wrap:nowrap}}
#cde.setup-mode .cde-sidebar.nx-nav.collapsed{width:64px}
/* Góp ý 30/09 23:39 — dải navy liền mạch: bám sát thanh trên và thanh trái (không còn khoảng trắng bên trái / phía trên),
   đường dẫn nằm trong dải; nội dung bên dưới giữ lề. Trang Vấn đề: danh sách cũng tràn hết bề ngang, liền với dải. */
#cde .cde-main.has-band{padding:0 0 28px}
#cde .cde-main.has-band>:not(.nx-band){margin-left:24px;margin-right:24px}
#cde .cde-main.has-band>.nx-band{border-radius:0;margin:0 0 18px;padding:12px 24px 14px;box-shadow:none}
#cde .nx-band .cde-breadcrumb{color:#8fa4bf;font-size:11.5px;margin:0 0 3px;padding:0}
#cde .nx-band .cde-breadcrumb span{color:#5f7898;margin:0 4px}#cde .nx-band .cde-breadcrumb b{color:#c9d6e6;font-weight:600}
#cde .cde-main.has-band>.nx-band.nx-band-joined{margin-bottom:0}
#cde .cde-main.has-band>.cde-content.iv-content{margin:0;border:0;border-radius:0}
#cde .cde-main.has-band>.pa-tabs{margin-top:0}
@media(max-width:650px){#cde .cde-main.has-band>:not(.nx-band){margin-left:12px;margin-right:12px}#cde .cde-main.has-band>.nx-band{padding:10px 12px 12px}#cde.setup-mode .cde-main.has-band{padding-top:58px}}
/* ===== Hệ nhận diện P0 (đồng bộ app, duyệt 30/09 23:54): Be Vietnam Pro, nền #f2f5f9, thẻ bo 16 viền #edf1f6, nút chính xanh
   hành động #0665ed, «đang chọn» nền xanh nhạt; danh sách Vấn đề là thẻ trắng đè lên mép dưới dải đầu màn. ===== */
#cde,#workspace{font-family:var(--nx-font)}
#cde{background:var(--nx-bg)}#cde .cde-main{background:var(--nx-bg)}
#cde .cde-content{border-radius:16px;border-color:#edf1f6}
#cde .cde-page-heading.nx-band h1{font-size:27px;letter-spacing:-.3px}
#cde .nx-band .cde-button{height:40px;min-height:40px;border-radius:12px;padding:0 14px;font-size:13.5px}#cde .nx-band .iv-refresh{width:40px;padding:0}
#cde .cde-main.has-band>.nx-band.nx-band-joined{padding-bottom:16px;margin-bottom:16px}
#cde .cde-main.has-band>.cde-content.iv-content{position:relative;margin:0 24px;border:1px solid #edf1f6;border-radius:16px;box-shadow:0 2px 10px #0d25420f;overflow:hidden}
#cde .nx-band .iv-phases{border-left:0;padding:4px;gap:4px;border-radius:14px;background:#ffffff14;border:1px solid #ffffff1f}
#cde .nx-band .iv-phases button{height:34px;border:0;border-radius:10px;padding:0 14px}
#cde .nx-band .iv-phases button.on{background:#fff;color:var(--nx-navy)}
#cde .iv-tabs button.on{color:var(--nx-blue);border-bottom-color:var(--nx-blue)}#cde .iv-tabs button.on i{background:var(--nx-blue);color:#fff}
#cde .iv-f{border-radius:10px}#cde .iv-f.on{background:var(--nx-light);color:var(--nx-blue)}#cde .iv-f.on .iv-fn{color:var(--nx-blue)}
#cde .iv-tok{border-radius:10px;height:32px;background:var(--nx-light);border-color:#cfe0fb;color:var(--nx-blue)}#cde .iv-tok button:hover{background:#dbe7fb;color:var(--nx-blue)}
#cde .iv-add{height:32px;border-radius:10px}#cde .iv-add.on{border-color:var(--nx-blue);color:var(--nx-blue)}
#cde .iv-sidebtn,#cde .iv-icon{border-radius:10px;width:36px;height:36px}#cde .iv-sidebtn.on{background:var(--nx-light);border-color:#cfe0fb;color:var(--nx-blue)}
#cde .iv-bar .cde-search{height:38px;border-radius:12px}#cde .iv-group select{height:34px;border-radius:10px}
#cde .cde-fgroup td{background:#f6f8fb;border-left:0}#cde .cde-fg-code{color:var(--nx-ink)}
#cde .issue-table .cde-title-link{color:var(--nx-ink);font-weight:600;font-size:13.5px!important}
#cde .issue-row.overdue td:first-child{box-shadow:inset 4px 0 #b42318}
#cde .cde-button.primary{background:var(--nx-blue);border-color:var(--nx-blue);border-radius:10px}
#cde .cde-button{border-radius:10px}
/* ===== Vấn đề — Đề xuất B (duyệt 01/10): bỏ dải đầu trang; giai đoạn trên thanh trên; số liệu + nút thao tác cùng hàng tab ===== */
#cde .cde-page-heading[hidden]{display:none!important}
#cde .cde-main.has-band.iv-main-flat{padding-top:16px}
#cde .cde-main.has-band>.cde-content.iv-content{overflow:visible}
#cde .cde-topbar .iv-top-phases{display:flex;align-items:center;gap:3px;padding:3px;border-radius:12px;background:#ffffff14;border:1px solid #ffffff1f;min-width:0;overflow-x:auto;scrollbar-width:none;flex:0 1 auto}
#cde .cde-topbar .iv-top-phases::-webkit-scrollbar{display:none}
#cde .cde-topbar .iv-top-phases .iv-ph-l{display:none}
#cde .cde-topbar .iv-top-phases button{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 12px;border:0;border-radius:9px;background:transparent;color:#d4deea;font:inherit;font-size:13px;font-weight:600;white-space:nowrap;cursor:pointer}
#cde .cde-topbar .iv-top-phases button b{font-size:11px;font-weight:600;color:#8fa4bf}
#cde .cde-topbar .iv-top-phases button:hover{color:#fff;background:#ffffff12}
#cde .cde-topbar .iv-top-phases button.on{background:#fff;color:var(--nx-navy,#0d2542)}#cde .cde-topbar .iv-top-phases button.on b{color:#5b6b7f}
#cde .iv-tabs{align-items:stretch;flex-wrap:wrap;column-gap:22px;row-gap:0}
#cde .iv-tabs>button{align-self:flex-end}
#cde .iv-tabs .iv-stats{align-self:center;font-size:13px;color:#56687f;white-space:nowrap}#cde .iv-tabs .iv-stats b{color:var(--nx-ink,#0d2542)}
#cde .iv-tabs .iv-stats-late{color:#b42318;font-weight:600}
#cde .iv-tabs .iv-tab-actions{align-self:center;display:flex;align-items:center;gap:8px;padding:8px 0;margin-left:-8px}
#cde .iv-tabs .iv-tab-actions .cde-button{height:36px;border-radius:10px;font-size:13px;padding:0 13px}
#cde .iv-tabs .iv-tab-actions .iv-refresh{width:36px;padding:0}
#cde .iv-tabs .iv-tab-actions .cde-create-options{right:0;left:auto;z-index:30}
@media(max-width:1100px){#cde .iv-tabs .iv-stats{display:none}}
@media(max-width:760px){#cde .cde-topbar .iv-top-phases button{padding:0 8px;font-size:12px}#cde .cde-topbar .iv-top-phases button b{display:none}}
#cde .iv-tabs .cde-create-options button{display:grid;gap:2px;padding:9px 12px;margin:0;border:0;border-radius:5px;font-weight:400;color:inherit;align-self:auto}
#cde .iv-tabs .cde-create-options button:hover{background:#eaf2ff}
/* ===== Bảng Vấn đề: tiêu đề cột nổi bật + lọc theo cột + Xem nhanh + tuỳ chỉnh nhóm lọc (duyệt 01/10 06:26) ===== */
#cde .issue-table thead th{background:#e8eff9;color:var(--nx-navy,#0d2542);font-size:12px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;height:46px;padding:0 10px 0 16px;border-bottom:2px solid #c7d7ee;border-right:0;white-space:nowrap;position:sticky;top:0;z-index:2}
#cde .issue-table thead th .th-in{display:inline-flex;align-items:center;gap:6px}
#cde .issue-table thead .th-sort{border:0;background:none;padding:0;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:4px}
#cde .issue-table thead .th-sort:hover{color:var(--nx-blue,#0665ed)}
#cde .issue-table thead .th-arrow{font-style:normal;color:var(--nx-blue,#0665ed);font-size:12px}
#cde .issue-table thead .th-f{display:inline-grid;place-items:center;width:22px;height:22px;border:0;border-radius:6px;background:transparent;color:#6b7f98;font-size:11px;cursor:pointer;padding:0;opacity:.75}
#cde .issue-table thead th:hover .th-f{opacity:1;background:#d6e3f5;color:var(--nx-navy,#0d2542)}
#cde .issue-table thead .th-f.on,#cde .issue-table thead th:hover .th-f.on{opacity:1;background:var(--nx-blue,#0665ed);color:#fff}
#cde .issue-table thead .th-n{font-size:10px;background:var(--nx-blue,#0665ed);color:#fff;border-radius:8px;padding:0 5px;line-height:15px;letter-spacing:0}
#cde .iv-views{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 20px 0}
#cde .iv-views .iv-vl{font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:#7a8898;margin-right:2px}
#cde .iv-views .iv-v{height:30px;border:1px solid #d6dee8;border-radius:15px;padding:0 12px;background:#fff;display:inline-flex;align-items:center;gap:6px;color:#34465c;font:inherit;font-weight:600;font-size:12.5px;cursor:pointer;white-space:nowrap}
#cde .iv-views .iv-v i{font-style:normal;font-size:11px;opacity:.7}
#cde .iv-views .iv-v:hover{border-color:#b8c6d6}
#cde .iv-views .iv-v.on{background:var(--nx-navy,#0d2542);border-color:var(--nx-navy,#0d2542);color:#fff}
#cde .iv-views .iv-v.add{border-style:dashed;border-color:#9dbcf0;color:var(--nx-blue,#0665ed)}
#cde .iv-views .sp{flex:1}
#cde .iv-bar .iv-cfgbtn{border-style:solid;border-color:#cfe0fb;background:var(--nx-light,#edf4ff);color:var(--nx-blue,#0665ed);font-weight:600}
#cde .iv-side-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 0 10px;margin:0 0 6px;border-bottom:1px solid #eef2f6}
#cde .iv-side-head b{font-size:13px;color:var(--nx-ink,#0d2542)}
#cde .iv-side-cfg{height:30px;border:1px solid #cfe0fb;background:var(--nx-light,#edf4ff);color:var(--nx-blue,#0665ed);border-radius:9px;padding:0 10px;font:inherit;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}
#cde .iv-side-cfg:hover,#cde .iv-bar .iv-cfgbtn:hover{background:#dbe7fb}
.iv-pop{position:fixed;z-index:60;background:#fff;border:1px solid #d8e2ed;border-radius:12px;box-shadow:0 12px 32px #0d254233;padding:8px;font-family:var(--nx-font,inherit);font-size:13px;color:#0d2542;max-height:calc(100vh - 24px);display:flex;flex-direction:column}
.iv-pop h4{margin:4px 6px 4px;font-size:14px}
.iv-pop .iv-sp-h{margin:0 6px 8px;color:#56687f;font-size:12px;line-height:1.45}
.iv-pop .iv-cp-sort{display:flex;gap:6px;padding:2px 2px 8px;border-bottom:1px solid #eef2f6;margin-bottom:6px}
.iv-pop .iv-cp-sort button{flex:1;height:30px;border:1px solid #d6dee8;border-radius:8px;background:#fff;font:inherit;font-size:12px;color:#34465c;cursor:pointer}
.iv-pop .iv-cp-sort button.on{border-color:#0665ed;color:#0665ed;background:#edf4ff;font-weight:600}
.iv-pop .iv-cp-q{height:32px;border:1px solid #d6dee8;border-radius:8px;padding:0 10px;margin:0 2px 6px;font:inherit;font-size:12.5px}
.iv-pop .iv-cp-list{overflow:auto;max-height:300px}
.iv-pop .iv-cp-list label{display:flex;align-items:center;gap:9px;padding:6px 8px;border-radius:8px;cursor:pointer}
.iv-pop .iv-cp-list label[hidden]{display:none}
.iv-pop .iv-cp-list label:hover{background:#f2f6fb}
.iv-pop .iv-cp-list label span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.iv-pop .iv-cp-list em{font-style:normal;color:#8593a4;font-size:12px}
.iv-pop .iv-cp-list input{width:16px;height:16px;margin:0;accent-color:#0665ed}
.iv-pop .iv-cp-all{color:#56687f}
.iv-pop .iv-dot,.iv-pop .iv-ph-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}
.iv-pop .iv-cp-ft{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid #eef2f6;margin-top:6px;padding:8px 4px 2px}
.iv-pop .iv-cp-ft .cde-button{height:32px;border-radius:9px;padding:0 14px;font-size:12.5px}
.iv-pop .cde-button.primary{background:#0665ed;border:1px solid #0665ed;color:#fff;cursor:pointer;font:inherit;font-weight:600}
.iv-pop .cde-text-button{background:none;border:0;color:#56687f;font:inherit;font-size:12.5px;cursor:pointer;padding:0}.iv-pop .cde-text-button.danger{color:#b42318}
.iv-pop .iv-sp-e{color:#b42318;font-size:12px;flex:1;text-align:right}
.iv-pop .iv-sp-l{display:grid;gap:6px;margin:4px 6px 6px;font-size:12px;font-weight:600;color:#34465c}
.iv-pop .iv-sp-l input,.iv-pop .iv-mv input{height:34px;border:1px solid #cfd8e3;border-radius:9px;padding:0 10px;font:inherit;font-size:13px}
.iv-pop .iv-mv{display:flex;gap:8px;align-items:center;padding:4px 6px}.iv-pop .iv-mv input{flex:1}
.iv-pop .iv-sg-list{overflow:auto;max-height:360px}
.iv-pop .iv-sg{display:flex;align-items:center;gap:6px;padding:4px 6px;border-bottom:1px solid #f1f4f8;border-radius:6px;background:#fff}
.iv-pop .iv-sg.drag{opacity:.5}
.iv-pop .iv-sg label{flex:1;display:flex;align-items:center;gap:9px;padding:4px 0;cursor:pointer}
.iv-pop .iv-sg input{width:16px;height:16px;margin:0;accent-color:#0665ed}
.iv-pop .iv-sg-mv button{width:24px;height:24px;border:0;border-radius:6px;background:transparent;color:#6b7f98;cursor:pointer}.iv-pop .iv-sg-mv button:hover:not(:disabled){background:#eef2f6}.iv-pop .iv-sg-mv button:disabled{opacity:.3;cursor:default}
.iv-pop .iv-sg-h{color:#b0bccb;cursor:grab;letter-spacing:-2px;padding:0 4px}
.iv-pop .iv-empty{color:#8593a4;font-size:12px;margin:8px}
.iv-pop input[type=checkbox]{width:16px!important;height:16px!important;min-height:0!important;min-width:0!important;padding:0!important;margin:0!important;flex:none;box-shadow:none}
.iv-pop input:not([type=checkbox]){min-height:0}
.iv-pop button{min-height:0}.iv-pop .iv-cp-ft .cde-button{height:32px!important;min-height:0!important;line-height:1}

/* Nhãn «CĐT nêu» (docs/specs/OWNER-ISSUE.md) — vàng #b7791f / #fff4dc như app */
.owner-raised{display:inline-flex;align-items:center;padding:1px 8px;border-radius:999px;background:#fff4dc;color:#b7791f;font-size:11px;font-weight:700;line-height:1.6;white-space:nowrap;vertical-align:middle}
#cde .iv-tabs button.owner i{background:#fff4dc;color:#b7791f}#cde .iv-tabs button.owner.on i{background:#b7791f;color:#fff}
/* Điện thoại (≤650px) — góp ý 04/10 22:29 «giao diện người mới trên điện thoại xấu»:
   thanh bên đã thu gọn (.collapsed) có quy tắc không theo khổ màn hình, đè lên thanh dưới → cột trống 64px bên trái, nội dung bị đẩy hẹp. */
@media(max-width:650px){
  /* Thanh trên: logo + chọn modul + giai đoạn (cuộn ngang) + tài khoản — không đẩy nút tài khoản ra ngoài màn hình */
  #cde .cde-topbar{gap:6px;padding:0 8px}
  #cde .cde-topbar .cde-brand b,#cde .cde-topbar .cde-brand span{display:none}
  #cde .cde-topbar .iv-top-phases{flex:1 1 auto;min-width:0}
  #cde .cde-topbar .cde-top-right{flex:none;margin-left:auto;gap:8px}
  #cde .cde-topbar .wx-slot.iv-wx{margin:0;flex:none}
  /* nhãn thời tiết gọn «⛅ 25°» (ẩn « · UV n ▾» — chữ trần trong nút) */
  #cde .cde-topbar .wx-slot.iv-wx .wx-chip{font-size:0;gap:4px;padding:4px 9px}
  #cde .cde-topbar .wx-slot.iv-wx .wx-chip>span:first-child,#cde .cde-topbar .wx-slot.iv-wx .wx-chip>b{font-size:13px}
  #cde .cde-topbar .iv-top-phases{min-width:72px}
  #cde .cde-topbar .wx-slot.iv-wx+.cde-top-right{margin-left:0}
  #cde .cde-topbar .cde-top-right .nxab{gap:0}
  #cde .cde-topbar .cde-top-right .nxab-btn{width:34px;min-width:34px}}
/* Trang Vấn đề trên điện thoại: thẻ / xem nhanh cuộn ngang một dòng, ô tìm rộng, nhóm & đếm xuống dòng riêng. */
@media(max-width:650px){
  #cde .cde-main.has-band>.cde-content.iv-content{margin-left:8px;margin-right:8px}
  #cde .iv-tabs{flex-wrap:wrap;row-gap:0;padding-left:8px;padding-right:8px}
  #cde .iv-tabs>button{flex:none;padding-left:8px;padding-right:8px;font-size:13.5px}
  #cde .iv-tabs>.sp{display:none}
  #cde .iv-tabs>.iv-tab-actions{flex:1 1 100%;justify-content:flex-start;padding-left:4px}
  #cde .iv-views{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-left:12px;padding-right:12px}
  #cde .iv-views::-webkit-scrollbar{display:none}
  #cde .iv-views>*{flex:none}
  #cde .iv-bar{flex-wrap:wrap;gap:8px;padding-left:12px;padding-right:12px}
  #cde .iv-bar>.cde-search{flex:1 1 150px;min-width:0;max-width:none}
  #cde .iv-bar>.cde-search input{width:100%;min-width:0}
  #cde .iv-bar>.iv-right{flex:1 1 100%;margin-left:0;display:flex;align-items:center;gap:8px}
  #cde .iv-bar>.iv-right .iv-group{flex:1 1 auto;min-width:0}
  #cde .iv-bar>.iv-right .iv-group select{min-width:0;width:100%}
  #cde .iv-bar>.iv-right>span{margin-left:auto;white-space:nowrap}}
/* Trang Dự án trên điện thoại: thẻ dự án — tên dự án đủ rộng, nhãn trạng thái xuống dòng dưới tên. */
@media(max-width:650px){
  #cde .project-card-head{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:12px;row-gap:6px;align-items:start;padding:14px 14px 12px}
  #cde .project-card-head>.project-state{grid-column:2;justify-self:start}}
/* Báo cáo định kỳ — lời nhắc nghiệp vụ (quyền Chỉ đọc không tạo / sửa lịch): nền vàng */
#cde .irp-note.warn{background:#fffbeb;border-color:#f3d48a;color:#92400e;margin-bottom:10px}
/* Điện thoại: menu là cột hẹp bên trái (anh Tâm chốt 12/10/2026) — nội dung không tràn mép phải. */
@media(max-width:650px){#cde .cde-search{box-sizing:border-box;min-width:0;max-width:100%}#cde .cde-main{overflow-x:hidden}}
@media(max-width:650px){#cde .cde-topbar .cde-top-right{margin-left:auto!important}}

/* Quản trị dự án › Đơn vị — «Phạm vi xem» (ảnh mẫu RG-1, anh Tâm duyệt 13/10/2026; public/cde.js renderOrganizations / orgEditor). */
.org-table td{vertical-align:middle;font-size:14px;color:#18222f}.org-table tbody tr{cursor:pointer}.org-table tbody tr.selected{background:#eaf2fe}.org-table tbody tr.org-off{opacity:.62}
.org-table .org-monogram{width:64px;height:38px;border-radius:8px;background:#eef1f5;border:0;color:#344054;font-size:12.5px;font-weight:700;line-height:1.1}
.org-table .org-name-cell small{margin-top:3px;font-size:13px}.org-table th button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
.org-open{display:block;border:0;background:none;padding:0;font:inherit;text-align:left;cursor:pointer;color:inherit}.org-open:focus-visible{outline:2px solid var(--nx-focus,#0665ed);outline-offset:2px;border-radius:4px}
.org-scope{display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 9px;border-radius:999px;background:#f0f2f5;color:#344054;font-size:12.5px;font-weight:600;white-space:nowrap}.org-scope i{width:7px;height:7px;border-radius:50%;background:currentColor}
.org-scope.own{background:#e6effe;color:#0b5bd3}.org-scope-note{display:block;margin:5px 0 0 3px;color:#667085;font-size:12.5px}
.org-form-row{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:12px}.org-form-row label{min-width:0}
.org-scope-set{border:0;margin:6px 0 0;padding:0;min-width:0}.org-scope-set legend{display:flex;align-items:baseline;gap:10px;width:100%;padding:0;margin-bottom:8px}.org-scope-set legend span{white-space:nowrap;font-size:12px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:#475467}.org-scope-set legend small{margin-left:auto;color:#667085;font-size:12.5px;text-align:right}
#cde .org-scope-opt{display:flex;flex-direction:row;gap:12px;align-items:flex-start;padding:13px 14px;margin:0 0 10px;border:1px solid #e4e7ec;border-radius:10px;cursor:pointer;background:#fff}
#cde .org-scope-opt:has(input:checked){border-color:#0665ed;box-shadow:0 0 0 1px #0665ed;background:#fbfdff}
#cde .org-scope-opt input{flex:none;width:18px;height:18px;margin:2px 0 0;accent-color:#0665ed}.org-scope-opt>span{min-width:0}.org-scope-opt b{display:block;font-size:14.5px;font-weight:650;color:#18222f}
.org-scope-opt small{display:block;margin-top:4px;color:#475467;font-size:13px;line-height:1.5;font-weight:400}.org-scope-opt em{font-style:normal;font-weight:700}.org-scope-opt em.ok{color:#12805c}.org-scope-opt em.no{color:#c8322b}
.org-scope-fixed{display:flex;gap:10px;align-items:flex-start;margin:2px 0 14px;padding:11px 13px;border-radius:10px;background:#eaf2fe;color:#344054;font-size:13px;line-height:1.5}.org-scope-fixed b{color:#0b5bd3}
.org-scope-fixed svg{flex:none;width:17px;height:17px;margin-top:2px;fill:none;stroke:#0b5bd3;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.org-scope-effect{margin-top:10px}
#cde.setup-mode .cde-drawer:has(.org-scope-set){width:min(440px,100vw)}#cde.setup-mode .cde-drawer:has(.org-scope-set) .cde-drawer-body{overflow:auto}
@media(min-width:1301px){#cde.setup-mode.drawer-open:has(.org-scope-set) .cde-main{right:440px}}
.setup-org-table .org-table{min-width:0;table-layout:fixed}#cde .org-table th,#cde .org-table td{padding-left:14px;padding-right:8px}#cde .setup-org-table .org-table th:nth-child(1){width:40%}#cde .setup-org-table .org-table th:nth-child(2){width:23%}#cde .setup-org-table .org-table th:nth-child(3){width:37%}.org-table .org-monogram{width:62px;font-size:11.5px;white-space:nowrap;overflow:hidden;overflow-wrap:normal}.org-table .org-name-cell{gap:10px}.org-table .org-name-cell{min-width:0}
@media(max-width:700px){.setup-org-table .org-table{table-layout:auto}.org-scope{white-space:normal}}
/* Cài đặt dự án › «Trang quét mã QR trên bản in» (public/cde.js qrPublicCard; ảnh duyệt QR-1, 13/10/2026) — dùng lại khung pset-card / pset-opt. */
#cde #qrm-card{grid-column:1/-1}
#cde #qrm-card .pset-opt{align-items:flex-start}
#cde #qrm-card .pset-opt-txt{flex:1;min-width:0}
#cde #qrm-card .pset-opt-txt small{display:block;margin-top:4px}
.qrm-points{margin:8px 0 0;padding:0;list-style:none;display:grid;gap:4px;font-size:13px;color:#475569;font-weight:500}
.qrm-points li{display:flex;gap:7px;align-items:flex-start;line-height:1.4}
.qrm-points svg{flex:none;width:15px;height:15px;margin-top:2px}
.qrm-points .yes svg{color:#15803d}.qrm-points .no svg{color:#b42318}
.qrm-thumb{flex:none;width:150px;margin:26px 0 0 14px;text-align:center}
.qrm-thumb span{display:block;height:214px;border:1px solid #cbd5e1;border-radius:12px;overflow:hidden;background:#f1f5f9;box-shadow:0 1px 3px rgba(15,23,42,.08)}
.qrm-thumb img{display:block;width:100%}
.qrm-thumb i{display:block;margin-top:5px;font-style:normal;font-size:11.5px;color:#64748b;line-height:1.3}
.qrm-foot{display:flex;gap:8px;align-items:flex-start;margin:14px 0 0;font-size:13px;color:#475569}
.qrm-foot svg{flex:none;width:16px;height:16px;margin-top:2px;color:#64748b}
#cde #qrm-card .pset-opt-txt b{padding-right:74px}
@media(max-width:700px){.qrm-thumb{display:none}}
/* 14/10/2026 (H2-23): gỡ thành viên — mỗi vấn đề đang xử lý có ô chọn người nhận riêng */
.handover-items:has(.handover-each){list-style:none;padding-left:0;min-width:0}.handover-each{display:grid;grid-template-columns:minmax(0,1fr);gap:4px;margin:8px 0;min-width:0}.handover-each>span{min-width:0;overflow-wrap:anywhere}.handover-each>select{width:100%;min-width:0;height:34px;border:1px solid #d5dbe5;border-radius:7px;background:#fff;color:#18222f;font:inherit;font-size:12.5px;padding:0 6px}
/* H0-02 (14/10/2026): dải «việc cần dựng» ngay sau khi tạo dự án — năm bước, bước đang đứng tô đậm; điện thoại cho cuộn ngang trong dải. */
.cde-setup-steps{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 14px;margin-bottom:12px;border:1px solid #cee0ed;border-radius:8px;background:#f3f9fd;font-size:13px;color:#2c4a5e}
.cde-setup-steps ol{display:flex;gap:6px;list-style:none;margin:0;padding:0;flex:1 1 auto;min-width:0;overflow-x:auto}
.cde-setup-steps li{flex:none}.cde-setup-steps li+li::before{content:"→";color:#8aa4b5;margin-right:6px}
.cde-setup-steps a{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid #cfdfe9;border-radius:16px;background:#fff;color:#0f5f93;text-decoration:none;white-space:nowrap}
.cde-setup-steps a i{font-style:normal;font-weight:700;font-size:11px;width:18px;height:18px;border-radius:50%;background:#e2eef6;display:inline-grid;place-items:center}
.cde-setup-steps li.on a{background:#0878b9;border-color:#0878b9;color:#fff}.cde-setup-steps li.on a i{background:rgba(255,255,255,.25)}
@media(max-width:700px){.cde-setup-steps{gap:8px}.cde-setup-steps b{flex:1 1 100%}}
