.metric-action{width:100%;text-align:left;border:1px solid var(--line);cursor:pointer;transition:transform .15s,box-shadow .15s}.metric-action:hover{transform:translateY(-2px);box-shadow:0 10px 22px #18365c14}.metric-action .mlabel{display:flex;justify-content:space-between}.metric-action .mlabel span{color:var(--blue);font-size:18px}.global-search{border:1px solid #dce5ef;background:#f7f9fc;color:#66809f;border-radius:8px;padding:10px 14px;min-width:230px;text-align:left;font-size:13px}.global-search kbd{float:right;margin-left:20px;color:#8093ac;font-size:11px;background:white;border:1px solid #dbe4ef;border-radius:4px;padding:2px 5px}.mobile-dock{display:none}.detail-sheet{position:fixed;margin:0 0 0 auto;right:0;top:0;bottom:0;width:min(740px,100%);height:100%;max-height:none;border-radius:18px 0 0 18px;border-right:0;overflow:auto;padding:32px}.detail-sheet::backdrop{background:#0c1e3666}.search-result{width:100%;display:flex;align-items:center;gap:12px;text-align:left;border:1px solid var(--line);background:white;padding:13px;border-radius:8px;margin-top:8px;color:var(--ink)}.search-result:hover{background:#f5f8fd}.search-result span{flex:1}.search-result small{display:block;color:var(--muted);font-size:12px;margin-top:2px}.focus-banner{display:flex;justify-content:space-between;align-items:center;background:#e9f0ff;border:1px solid #cadafb;color:#345fac;border-radius:8px;padding:10px 14px;margin-bottom:14px;font-size:14px}.focus-banner .btn{min-height:30px;padding:4px 8px;font-size:12px}.brandmark span{font-size:11px;vertical-align:top;color:#aef0dc}.activity .rowbutton{font-size:14px}.detail-grid strong{line-height:1.5}
@media(max-width:700px){.global-search{min-width:0;width:42px;height:42px;padding:0;font-size:0;text-align:center}.global-search:before{content:'⌕';font-size:23px}.global-search kbd{display:none}.mobile-dock{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;z-index:15;bottom:0;left:0;right:0;background:white;border-top:1px solid var(--line);box-shadow:0 -8px 20px #152f4a12}.mobile-dock a{padding:12px 4px;text-align:center;text-decoration:none;font-size:12px;color:#536b88}.mobile-dock a:active,.mobile-dock a:focus{color:var(--blue)}footer{padding-bottom:80px}.detail-sheet{width:100%;border-radius:18px 18px 0 0;top:7vh;height:93vh;padding:22px}.pmo-float{bottom:70px}}

/* AI-MARK[PMO-UI:responsive-controls] 2026-09-15 - Production touch targets, focus states and domain views. */
:focus-visible{outline:3px solid #4a80ff;outline-offset:3px}
button,.btn,a,select,input,textarea{font:inherit}
button{cursor:pointer}
.project-card.large{display:flex;align-items:center;gap:18px;padding:24px;margin:0;background:#fff;border:1px solid var(--line);border-radius:10px}
.project-card.large>div{flex:1}
.project-card.large h2{margin:0 0 7px}
.project-card.large p{margin:0 0 8px}
.project-card.large small{color:var(--muted)}
.unread{background:#f3f7ff}
.unread strong{color:#173e8e}
.activity p{margin:5px 0;color:#526d90;font-size:14px}
.metric-action{appearance:none;color:inherit}
.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.detail-grid>span{display:inline-flex}
@media(max-width:700px){.project-card.large{align-items:flex-start;flex-wrap:wrap}.project-card.large .btn{width:100%}.detail-grid{grid-template-columns:1fr}}

/* AI-MARK[PMO-UI:production-icon-layout] 2026-09-15 - Consistent SVG affordances, control rhythm and responsive action alignment. */
.icon-svg{display:inline-block;width:1em;height:1em;flex:0 0 auto;vertical-align:-.16em;stroke:currentColor}
.icon .icon-svg{width:18px;height:18px;vertical-align:middle}
nav a i{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;color:currentColor}
nav a i .icon-svg{width:18px;height:18px}
.btn{gap:8px;min-height:42px;white-space:nowrap}
.btn .icon-svg{width:16px;height:16px}
.btn-label{line-height:1.25}
.global-search{display:inline-flex;align-items:center;gap:9px;min-height:40px;white-space:nowrap}
.global-search .icon-svg{width:17px;height:17px;color:#54739b}
.global-search .search-label{flex:1}
.global-search kbd{float:none;margin-left:auto}
.header-right{gap:12px;margin-left:auto}
.profile{flex:0 0 auto}
.metric-action{padding:19px 21px;font:inherit}
.metric-action .mlabel{align-items:center}
.metric-action .mlabel .icon-svg{width:16px;height:16px;color:var(--blue)}
.pagehead{align-items:flex-end}
.pagehead .actions{justify-content:flex-end;align-items:center;max-width:60%;row-gap:9px}
.pmo-float{display:inline-flex;align-items:center;gap:8px}
.pmo-float .icon-svg{width:17px;height:17px}
.agent-symbol .icon-svg{width:20px;height:20px}
.agent-intro .agent-symbol .icon-svg{width:25px;height:25px}
.checks .icon-svg{width:14px;height:14px;vertical-align:-.18em}
.mobile-dock a{display:flex;align-items:center;justify-content:center;gap:5px}
.mobile-dock .icon-svg{width:15px;height:15px}
@media(max-width:980px){.pagehead .actions{max-width:100%}}
@media(max-width:700px){
  .global-search{width:42px;min-width:42px;justify-content:center;padding:0;font-size:0}
  .global-search:before{content:none}
  .global-search .icon-svg{width:19px;height:19px}
  .global-search .search-label{display:none}
  .global-search kbd{display:none}
  .pagehead .actions{justify-content:flex-start;margin-top:16px;gap:8px}
  .pagehead .actions .btn{flex:0 0 auto}
  .pmo-float{right:15px;bottom:70px}
}
/* AI-MARK[PMO-UI:record-form-shell] 2026-09-15 - Keep long tab-specific forms usable while preserving the shared modal frame and hidden scrollbar treatment. */
dialog.dialog-standard:has(.record-form-shell) #dialogBody{padding:0;overflow:hidden}
dialog.dialog-standard:has(.record-form-shell) .dialog-content{padding:0;overflow:hidden}
.record-form-shell{max-height:90vh;overflow:auto;padding:34px 38px 32px;scrollbar-width:none;-ms-overflow-style:none}
.record-form-shell::-webkit-scrollbar{display:none;width:0;height:0}
.record-form-intro{display:flex;align-items:flex-start;gap:15px;padding:2px 48px 25px 0;border-bottom:1px solid #edf1f6}
.record-form-intro h2{margin:2px 0 6px}
.record-form .field-help{margin:-7px 0 2px;color:#8b9bae;font-size:11px;line-height:1.5}
.record-form .actions{margin:24px -38px -32px;padding:17px 38px 32px}
/* AI-MARK[PMO-UI:controlled-status-field] 2026-09-25 — Status is changed
   through the audited transition dialog, while the editor keeps the current
   value visible and explains the workflow to the user. */
.controlled-status-field{display:flex;flex-direction:column;gap:5px;min-height:74px;padding:13px 14px;border:1px solid #dce7f4;border-radius:10px;background:#f8fbff;color:#264361}
.controlled-status-field .field-label{font-size:12px;font-weight:700;color:#7890aa}
.controlled-status-field strong{font-size:15px}
.controlled-status-field small{color:#7c90a8;font-size:11px;line-height:1.45}
.controlled-status-field .status-inline-trigger{align-self:flex-start;margin-top:2px}
@media(max-width:700px){
  .record-form-shell{max-height:94vh;padding:25px 20px 22px}
  .record-form-intro{padding-right:42px}
  .record-form .actions{margin:20px -20px -22px;padding:14px 20px 22px}
}

/* AI-MARK[PMO-UI:local-email-auth] 2026-09-15 - Accessible local email OTP and pending-membership screens. */
.auth-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(420px,.9fr);gap:42px;align-items:start;max-width:1060px;margin:30px auto 60px}
.auth-intro{padding:35px 8px 0 0}
.auth-kicker{font-size:11px;font-weight:800;letter-spacing:.18em;color:#5e79a0}
.auth-intro h1{font-size:42px;margin:18px 0 12px;letter-spacing:-.045em}
.auth-intro>p{max-width:470px;color:#667a93;line-height:1.8;margin:0;font-size:16px}
.auth-principles{display:grid;gap:13px;margin-top:32px;color:#435a77;font-size:14px}
.auth-principles span{display:flex;align-items:center;gap:12px}
.auth-principles b{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:#e9f0ff;color:#356cef;font:700 11px ui-monospace,monospace}
.auth-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:28px;box-shadow:0 18px 50px #16365c0d}
.auth-switcher{display:grid;grid-template-columns:1fr 1fr;padding:4px;background:#f2f5f9;border-radius:9px;gap:4px;margin-bottom:28px}
.auth-tab{border:0;background:transparent;border-radius:7px;color:#70839b;padding:10px 12px;font-weight:700;font-size:14px}
.auth-tab.active{background:#fff;color:#244a89;box-shadow:0 2px 8px #19396312}
.auth-heading{display:flex;align-items:flex-start;gap:14px;margin-bottom:24px}
.auth-heading h2{font-size:22px;line-height:1.25;margin:0 0 6px}
.auth-heading p{margin:0;color:#7588a0;font-size:14px;line-height:1.65}
.auth-heading p strong{color:#304d73;overflow-wrap:anywhere}
.auth-icon{display:grid;place-items:center;flex:0 0 auto;width:42px;height:42px;border-radius:11px;background:#eaf1ff;color:#356cef}
.auth-icon .icon-svg{width:21px;height:21px}
.auth-card label{margin-top:18px}
.auth-card label:first-of-type{margin-top:0}
.auth-card input{width:100%;margin-top:7px}
.auth-optional{font-size:12px;color:#8b9aae;margin-left:5px}
.auth-note,.auth-footnote{font-size:12px;line-height:1.7;color:#7a8ca1}
.auth-note{padding:11px 13px;border-left:3px solid #8fb0f4;background:#f5f8ff;color:#587092}
.auth-footnote{margin:20px 0 0}
.auth-demo{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px;padding:14px 15px;border:1px solid #d8e4f5;border-radius:10px;background:#f7faff}
.auth-demo strong{display:block;color:#2c4f84;font-size:13px}
.auth-demo span{display:block;margin-top:4px;color:#7b8da4;font-size:12px;line-height:1.5}
.auth-demo-copy{flex:1;min-width:190px}
.auth-demo-select{display:block!important;flex:0 0 175px;margin:0!important;color:#607795!important;font-size:12px!important}
.auth-demo-select select{width:100%;margin-top:5px;padding:8px 10px;font-size:12px}
.auth-demo .btn{flex:0 0 auto;min-height:38px}
.auth-submit{width:100%;margin-top:20px}
.auth-error{padding:11px 13px;border-radius:8px;background:#fff0f0;color:#a12f38;font-size:13px;margin:0 0 15px}
.auth-back{margin:-6px 0 20px}
.auth-back .textlink{display:inline-flex;align-items:center;gap:6px}
.auth-back .icon-svg{width:15px;height:15px}
.auth-otp-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:13px}
.auth-otp-actions .btn{min-height:38px;font-size:13px}
.auth-mail-preview{margin-top:17px;padding:14px;border:1px solid #b9d8ca;border-radius:9px;background:#f2fbf6;color:#22634d}
.auth-mail-preview p{margin:6px 0 0;font:13px/1.6 ui-monospace,monospace;overflow-wrap:anywhere}
.auth-pending{padding:18px;border:1px solid #d7e2f6;border-radius:10px;background:#f5f8ff;color:#4d6586;font-size:14px;line-height:1.7}
.auth-pending strong{color:#274f93}
.auth-pending p{margin:7px 0 0}
.auth-pending dl{display:grid;grid-template-columns:100px 1fr;gap:5px 12px;margin:17px 0 0;font-size:13px}
.auth-pending dt{color:#8494a8}.auth-pending dd{margin:0;color:#3e587a;font-weight:600}
#profile.profile{border:0;cursor:pointer}
@media(max-width:900px){.auth-layout{grid-template-columns:1fr;gap:22px;margin-top:12px}.auth-intro{padding:0}.auth-intro h1{font-size:34px}.auth-principles{margin-top:20px;grid-template-columns:repeat(3,1fr);gap:8px}.auth-principles span{display:block;font-size:12px}.auth-principles b{margin-bottom:7px}}
@media(max-width:520px){.auth-card{padding:20px}.auth-principles{grid-template-columns:1fr}.auth-principles span{display:flex;align-items:center}.auth-principles b{margin:0}.auth-heading h2{font-size:19px}}
@media(max-width:520px){.auth-demo{align-items:stretch;flex-direction:column}.auth-demo .btn,.auth-demo-select{width:100%}.auth-demo-select{flex-basis:auto}}

/* AI-MARK[PMO-UI:detail-action-hierarchy] 2026-09-25 09:48 (GMT+7) — Give
   detail-sheet actions a deliberate hierarchy: the next workflow step gets
   the strongest visual weight, status/edit controls stay together, and export
   and history remain compact utility actions. Keep the behavior and backend
   transition routes unchanged. | rel: PMO-UI:status-controls-all-surfaces,
   PMO-UI:task-assignment-drilldown */
dialog.detail-sheet .detail-actions{display:flex;flex-direction:column;align-items:stretch;gap:12px;margin:26px -32px -32px;padding:16px 32px 32px;border-top:1px solid #e9eef5;background:linear-gradient(180deg,#fffffff2 0%,#fff 42%);position:sticky;bottom:-32px;z-index:3}
dialog.detail-sheet .detail-actions-main{display:flex;align-items:center;gap:9px;flex-wrap:nowrap;min-width:0}
dialog.detail-sheet .detail-actions-tools{display:flex;align-items:center;justify-content:flex-end;gap:9px;min-width:0;padding-top:12px;border-top:1px solid #eef2f6}
dialog.detail-sheet .detail-actions-main .status-inline-action{min-height:42px;padding:10px 13px;border-color:#b8cbea;border-radius:9px;background:#f5f8ff;color:#2f61bf;font-size:12px;box-shadow:0 2px 5px #315fae0d}
dialog.detail-sheet .detail-actions-main .status-inline-action:hover{background:#eaf1ff;border-color:#8eade4}
dialog.detail-sheet .detail-actions-main .btn.primary{min-width:0;min-height:46px;border-radius:10px;font-size:15px;box-shadow:0 8px 18px #356cef2b;white-space:nowrap}
dialog.detail-sheet .detail-actions-main .btn:not(.primary){background:#f7f9fc;border-color:#d7e2ef;color:#49627f}
dialog.detail-sheet .detail-actions-tools .btn{min-height:40px;padding:8px 11px;border-radius:9px;background:#fbfcfe;color:#536b88;font-size:12px}
dialog.detail-sheet .detail-actions-tools .btn:hover{border-color:#b8cbea;background:#f3f7ff;color:#2f61bf}
dialog.detail-sheet .detail-actions-tools .icon-svg{width:15px;height:15px}
dialog.detail-sheet .detail-assignment-panel{margin-top:22px;padding:21px;border-radius:14px;background:linear-gradient(135deg,#f7faff 0%,#f2f7fd 100%);border-color:#d6e3f2;box-shadow:0 8px 24px #2448730a}
dialog.detail-sheet .detail-assignment-panel .panelhead{margin-bottom:16px}
dialog.detail-sheet .detail-assignment-panel .panelhead h3{color:#1f4165;font-size:16px}
dialog.detail-sheet .assignment-grid{gap:10px}
dialog.detail-sheet .assignment-grid>div{padding:14px;border-radius:10px;border-color:#dfe9f4;box-shadow:0 2px 8px #22497008}
dialog.detail-sheet .assignment-grid small{font-size:10px;font-weight:800;letter-spacing:.055em;text-transform:uppercase;color:#7890aa}
dialog.detail-sheet .assignment-grid strong{margin-top:6px;color:#203f62;font-size:14px}
dialog.detail-sheet .detail-child-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,auto);align-items:center;gap:16px;padding:14px 0}
dialog.detail-sheet .detail-child-row .status-cell{justify-content:flex-end;min-width:150px}
dialog.detail-sheet .detail-child-row .status-inline-action{padding:5px 9px;border-radius:7px;font-size:10px}
dialog.detail-sheet .detail-related-link{margin:20px 0 0;padding:14px 16px;border-radius:10px;background:#f7faff;border-color:#dbe7f4;line-height:1.6}
dialog.detail-sheet .detail-related-link .rowbutton{color:#2d5fb8;font-weight:700}
dialog.detail-sheet .detail-children{margin-top:22px;padding-top:19px}
dialog.detail-sheet .detail-children .panelhead{margin-bottom:5px}
dialog.detail-sheet .detail-children .reference-count{background:#f5f8fd}
@media(max-width:760px){
  dialog.detail-sheet .detail-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:9px;margin:22px -22px -22px;padding:14px 22px 22px}
  dialog.detail-sheet .detail-actions-main,dialog.detail-sheet .detail-actions-tools{display:contents}
  dialog.detail-sheet .detail-actions-main .status-inline-action,dialog.detail-sheet .detail-actions-main .btn.primary{grid-column:1/-1;width:100%}
  dialog.detail-sheet .detail-actions-main .btn:not(.primary),dialog.detail-sheet .detail-actions-tools .btn{width:100%;min-width:0}
  dialog.detail-sheet .detail-actions-tools .btn:last-child{grid-column:1/-1}
  dialog.detail-sheet .detail-child-row{grid-template-columns:1fr;gap:9px;align-items:start}
  dialog.detail-sheet .detail-child-row .status-cell{justify-content:flex-start;min-width:0}
}

/* AI-MARK[PMO-UI:auth-gate] 2026-09-15 - Keep the main workspace inaccessible until an authenticated, scoped session is ready. */
body.auth-boot,
body.auth-locked{background:#eef3f8}
body.auth-boot #sidebar,
body.auth-locked #sidebar,
body.auth-boot .main>header,
body.auth-locked .main>header,
body.auth-boot .main>.mobile-dock,
body.auth-locked .main>.mobile-dock,
body.auth-boot .main>footer,
body.auth-locked .main>footer,
body.auth-boot #pmoFloating,
body.auth-locked #pmoFloating{display:none!important}
body.auth-boot .main,
body.auth-locked .main{margin-left:0}
body.auth-boot .main>main,
body.auth-locked .main>main{min-height:100vh;max-width:none;padding:clamp(24px,5vw,72px);display:grid;align-items:center}
body.auth-boot .main>main>#content,
body.auth-locked .main>main>#content{width:100%}
body.auth-boot .auth-layout,
body.auth-locked .auth-layout{margin:0 auto}

/* AI-MARK[PMO-UI:auth-refresh] 2026-09-15 - Calm product-facing sign-in surface with non-technical copy and balanced responsive layout. */
body.auth-boot,
body.auth-locked{background:radial-gradient(circle at 8% 16%,#bcd4f266 0 12%,transparent 34%),radial-gradient(circle at 91% 87%,#bfeee033 0 11%,transparent 28%),linear-gradient(135deg,#f8fbff 0%,#eef4fb 56%,#fbfdff 100%)}
body.auth-boot .main>main,
body.auth-locked .main>main{position:relative;overflow:hidden;padding:clamp(28px,6vh,72px) clamp(20px,5vw,82px)}
body.auth-boot .main>main::before,
body.auth-locked .main>main::before{content:'';position:absolute;width:420px;height:420px;right:-180px;top:-190px;border:1px solid #fff9;border-radius:50%;box-shadow:0 0 0 34px #ffffff26,0 0 0 68px #ffffff1c;pointer-events:none}
body.auth-boot .main>main::after,
body.auth-locked .main>main::after{content:'';position:absolute;width:190px;height:190px;left:-90px;bottom:-80px;background:#d8e8ff99;border-radius:50%;filter:blur(2px);pointer-events:none}
.auth-layout{position:relative;z-index:1;width:min(1120px,100%);grid-template-columns:minmax(0,1fr) minmax(420px,500px);gap:clamp(40px,7vw,100px);align-items:center;margin:0 auto}
.auth-intro{max-width:550px;padding:0 0 10px}
.auth-brand{display:flex;align-items:center;gap:12px;color:#1c3553;margin-bottom:clamp(38px,8vh,82px)}
.auth-brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:linear-gradient(145deg,#477cf2,#3158bd);box-shadow:0 9px 20px #3767d533;color:#c5ffe9;font-size:13px;font-weight:800;letter-spacing:.03em}
.auth-brand strong{display:block;font-size:15px;letter-spacing:.01em}
.auth-brand small{display:block;margin-top:2px;color:#8092aa;font-size:10px;font-weight:800;letter-spacing:.18em}
.auth-kicker{display:inline-flex;align-items:center;gap:8px;padding:7px 11px;border:1px solid #d5e2f4;border-radius:999px;background:#ffffffb8;color:#5e79a0;font-size:10px;font-weight:800;letter-spacing:.15em}
.auth-intro h1{max-width:540px;margin:20px 0 17px;color:#172e4a;font-size:clamp(44px,5.4vw,70px);line-height:1.04;letter-spacing:-.065em}
.auth-intro>p{max-width:500px;margin:0;color:#647991;font-size:16px;line-height:1.8}
.auth-principles{gap:12px;margin-top:36px;color:#435a77;font-size:14px}
.auth-principles>span{display:flex;align-items:center;gap:12px}
.auth-principles>span>span{display:block;margin:0;color:#435a77;font-size:14px}
.auth-principles b{width:31px;height:31px;border:1px solid #d6e4fb;background:#eef4ff;color:#356cef}
.auth-card{padding:32px;border:1px solid #fff;border-radius:22px;background:#fffffff2;box-shadow:0 24px 70px #18365c14,0 2px 8px #18365c08}
.auth-switcher{height:50px;align-items:center;margin-bottom:32px;padding:4px;border:1px solid #e9eef5;background:#f3f6fa;border-radius:11px}
.auth-tab{height:40px;border-radius:8px;color:#7b8da3;font-size:14px;transition:color .15s,box-shadow .15s,background .15s}
.auth-tab.active{color:#25518e;box-shadow:0 3px 12px #244a8912}
.auth-heading{gap:13px;margin-bottom:24px}
.auth-heading h2{color:#172e4a;font-size:24px;letter-spacing:-.03em}
.auth-heading p{color:#71859e;font-size:14px}
.auth-icon{width:44px;height:44px;border:1px solid #dfeaff;background:#edf3ff;color:#3d75e7}
.auth-card label{margin-top:19px;color:#526b87;font-size:13px;font-weight:700}
.auth-card input{height:50px;margin-top:8px;border-color:#dce6f1;border-radius:10px;color:#213c5d;background:#fff;transition:border-color .15s,box-shadow .15s}
.auth-card input::placeholder{color:#9aa9ba}
.auth-card input:focus{border-color:#5f8cf1;box-shadow:0 0 0 4px #5f8cf11c;outline:0}
.auth-submit{min-height:50px;margin-top:22px;border-radius:10px;font-size:15px;letter-spacing:.005em}
.auth-demo{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:13px;margin-top:20px;padding:17px;border:1px solid #d9e5f6;border-radius:14px;background:linear-gradient(135deg,#f7faff,#f3f8ff)}
.auth-demo-copy{grid-column:1/-1;min-width:0}
.auth-demo-title{display:flex;align-items:center;gap:7px;color:#2c528b}
.auth-demo-title .icon-svg{width:16px;height:16px;color:#4c7ff0}
.auth-demo-title strong{display:block;color:#2c528b;font-size:14px}
.auth-demo-title .auth-demo-badge{display:inline-flex;margin:0 0 0 3px;padding:3px 7px;border:1px solid #d8e6fc;border-radius:999px;background:#fff;color:#7690b0;font-size:10px;line-height:1;font-weight:700}
.auth-demo-copy>span:last-child{display:block;margin-top:5px;color:#8295ad;font-size:12px;line-height:1.5}
.auth-demo-select{grid-column:1;min-width:0!important;margin:0!important;color:#637b99!important;font-size:12px!important}
.auth-demo-select select{height:44px;margin-top:6px;padding:8px 10px;border-color:#d4e1f2;border-radius:9px;background:#fff;color:#3c5879;font-size:13px}
.auth-demo .btn{grid-column:2;align-self:end;width:100%;min-height:44px;border-color:#d3e0f1;border-radius:9px;color:#335987;background:#fff;font-size:13px}
.auth-demo .btn:hover{border-color:#9bbaf0;background:#fafdff;color:#245ab0}
.auth-footnote{margin:18px 0 0;color:#8a9aac;font-size:12px}
.auth-error{margin:0 0 15px;border:1px solid #ffd7d7;border-radius:10px;background:#fff4f4;color:#a8424b;font-size:13px}
.auth-back{margin:-7px 0 22px}
.auth-otp-actions{gap:10px;margin-top:14px}
.auth-otp-actions .btn{min-height:42px;border-radius:9px}
.auth-otp-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;margin-top:8px}
.auth-otp-input-row input{margin-top:0!important;text-align:center;font:800 23px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.24em;padding-left:.24em}
.auth-otp-copy{min-height:50px;padding:0 15px;border:1px solid #cbdcf5;border-radius:10px;background:#f5f8ff;color:#315eaa;font-size:12px;font-weight:800;white-space:nowrap;cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.auth-otp-copy:hover{border-color:#91b5ef;background:#edf4ff;color:#2457a8}
.auth-otp-copy.is-copied{border-color:#a9dbc4;background:#effbf5;color:#1d7955}
.auth-otp-copy:disabled{cursor:wait;opacity:.8}
.auth-otp-note{margin:9px 0 0;color:#8193a8;font-size:12px;line-height:1.5}
.auth-otp-note strong{color:#426ba8}
.auth-otp-copy-status{display:block;min-height:16px;margin-top:5px;color:#23825d;font-size:11px;text-align:right}
.auth-mail-preview{margin-top:17px;border-color:#c5e4d3;border-radius:10px;background:#f3fbf6;color:#28664f}
.auth-mail-preview p{font:13px/1.6 Arial,Helvetica,sans-serif;color:#467461}
.auth-pending{border-color:#d5e3f7;border-radius:12px;background:#f6f9ff;color:#516b8b}
.auth-pending strong{color:#2b5898}
.auth-pending dl{grid-template-columns:90px 1fr}
#profile.profile{border:0;cursor:pointer}
@media(max-width:900px){.auth-layout{width:min(620px,100%);grid-template-columns:1fr;gap:30px}.auth-intro{max-width:620px;padding:0}.auth-brand{margin-bottom:32px}.auth-intro h1{font-size:clamp(42px,8vw,60px)}.auth-principles{grid-template-columns:repeat(3,1fr);gap:12px;margin-top:26px}.auth-principles>span{display:block}.auth-principles>span>span{margin-top:7px}}
@media(max-width:560px){body.auth-boot .main>main,body.auth-locked .main>main{padding:22px 16px 38px}.auth-card{padding:22px 18px;border-radius:18px}.auth-switcher{margin-bottom:26px}.auth-intro h1{font-size:42px}.auth-intro>p{font-size:15px}.auth-principles{grid-template-columns:1fr;gap:10px;margin-top:23px}.auth-principles>span{display:flex}.auth-principles>span>span{margin-top:0}.auth-demo{grid-template-columns:1fr}.auth-demo-select,.auth-demo .btn{grid-column:1}.auth-demo .btn{margin-top:1px}.auth-heading h2{font-size:21px}}
@media(max-width:430px){.auth-otp-input-row{grid-template-columns:1fr}.auth-otp-copy{width:100%}.auth-otp-copy-status{text-align:left}}

/* AI-MARK[PMO-UI:navigation-rail] 2026-09-15 - Hover/focus expandable sidebar and consistent control rhythm for desktop and touch layouts. */
:root{--control-height:44px;--control-radius:9px;--control-gap:10px;--control-pad:14px}
#sidebar{scrollbar-width:none;-ms-overflow-style:none}
#sidebar::-webkit-scrollbar{width:0;height:0;display:none}
button,.btn,input,select,textarea{line-height:1.35}
.btn{min-height:var(--control-height);padding:10px var(--control-pad);border-radius:var(--control-radius);gap:var(--control-gap);letter-spacing:-.005em}
.btn .icon-svg{width:16px;height:16px;flex:0 0 auto}
.btn:active{transform:translateY(1px)}
.btn.primary:hover{background:#2d61dc;border-color:#2d61dc}
.actions,.filters,.pillrow,.auth-otp-actions{gap:var(--control-gap)}
.textlink{display:inline-flex;align-items:center;gap:6px;min-height:32px;line-height:1.3}
.global-search{min-height:var(--control-height);border-radius:var(--control-radius);line-height:1.2}
.icon{width:42px;height:42px;border-radius:var(--control-radius)}
.profile{width:42px;height:42px}
nav a{min-height:42px;height:auto;line-height:1.3;gap:11px}
nav a .nav-text{min-width:0;line-height:1.3}
nav a i{flex:0 0 20px}

@media(min-width:981px){
  #sidebar{width:92px;padding:22px 14px;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:none;-ms-overflow-style:none;box-shadow:2px 0 0 #0b1b2f0a;transition:width .2s ease,box-shadow .2s ease}
  #sidebar::-webkit-scrollbar{width:0;height:0;display:none}
  #sidebar:hover,#sidebar:focus-within{width:276px;box-shadow:14px 0 32px #0b1b2f24}
  .main{margin-left:92px;transition:margin-left .2s ease}
  #sidebar:hover~.main,#sidebar:focus-within~.main{margin-left:276px}
  #sidebar .brand{justify-content:center;padding:0;gap:12px;min-height:38px;white-space:nowrap}
  #sidebar .brand>span:last-child{max-width:0;overflow:hidden;opacity:0;visibility:hidden;transition:max-width .16s ease,opacity .12s ease}
  #sidebar:hover .brand,#sidebar:focus-within .brand{justify-content:flex-start;padding:0 10px}
  #sidebar:hover .brand>span:last-child,#sidebar:focus-within .brand>span:last-child{max-width:205px;opacity:1;visibility:visible}
  #sidebar .project-card{justify-content:center;min-height:54px;margin:28px 0 20px;padding:10px 8px;white-space:nowrap;overflow:hidden}
  #sidebar .project-card>div{max-width:0;overflow:hidden;opacity:0;visibility:hidden;transition:max-width .16s ease,opacity .12s ease}
  #sidebar:hover .project-card,#sidebar:focus-within .project-card{justify-content:flex-start;padding:14px 10px}
  #sidebar:hover .project-card>div,#sidebar:focus-within .project-card>div{max-width:190px;opacity:1;visibility:visible}
  #sidebar nav{gap:4px}
  #sidebar .nav-group{max-height:0;overflow:hidden;opacity:0;padding:0;margin:0;transition:max-height .18s ease,opacity .12s ease,padding .18s ease}
  #sidebar:hover .nav-group,#sidebar:focus-within .nav-group{max-height:42px;padding:16px 12px 5px;opacity:1}
  #sidebar nav a{justify-content:center;padding:0 11px;white-space:nowrap}
  #sidebar:hover nav a,#sidebar:focus-within nav a{justify-content:flex-start;padding:0 12px}
  #sidebar nav a .nav-text{max-width:0;overflow:hidden;opacity:0;white-space:nowrap;transition:max-width .16s ease,opacity .12s ease}
  #sidebar:hover nav a .nav-text,#sidebar:focus-within nav a .nav-text{max-width:185px;opacity:1}
  #sidebar nav a b{display:none}
  #sidebar:hover nav a b,#sidebar:focus-within nav a b{display:block}
  #sidebar .side-bottom{padding:24px 0 0}
  #sidebar .partner{justify-content:center;gap:0;white-space:nowrap}
  #sidebar .partner span{display:none}
  #sidebar .partner span:first-child{display:block}
  #sidebar .partner i,#sidebar .side-bottom p,#sidebar .prototype{display:none}
  #sidebar:hover .partner,#sidebar:focus-within .partner{justify-content:flex-start;gap:18px}
  #sidebar:hover .partner span,#sidebar:focus-within .partner span{display:block}
  #sidebar:hover .partner i,#sidebar:focus-within .partner i{display:block}
  #sidebar:hover .side-bottom p,#sidebar:focus-within .side-bottom p{display:block}
  #sidebar:hover .prototype,#sidebar:focus-within .prototype{display:flex}
}

@media(max-width:980px){
  #sidebar{width:258px}
  nav a{min-height:44px}
  .main{margin-left:0}
}

@media(max-width:700px){
  .btn{min-height:46px;padding-inline:13px}
  .icon,.profile{width:44px;height:44px}
  .actions{row-gap:9px}
}

@media(prefers-reduced-motion:reduce){#sidebar{transition:none!important}}

/* AI-MARK[PMO-UI:production-icon-action-layout] 2026-09-25 — Normalize
   semantic icons, status controls and floating assistant spacing across every
   PMO tab without changing routes, ACL or workflow behavior. | rel:
   PMO-UI:icon-system, PMO-UI:detail-action-hierarchy, PMO-UI:quikwork-status-vocabulary */
.btn .icon-svg,.status-inline-action .icon-svg{display:block;flex:0 0 auto}
.btn-label{display:inline-flex;align-items:center;min-width:0;line-height:1.25}
.status-inline-action{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:30px}
.status-inline-action .icon-svg{width:14px;height:14px}
.status-inline-action span{line-height:1.2}
.pagehead .actions .btn{flex:0 0 auto}
.main>main#content{padding-bottom:104px}
.pmo-float{right:24px;bottom:24px;min-height:44px;padding:11px 18px;border:1px solid #4f78df;line-height:1.2;z-index:31;transition:background .15s,box-shadow .15s,transform .15s}
.pmo-float[aria-expanded="true"]{background:#173fae;box-shadow:0 10px 28px #16357245;transform:translateY(-1px)}
@media(max-width:700px){
  .main>main#content{padding-bottom:116px}
  .pmo-float{right:14px;bottom:76px;padding:11px 16px}
}

/* AI-MARK[PMO-UI:feng-ying-quick-chat] 2026-09-29 (GMT+7) — Contain the
   dedicated assistant window so the global page-main layout cannot stretch or
   offset its chat column; preserve the compact session, prompt and composer
   flow on desktop and mobile. */
.pmo-quick-panel{position:fixed;inset:auto 24px 82px auto;display:block;width:min(470px,calc(100vw - 32px));max-width:calc(100vw - 32px);height:min(700px,calc(100vh - 132px));max-height:calc(100vh - 132px);min-height:440px;z-index:29;box-sizing:border-box;isolation:isolate}
.pmo-quick-panel[hidden]{display:none!important}
.pmo-quick-card{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden;border:1px solid #cfdced;border-radius:17px;background:#fff;box-shadow:0 24px 62px #17375c33}
.pmo-quick-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 16px;border-bottom:1px solid #e5ecf5;background:linear-gradient(135deg,#f7faff 0%,#fff 100%)}
.pmo-quick-title{display:flex;align-items:center;gap:10px;min-width:0}
.pmo-quick-icon{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:10px;background:#e8effe;color:#356cef;line-height:0}
.pmo-quick-icon .icon-svg{width:19px;height:19px;display:block}
.pmo-quick-title strong{display:block;overflow:hidden;color:#203f64;font-size:14px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}
.pmo-quick-title small{display:block;margin-top:3px;overflow:hidden;color:#7a8fa9;font-size:10px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}
.pmo-quick-header-actions{display:flex;align-items:center;gap:5px;flex:0 0 auto}
.pmo-quick-icon-button{display:grid;place-items:center;width:31px;height:31px;padding:0;border:1px solid #d7e3f1;border-radius:8px;background:#fff;color:#567594;line-height:0}
.pmo-quick-icon-button:hover,.pmo-quick-icon-button:focus-visible{border-color:#9db9df;background:#f1f6ff;color:#2d62ba;outline:0}
.pmo-quick-icon-button .icon-svg{width:16px;height:16px;display:block}
.pmo-quick-context{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding:10px 12px;border-bottom:1px solid #edf1f6;background:#fbfdff}
.pmo-quick-context span{display:grid;gap:3px;padding:7px 6px;border:1px solid #e0e9f4;border-radius:8px;background:#fff;text-align:center}
.pmo-quick-context strong{color:#28548d;font-size:16px;line-height:1.05}
.pmo-quick-context small{overflow:hidden;color:#7b90a8;font-size:9px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}
.pmo-quick-context .is-overdue strong{color:#bd5960}.pmo-quick-context .is-soon strong{color:#bc791b}
.pmo-quick-layout{display:grid;grid-template-columns:145px minmax(0,1fr);min-height:0;flex:1}
.pmo-quick-sessions{min-width:0;overflow:hidden;border-right:1px solid #e4ebf4;background:#f8faff}
.pmo-quick-session-head{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:12px 10px 8px;color:#385979;font-size:11px}
.pmo-quick-new{display:inline-flex;align-items:center;gap:3px;padding:3px 0;border:0;background:transparent;color:#356bc2;font-size:9px;font-weight:750;white-space:nowrap}
.pmo-quick-new .icon-svg{width:12px;height:12px;display:block}
.pmo-quick-session-list{height:calc(100% - 39px);overflow:auto;padding:0 8px 10px}
.pmo-quick-session{display:block;width:100%;margin:3px 0;padding:9px 8px;border:1px solid transparent;border-radius:8px;background:transparent;color:#4a6787;text-align:left}
.pmo-quick-session:hover,.pmo-quick-session:focus-visible,.pmo-quick-session.selected{border-color:#cbdcf7;background:#eaf1ff;color:#2455a7;outline:0}
.pmo-quick-session strong{display:block;overflow:hidden;font-size:10px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
.pmo-quick-session small{display:block;margin-top:4px;overflow:hidden;color:#8c9caf;font-size:9px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}
.pmo-quick-empty{padding:14px 4px;color:#8798ac;font-size:10px;line-height:1.45;text-align:center}
.pmo-quick-main{display:flex;flex-direction:column;width:100%;max-width:none;min-width:0;min-height:0;margin:0;padding:0;overflow:hidden;background:#fff;box-sizing:border-box}
.pmo-quick-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;max-width:100%;padding:11px 13px;border-bottom:1px solid #edf1f6}
.pmo-quick-heading>*{min-width:0;max-width:100%}
.pmo-quick-heading strong{overflow:hidden;color:#2b4b6d;font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.pmo-quick-heading small{flex:0 0 auto;color:#8b9db1;font-size:9px}
.pmo-quick-messages{min-width:0;max-width:100%;min-height:0;flex:1;overflow:auto;padding:13px;background:linear-gradient(180deg,#fff 0%,#fbfdff 100%)}
.pmo-quick-messages .pmo-message{margin-bottom:9px;padding:9px 10px;border-radius:9px}
.pmo-quick-messages .pmo-message-meta{min-width:0;max-width:100%;font-size:10px}.pmo-quick-messages .pmo-message-meta time{font-size:9px}.pmo-quick-messages .pmo-message p{max-width:100%;margin-top:5px;font-size:11px;line-height:1.55;overflow-wrap:anywhere}
.pmo-quick-messages .source-list{min-width:0;max-width:100%;gap:5px;margin-top:7px;overflow:hidden}.pmo-quick-messages .source-pill{min-width:0;max-width:100%;padding:5px 7px;font-size:9px;overflow-wrap:anywhere;white-space:normal}
.pmo-quick-prompts{display:flex;gap:5px;overflow:auto;padding:8px 10px;border-top:1px solid #edf1f6;scrollbar-width:none}
.pmo-quick-prompts::-webkit-scrollbar{display:none}
.pmo-quick-prompt{flex:0 0 auto;max-width:190px;padding:6px 9px;border:1px solid #d8e5f5;border-radius:999px;background:#f7faff;color:#3565a1;font-size:9px;line-height:1.25;text-align:left;white-space:nowrap}
.pmo-quick-prompt:hover,.pmo-quick-prompt:focus-visible{border-color:#91afe0;background:#edf4ff;outline:0}
.pmo-quick-composer{min-width:0;max-width:100%;padding:9px 11px 11px;border-top:1px solid #e7edf5;background:#fff}
.pmo-quick-composer label{display:block;margin:0 0 5px;color:#3e5d7c;font-size:10px;font-weight:800}
.pmo-quick-composer-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:end}
.pmo-quick-composer textarea{box-sizing:border-box;width:100%;min-height:48px;max-height:120px;margin:0;padding:8px 9px;border:1px solid #cbdcf2;border-radius:8px;background:#fbfdff;color:#294867;font:inherit;font-size:11px;line-height:1.45;resize:vertical;outline:0}
.pmo-quick-composer textarea:focus{border-color:#5a88ee;box-shadow:0 0 0 3px #5a88ee1a;background:#fff}
.pmo-quick-composer .btn{min-height:38px;padding:7px 9px;gap:5px;font-size:10px}.pmo-quick-composer .btn .icon-svg{width:13px;height:13px}
.pmo-quick-composer>small{display:block;margin-top:4px;color:#8a9bae;font-size:9px;line-height:1.35}
@media(max-width:700px){.pmo-quick-panel{inset:auto 12px 132px 12px;width:auto;max-width:none;height:min(74vh,680px);max-height:calc(100vh - 148px);min-height:430px}.pmo-quick-layout{grid-template-columns:1fr}.pmo-quick-sessions{border-right:0;border-bottom:1px solid #e4ebf4;max-height:94px}.pmo-quick-session-head{padding:8px 10px 4px}.pmo-quick-session-list{display:flex;gap:5px;height:55px;overflow-x:auto;overflow-y:hidden;padding:0 8px 7px}.pmo-quick-session{min-width:145px;margin:0}.pmo-quick-main{min-height:0}}

/* AI-MARK[PMO-UI:header-search-profile] 2026-09-15 - Inline project search suggestions and compact account menu. */
.global-search-wrap{position:relative;display:flex;align-items:center;gap:8px;width:min(360px,32vw);min-width:270px;height:44px;padding:0 11px;border:1px solid #dce5ef;border-radius:var(--control-radius);background:#f7f9fc;color:#66809f;transition:border-color .15s,background .15s,box-shadow .15s}
.global-search-wrap:focus-within{border-color:#7da1ef;background:#fff;box-shadow:0 0 0 4px #5f8cf11c}
.global-search-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 19px;color:#54739b}
.global-search-icon .icon-svg{width:17px;height:17px}
.global-search-input{width:100%;min-width:0;height:40px!important;min-height:0!important;margin:0!important;padding:0 2px!important;border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;color:#2d4d72;font-size:13px}
.global-search-input::placeholder{color:#7890ab}
.global-search-wrap kbd{flex:0 0 auto;margin:0;color:#8093ac;font-size:11px;background:#fff;border:1px solid #dbe4ef;border-radius:4px;padding:2px 5px;line-height:1.2}
.global-search-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:min(520px,calc(100vw - 32px));max-height:420px;overflow:auto;padding:7px;border:1px solid #dce5ef;border-radius:12px;background:#fff;box-shadow:0 18px 42px #15365c1c;z-index:120}
.global-search-dropdown[hidden],.profile-menu[hidden]{display:none}
.search-suggestion{display:flex;align-items:center;width:100%;gap:10px;padding:10px 11px;border:0;border-radius:9px;background:#fff;color:#2c4b6f;text-align:left;cursor:pointer}
.search-suggestion:hover,.search-suggestion:focus-visible{background:#f3f7fd;outline:0}
.search-suggestion-icon{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:8px;background:#edf3ff;color:#4779e8}
.search-suggestion-icon .icon-svg{width:15px;height:15px}
.search-suggestion-main{min-width:0;flex:1}
.search-suggestion-main strong{display:block;overflow:hidden;color:#264669;font-size:13px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}
.search-suggestion-main small{display:block;overflow:hidden;margin-top:3px;color:#8395aa;font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.search-suggestion-arrow{display:inline-flex;color:#7091c5}
.search-suggestion-arrow .icon-svg{width:15px;height:15px}
.search-suggestion-status{display:inline-flex;flex:0 0 auto}
.search-suggestion-status .tag{font-size:10px;padding:3px 7px}
.search-empty{padding:17px 13px;color:#8192a7;font-size:13px;text-align:center}
.profile-wrap{position:relative;display:flex;align-items:center}
.profile-menu{position:absolute;top:calc(100% + 9px);right:0;width:180px;padding:6px;border:1px solid #dce5ef;border-radius:12px;background:#fff;box-shadow:0 18px 42px #15365c1c;z-index:120}
.profile-menu button{display:flex;align-items:center;width:100%;min-height:40px;padding:9px 11px;border:0;border-radius:8px;background:transparent;color:#365473;font-size:13px;text-align:left}
.profile-menu button:hover,.profile-menu button:focus-visible{background:#f3f7fd;color:#244f8f;outline:0}
.profile-menu button:last-child{color:#a6474d}
.profile-sheet-avatar{display:grid;place-items:center;width:52px;height:52px;margin-bottom:15px;border-radius:15px;background:linear-gradient(145deg,#477cf2,#3158bd);color:#d5ffef;font-weight:800;letter-spacing:.04em}
.profile-details{display:grid;gap:11px;margin:22px 0 0;padding:16px;border-radius:10px;background:#f5f8fc}
.profile-details div{display:flex;justify-content:space-between;gap:18px}
.profile-details dt{color:#8092a8;font-size:12px}
.profile-details dd{margin:0;color:#2c4c70;font-size:13px;font-weight:700;text-align:right}
@media(max-width:700px){.global-search-wrap{width:44px;min-width:44px;height:44px;padding:0;justify-content:center}.global-search-input,.global-search-wrap kbd{display:none}.global-search-icon .icon-svg{width:19px;height:19px}.global-search-dropdown{right:-54px;width:min(360px,calc(100vw - 32px))}.profile-menu{right:-4px}}

/* AI-MARK[PMO-UI:notification-center-dropdown] 2026-09-28 (GMT+7) — Keep
   the personal preview compact at the header while preserving readable
   density, keyboard focus, and a clear route to the full notification tab. */
.notification-center{position:relative;display:flex;align-items:center}
.notification-toggle{position:relative}
.notification-unread-badge{position:absolute;top:2px;right:2px;display:grid;place-items:center;min-width:16px;height:16px;padding:0 4px;border:2px solid #fff;border-radius:999px;background:#e0525d;color:#fff;font-size:9px;font-weight:800;line-height:1;pointer-events:none}
.notification-unread-badge[hidden]{display:none}
.notification-menu{position:absolute;top:calc(100% + 10px);right:-4px;width:min(392px,calc(100vw - 28px));overflow:hidden;border:1px solid #dbe5f1;border-radius:15px;background:#fff;box-shadow:0 22px 48px #15365c26;z-index:125}
.notification-menu[hidden]{display:none}
.notification-menu-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:16px 17px 13px;border-bottom:1px solid #e8eef5;background:#fbfdff}
.notification-menu-head strong{display:block;color:#203b5e;font-size:15px;line-height:1.25}
.notification-menu-head small{display:block;margin-top:4px;color:#7890aa;font-size:11px;line-height:1.35}
.notification-menu-mark-read{flex:0 0 auto;padding:4px 0;border:0;background:transparent;color:#356bc2;font-size:11px;font-weight:700;cursor:pointer}
.notification-menu-mark-read:hover,.notification-menu-mark-read:focus-visible{color:#1f4e9a;text-decoration:underline;outline:0}
.notification-menu-list{max-height:354px;overflow:auto}
.notification-menu-item{display:grid;grid-template-columns:8px minmax(0,1fr);gap:10px;width:100%;padding:13px 16px;border:0;border-bottom:1px solid #edf1f6;background:#fff;color:inherit;text-align:left;cursor:pointer}
.notification-menu-item:hover,.notification-menu-item:focus-visible{background:#f4f8ff;outline:0}
.notification-menu-item.is-unread{background:#f8fbff}
.notification-menu-dot{width:8px;height:8px;margin-top:5px;border-radius:50%;background:#91a4be}
.notification-menu-item.is-unread .notification-menu-dot{background:#3979e9;box-shadow:0 0 0 4px #3979e91a}
.notification-menu-item-main{display:block;min-width:0}
.notification-menu-item-title{display:block;overflow:hidden;color:#29486b;font-size:12px;font-weight:750;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
.notification-menu-item-body{display:-webkit-box;overflow:hidden;margin-top:4px;color:#66809f;font-size:11px;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.notification-menu-meta{display:block;margin-top:6px;overflow:hidden;color:#93a3b5;font-size:10px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}
.notification-menu-empty{padding:25px 18px;color:#7890aa;font-size:12px;text-align:center}
.notification-menu-footer{padding:10px 12px;background:#fbfdff}
.notification-menu-view-all{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;min-height:36px;border:1px solid #d5e2f5;border-radius:9px;background:#fff;color:#356bc2;font-size:12px;font-weight:750;cursor:pointer}
.notification-menu-view-all:hover,.notification-menu-view-all:focus-visible{border-color:#8eafe2;background:#f2f7ff;outline:0}
@media(max-width:700px){.notification-menu{position:fixed;top:68px;right:12px;width:min(392px,calc(100vw - 24px))}.notification-menu-list{max-height:min(54vh,354px)}}

/* AI-MARK[PMO-UI:task-form] 2026-09-15 - Guided Vietnamese task creation and editing flow. */
/* AI-MARK[PMO-UI:quikwork-status-vocabulary] 2026-09-25 12:08 (GMT+7) — Keep
   QuikWork-style status labels readable beside the existing PMO workflow and
   make the derived overdue state visibly distinct without changing data keys. */
.task-status-help{display:grid;gap:5px;margin:-4px 0 2px;padding:11px 13px;border:1px solid #dce8f8;border-radius:10px;background:#f7faff;color:#5f7591;font-size:11px;line-height:1.55}.task-status-help strong{color:#365b8a;font-size:12px}.task-status-help span{color:#68809d}.task-status-help small{color:#8a9bae}.status-origin{display:block;color:#8a9bae;font-size:10px;line-height:1.3}
dialog:has(.task-form-shell){width:min(900px,calc(100% - 32px));max-height:92vh;padding:0;overflow:hidden;border-radius:20px}
dialog:has(.task-form-shell) #dialogBody{position:relative;padding:0;overflow:hidden}
dialog:has(.task-form-shell) .close{position:absolute;top:19px;right:20px;z-index:3;width:36px;height:36px;border:1px solid #e0e8f3;border-radius:10px;background:#f6f9fd;color:#627d9e;font-size:20px;line-height:1}
dialog:has(.task-form-shell) .close:hover{background:#eaf1fb;color:#2d5daa}
.task-form-shell{max-height:92vh;overflow:auto;padding:34px 42px 28px;background:#fff}
.task-form-intro{display:flex;align-items:flex-start;gap:15px;padding:2px 48px 25px 0;border-bottom:1px solid #edf1f6}
.task-form-intro h2{margin:2px 0 6px;color:#172e4a;font-size:26px;letter-spacing:-.035em}
.task-form-icon{display:grid;place-items:center;flex:0 0 46px;width:46px;height:46px;border:1px solid #dbe7fb;border-radius:13px;background:#eef4ff;color:#3c72e6}
.task-form-icon .icon-svg{width:22px;height:22px}
.task-form-section{padding:25px 0;border:0;border-bottom:1px solid #edf1f6}
.task-form-section-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:18px}
.task-form-section-head h3{margin:0;color:#263f5e;font-size:16px;letter-spacing:-.015em}
.task-form-section-head p{margin:4px 0 0;color:#8292a7;font-size:12px;line-height:1.55}
.form-step{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border:1px solid #d7e5fd;border-radius:9px;background:#f1f6ff;color:#4779e8;font-size:11px;font-weight:800;letter-spacing:.04em}
.task-form label{margin:0 0 16px;color:#4f6885;font-size:13px;font-weight:700}
.task-form label input,.task-form label select,.task-form label textarea{margin-top:7px}
.task-form input,.task-form select,.task-form textarea{border-color:#d9e4f0;border-radius:10px;background:#fbfcfe;color:#294766;transition:border-color .15s,box-shadow .15s,background .15s}
.task-form input,.task-form select{min-height:46px}
.task-form textarea{min-height:112px;resize:vertical;line-height:1.55}
.task-form input:focus,.task-form select:focus,.task-form textarea:focus{border-color:#6e98ed;background:#fff;box-shadow:0 0 0 4px #5f8cf11a;outline:0}
.task-form input::placeholder,.task-form textarea::placeholder{color:#a0adbd}
.task-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.task-form-grid>label{min-width:0}
.task-form .field-help{margin:-7px 0 2px;color:#8b9bae;font-size:11px;line-height:1.5}
.task-form .error{min-height:20px;margin:16px 0 0;font-size:13px}
.task-form-advanced{padding:0}
.task-form-advanced summary{display:flex;align-items:center;gap:12px;padding:21px 0;list-style:none;cursor:pointer;color:#35516f}
.task-form-advanced summary::-webkit-details-marker{display:none}
.task-form-advanced summary>span:nth-child(2){display:grid;gap:3px;flex:1}
.task-form-advanced summary strong{font-size:14px}
.task-form-advanced summary small{color:#8b9bae;font-size:11px;font-weight:400}
.details-chevron{color:#6e87a5;font-size:20px;transition:transform .15s}
.task-form-advanced[open] .details-chevron{transform:rotate(180deg)}
.task-form-advanced-body{padding:0 0 9px 42px}
.task-form-advanced-body select[multiple]{height:auto;min-height:112px;padding:8px}
.task-blocked{display:flex!important;align-items:center;gap:10px;margin:16px 0 4px!important;color:#a14d52!important;font-weight:600!important}
.task-blocked input{width:17px;height:17px;min-height:0;margin:0!important;accent-color:#cf5b62}
.task-form-actions{position:sticky;bottom:-28px;display:flex;justify-content:flex-end;gap:10px;margin:22px -42px -28px;padding:17px 42px 28px;border-top:1px solid #e9eef5;background:linear-gradient(180deg,#fffffff2 0%,#fff 35%)}
.task-form-actions .btn{min-width:126px}
@media(max-width:700px){dialog:has(.task-form-shell){width:calc(100% - 20px);max-height:94vh;border-radius:16px}.task-form-shell{padding:25px 20px 22px}.task-form-intro{padding-right:42px}.task-form-intro h2{font-size:22px}.task-form-grid{grid-template-columns:1fr}.task-form-advanced-body{padding-left:0}.task-form-actions{bottom:-22px;margin:20px -20px -22px;padding:14px 20px 22px}.task-form-actions .btn{flex:1;min-width:0}.task-form-section{padding:21px 0}}

/* AI-MARK[PMO-UI:enterprise-inbox] 2026-09-15 - Group chat inbox, member actions and balanced conversation layout. */
.chat-page-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.chat-page-actions .btn,.chat-conversation-actions .btn{min-height:42px}
.chat-page-actions .icon-svg,.chat-conversation-actions .icon-svg{width:16px;height:16px}
.enterprise-chat-layout{display:grid;grid-template-columns:304px minmax(0,1fr);min-height:650px;background:#fff;border:1px solid #dfe7f1;border-radius:16px;overflow:hidden;box-shadow:0 14px 36px #17365c0b}
.chat-inbox{display:flex;flex-direction:column;min-width:0;max-height:calc(100vh - 260px);overflow:auto;border-right:1px solid #e5ebf3;background:#f8fafd}
.chat-inbox-head{display:flex;align-items:center;justify-content:space-between;padding:22px 18px 14px}
.chat-inbox-head h2{color:#203b5d;font-size:18px}
.chat-inbox-head small{display:block;margin-top:3px;color:#8a9aae;font-size:11px}
.chat-new-button{display:grid;place-items:center;width:34px;height:34px;border:1px solid #d5e3f6;border-radius:9px;background:#fff;color:#3f74da}
.chat-new-button:hover{border-color:#9bbaf0;background:#f3f7ff}
.chat-new-button .icon-svg{width:17px;height:17px}
.chat-inbox-search{display:flex;align-items:center;gap:8px;margin:0 13px 10px;padding:0 11px;border:1px solid #dce5ef;border-radius:9px;background:#fff;color:#7890ad}
.chat-inbox-search:focus-within{border-color:#7da1ef;box-shadow:0 0 0 4px #5f8cf11c}
.chat-inbox-search .icon-svg{width:15px;height:15px;flex:0 0 auto}
.chat-inbox-search input{width:100%;height:39px;min-height:0;margin:0;padding:0!important;border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;color:#2d4d72;font-size:12px}
.chat-inbox-search input::placeholder{color:#9aa9ba}
.chat-inbox-list{padding:8px 9px 3px}
.chat-inbox-label{padding:9px 9px 7px;color:#9aa6b7;font-size:10px;font-weight:800;letter-spacing:.13em}
.chat-inbox-row{display:flex;align-items:center;width:100%;gap:9px;min-height:58px;padding:9px;border:0;border-radius:10px;background:transparent;color:#3b5775;text-align:left}
.chat-inbox-row:hover{background:#eef4fc}
.chat-inbox-row.selected{background:#e7efff;color:#2458b0;box-shadow:inset 3px 0 #4778e8}
.chat-list-avatar{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:10px;background:#e6eefb;color:#416da4;font-size:11px;font-weight:800}
.chat-list-avatar .icon-svg{width:16px;height:16px}
.chat-list-avatar.group-avatar{background:#e8f7f2;color:#22826d}
.chat-list-avatar.channel-avatar{background:#eef2f8;color:#6c80a0}
.chat-inbox-row-copy{display:block;min-width:0;flex:1}
.chat-inbox-row-copy strong{display:block;overflow:hidden;color:inherit;font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.chat-inbox-row-copy small{display:block;overflow:hidden;margin-top:3px;color:#8495a9;font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.chat-inbox-row time{align-self:flex-start;padding-top:2px;color:#9ba9b9;font-size:9px;white-space:nowrap}
.chat-list-empty{margin:4px 9px 12px;color:#9aa7b8;font-size:11px;line-height:1.5}
.chat-inbox-note{margin:auto 17px 18px;padding-top:15px;border-top:1px solid #e3eaf2;color:#98a5b5;font-size:10px;line-height:1.55}
.chat-conversation{display:flex;flex-direction:column;min-width:0;background:#fff}
.chat-conversation-header{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:82px;padding:17px 24px;border-bottom:1px solid #e7edf4;background:#fff}
.chat-conversation-identity{display:flex;align-items:center;gap:12px;min-width:0}
.chat-conversation-avatar{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:12px;background:#e8effd;color:#3d70d3;font-size:12px;font-weight:800}
.chat-conversation-avatar.group-avatar{background:#e8f7f2;color:#22826d}
.chat-conversation-avatar .icon-svg{width:19px;height:19px}
.chat-conversation-identity h2{overflow:hidden;color:#203b5d;font-size:18px;text-overflow:ellipsis;white-space:nowrap}
.chat-conversation-identity p{display:flex;align-items:center;gap:6px;margin:3px 0 0;color:#8b9bae;font-size:11px}
.chat-online-dot{width:6px;height:6px;border-radius:50%;background:#53b695;box-shadow:0 0 0 3px #53b6951e}
.chat-conversation-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.chat-header-button{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:7px 10px;border:1px solid #dbe5f1;border-radius:8px;background:#fff;color:#416283;font-size:11px;font-weight:700}
.chat-header-button:hover{border-color:#9bbaf0;background:#f7faff;color:#245ab0}
.chat-header-button .icon-svg{width:15px;height:15px}
.chat-messages{display:flex;flex:1;flex-direction:column;gap:14px;min-height:400px;max-height:calc(100vh - 465px);overflow:auto;padding:26px 28px;background:linear-gradient(180deg,#fbfcfe 0%,#fff 100%)}
.chat-message{display:flex;align-items:flex-start;gap:9px;max-width:min(760px,88%)}
.chat-message.mine{align-self:flex-end;flex-direction:row-reverse}
.chat-message-avatar{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:9px;background:#e8eef8;color:#53759b;font-size:10px;font-weight:800}
.chat-message-content{min-width:0}
.chat-message-meta{display:flex;align-items:center;gap:8px;margin:0 4px 4px;color:#8797aa;font-size:10px}
.chat-message.mine .chat-message-meta{justify-content:flex-end}
.chat-message-meta strong{color:#4f6885;font-size:11px}
.chat-bubble{padding:10px 13px;border:1px solid #e0e8f2;border-radius:4px 13px 13px 13px;background:#fff;color:#365371;font-size:13px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;box-shadow:0 3px 12px #18365c08}
.chat-message.mine .chat-bubble{border-color:#c7d9fb;border-radius:13px 4px 13px 13px;background:#eaf2ff;color:#254e88}
.chat-message .message-tools{margin-top:5px}
.chat-system-message{display:flex;align-items:center;justify-content:center;gap:7px;max-width:100%;padding:4px 0;color:#8c9aab;font-size:10px}
.chat-system-message .icon-svg{width:13px;height:13px;color:#64a992}
.chat-system-message p{margin:0}
.chat-system-message time{color:#a2adba}
.chat-composer{padding:16px 24px 18px;border-top:1px solid #e5ebf3;background:#fff}
.chat-composer textarea{width:100%;min-height:70px;max-height:150px;padding:12px 13px;border:1px solid #d9e4f0;border-radius:11px;background:#fbfcfe;resize:vertical;color:#294766;font-size:13px;line-height:1.55}
.chat-composer textarea:focus{border-color:#6e98ed;background:#fff;box-shadow:0 0 0 4px #5f8cf11a;outline:0}
.chat-composer textarea::placeholder{color:#a0adbd}
.chat-composer-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:9px}
.chat-composer-footer>span{color:#9aa8b8;font-size:10px}
.chat-composer-footer .btn{min-height:38px;padding:8px 13px}
.chat-composer-footer .icon-svg{width:15px;height:15px}
.chat-composer .error{min-height:0;margin:6px 0 0;font-size:12px}
.chat-dialog{padding:5px 2px 0}
.chat-dialog-heading{display:flex;align-items:flex-start;gap:12px;margin-bottom:20px;padding-right:35px}
.chat-dialog-heading h2{margin:2px 0 5px;color:#203b5d;font-size:22px}
.chat-dialog-icon{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border:1px solid #dbe7fb;border-radius:12px;background:#eef4ff;color:#3d72df}
.chat-dialog-icon .icon-svg{width:20px;height:20px}
.chat-dialog label{margin-top:16px}
.chat-dialog select[multiple]{height:auto;min-height:132px;padding:8px}
.chat-dialog-help{margin:8px 0;color:#8b9bae;font-size:11px;line-height:1.55}
.chat-dialog .actions{justify-content:flex-end;margin-top:22px}
@media(max-width:980px){.enterprise-chat-layout{grid-template-columns:1fr}.chat-inbox{max-height:360px;border-right:0;border-bottom:1px solid #e5ebf3}.chat-inbox-list{display:none}.chat-inbox-list:first-of-type{display:block}.chat-inbox-note{display:none}.chat-messages{max-height:none}}
@media(max-width:700px){.chat-page-actions .btn{flex:1}.enterprise-chat-layout{min-height:0;border-radius:12px}.chat-conversation-header{align-items:flex-start;flex-direction:column;padding:15px}.chat-conversation-actions{width:100%}.chat-header-button{flex:1;justify-content:center}.chat-messages{min-height:360px;padding:18px 13px}.chat-message{max-width:94%}.chat-composer{padding:12px 13px 14px}.chat-composer-footer{align-items:flex-end;flex-direction:column}.chat-composer-footer>span{align-self:flex-start}.chat-composer-footer .btn{width:100%}}

/* AI-MARK[PMO-UI:dialog-system] 2026-09-15 - One accessible visual system for every modal and detail surface. */
dialog.dialog-standard{width:min(760px,calc(100% - 32px));max-height:90vh;padding:0;overflow:hidden;border:1px solid #dbe5f0;border-radius:20px;background:#fff;box-shadow:0 28px 90px #1022383b}
dialog.dialog-standard::backdrop{background:#0c1e366f;backdrop-filter:blur(5px)}
dialog.dialog-standard #dialogBody{position:relative;max-height:90vh;overflow:hidden;padding:0}
dialog.dialog-standard .dialog-content{max-height:90vh;overflow:auto;padding:34px 38px 32px;scrollbar-width:thin;scrollbar-color:#b9c5d3 transparent}
dialog.dialog-standard .dialog-content::-webkit-scrollbar{width:8px}
dialog.dialog-standard .dialog-content::-webkit-scrollbar-track{background:transparent}
dialog.dialog-standard .dialog-content::-webkit-scrollbar-thumb{border:2px solid #fff;border-radius:99px;background:#b9c5d3}
dialog.dialog-standard .close,dialog.detail-sheet .close{position:absolute;top:18px;right:20px;z-index:4;display:grid;place-items:center;width:36px;height:36px;margin:0;border:1px solid #dfe8f3;border-radius:10px;background:#f5f8fd;color:#647f9f;font-size:20px;line-height:1;cursor:pointer;transition:background .15s,border-color .15s,color .15s,transform .15s}
dialog.dialog-standard .close:hover,dialog.detail-sheet .close:hover{border-color:#b9cff2;background:#eaf1fb;color:#2d5daa;transform:translateY(-1px)}
dialog.dialog-standard h2{margin:0 45px 8px;color:#172e4a;font-size:25px;letter-spacing:-.035em;line-height:1.25}
dialog.dialog-standard h2{ text-align:center }
dialog.dialog-standard .chat-dialog-heading{justify-content:center;text-align:center}
dialog.dialog-standard .chat-dialog-heading h2{margin:2px 0 5px}
dialog.dialog-standard .chat-dialog-heading .sub{text-align:center}
dialog.dialog-standard .profile-sheet{text-align:center}
dialog.dialog-standard .profile-sheet-avatar{margin-left:auto;margin-right:auto}
dialog.dialog-standard .profile-details{text-align:left}
dialog.dialog-standard h3{color:#2a4667}
dialog.dialog-standard form{margin-top:20px}
dialog.dialog-standard form label{margin:16px 0 6px;color:#516b87;font-size:13px;font-weight:700;line-height:1.35}
dialog.dialog-standard form label input,dialog.dialog-standard form label select,dialog.dialog-standard form label textarea{margin-top:7px}
dialog.dialog-standard input,dialog.dialog-standard select,dialog.dialog-standard textarea{border-color:#d9e4f0;border-radius:10px;background:#fbfcfe;color:#294766;transition:border-color .15s,box-shadow .15s,background .15s}
dialog.dialog-standard input:focus,dialog.dialog-standard select:focus,dialog.dialog-standard textarea:focus{border-color:#6e98ed;background:#fff;box-shadow:0 0 0 4px #5f8cf11a;outline:0}
dialog.dialog-standard input::placeholder,dialog.dialog-standard textarea::placeholder{color:#a0adbd}
dialog.dialog-standard form>button.btn{margin-top:20px}
dialog.dialog-standard .actions{display:flex;justify-content:flex-end;gap:10px;position:sticky;bottom:-32px;margin:24px -38px -32px;padding:17px 38px 32px;border-top:1px solid #e9eef5;background:linear-gradient(180deg,#fffffff2 0%,#fff 35%)}
dialog.dialog-standard .actions .btn{min-width:110px}
dialog.dialog-standard .sub{line-height:1.65}
dialog.dialog-standard .error{margin-top:14px}
/* AI-MARK[PMO-UI:record-form-create-safety] 2026-09-25 — Keep the dialog
   body as the only scroll container and let the action bar occupy normal
   layout space. This prevents the sticky footer from covering the last field
   or its helper text in long RAID, task, and record forms. */
dialog.dialog-standard:has(.record-form-shell) .dialog-content{overflow:auto;overscroll-behavior:contain}
dialog.dialog-standard:has(.record-form-shell) .record-form-shell{max-height:none;overflow:visible;padding-bottom:32px}
dialog.dialog-standard:has(.record-form-shell) .record-form{min-width:0}
dialog.dialog-standard:has(.record-form-shell) .record-form .two{align-items:start}
dialog.dialog-standard:has(.record-form-shell) .record-form>label,
dialog.dialog-standard:has(.record-form-shell) .record-form .two>label,
dialog.dialog-standard:has(.record-form-shell) .record-form fieldset{min-width:0}
dialog.dialog-standard:has(.record-form-shell) .record-form input,
dialog.dialog-standard:has(.record-form-shell) .record-form select,
dialog.dialog-standard:has(.record-form-shell) .record-form textarea{width:100%;max-width:100%}
dialog.dialog-standard:has(.record-form-shell) .record-form .actions{position:sticky;bottom:0;margin:24px -38px 0;padding:17px 38px 0;min-height:72px;z-index:2}
dialog.dialog-standard:has(.task-form-shell) #dialogBody{padding:0}
dialog.dialog-standard:has(.task-form-shell) .dialog-content{padding:0;overflow:hidden}
dialog.dialog-standard:has(.task-form-shell) .task-form-intro{display:block;padding-right:0;text-align:center}
dialog.dialog-standard:has(.task-form-shell) .task-form-icon{margin:0 auto 12px}
dialog.dialog-standard:has(.task-form-shell) .task-form-intro h2{margin-right:0}
dialog.detail-sheet{padding:0;overflow:hidden}
dialog.detail-sheet #dialogBody{position:relative;height:100%;max-height:100%;overflow:auto;padding:32px;scrollbar-width:thin;scrollbar-color:#b9c5d3 transparent}
dialog.detail-sheet .dialog-content{min-height:100%}
dialog.detail-sheet .close{top:18px;right:20px}
dialog.detail-sheet h2{padding-right:0;text-align:center}
dialog.dialog-standard .dialog-content,
dialog.dialog-standard .task-form-shell,
dialog.detail-sheet #dialogBody{scrollbar-width:none;-ms-overflow-style:none}
dialog.dialog-standard .dialog-content::-webkit-scrollbar,
dialog.dialog-standard .task-form-shell::-webkit-scrollbar,
dialog.detail-sheet #dialogBody::-webkit-scrollbar{display:none;width:0;height:0}
@media(max-width:700px){
  dialog.dialog-standard{width:calc(100% - 20px);max-height:94vh;border-radius:16px}
  dialog.dialog-standard #dialogBody{max-height:94vh}
  dialog.dialog-standard .dialog-content{max-height:94vh;padding:25px 20px 22px}
  dialog.dialog-standard h2{font-size:22px}
  dialog.dialog-standard .actions{bottom:-22px;margin:20px -20px -22px;padding:14px 20px 22px}
  dialog.dialog-standard .actions .btn{flex:1;min-width:0}
  dialog.detail-sheet #dialogBody{padding:22px}
  dialog.dialog-standard:has(.record-form-shell) .record-form-shell{padding-bottom:22px}
  dialog.dialog-standard:has(.record-form-shell) .record-form .actions{margin:20px -20px 0;padding:14px 20px 0;min-height:64px}
}
.auth-inline-actions{display:flex;justify-content:flex-end;margin-top:12px}
.auth-inline-actions .textlink{font-size:13px;font-weight:700;color:#376ce8}
.auth-success{margin:16px 0 0;padding:12px 14px;border:1px solid #b9e8d4;border-radius:10px;background:#f0fff8;color:#16704d;font-size:13px;line-height:1.55}
.pmo-session-layout{display:grid;grid-template-columns:220px minmax(0,1fr);border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#fbfcfe}.pmo-session-list{padding:12px;border-right:1px solid var(--line);background:#f7f9fc;min-width:0}.pmo-session-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;color:#425a78;font-size:13px}.pmo-session-head .btn{min-height:31px;padding:4px 8px;font-size:11px}.pmo-session{width:100%;display:block;text-align:left;border:1px solid transparent;background:transparent;border-radius:7px;padding:10px;margin:4px 0;color:#425a78}.pmo-session:hover,.pmo-session.selected{background:#eaf0ff;border-color:#cad9fa;color:#214fce}.pmo-session strong{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pmo-session small{display:block;margin-top:4px;color:#8b9aae;font-size:10px}.pmo-session-list .empty{padding:18px 8px;border:0;font-size:11px}.pmo-session-list .empty strong{font-size:13px}.pmo-chat{min-width:0;background:white}.pmo-chat-heading{display:flex;justify-content:space-between;gap:10px;align-items:start;padding:15px 18px;border-bottom:1px solid var(--line)}.pmo-chat-heading strong{font-size:14px}.pmo-chat-heading .sub{font-size:11px;margin-top:3px}.pmo-messages{height:360px;overflow-y:auto;padding:18px}.pmo-message{padding:12px 14px;border:1px solid #e5ebf3;border-radius:9px;margin-bottom:12px;background:#fff}.pmo-message.user{background:#f1f5ff;border-color:#d8e3fc}.pmo-message-meta{display:flex;align-items:center;gap:8px;color:#536b88;font-size:12px}.pmo-message-meta time{font-size:10px;color:#97a4b5}.pmo-message-meta .tag{font-size:10px;padding:2px 6px}.pmo-message p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7;margin:7px 0 0;font-size:14px}.pmo-chat>.pmo-prompts{padding:0 18px 12px}.pmo-chat>form{padding:0 18px 18px}.pmo-thinking{display:flex;align-items:center;gap:8px;color:#356cef;font-size:12px;padding:9px 2px}.pmo-thinking .pulse{display:inline-block;width:7px;height:7px;animation:pmoPulse 1s infinite alternate}@keyframes pmoPulse{from{opacity:.35;transform:scale(.8)}to{opacity:1;transform:scale(1.2)}}
@media(max-width:700px){.pmo-session-layout{grid-template-columns:1fr}.pmo-session-list{border-right:0;border-bottom:1px solid var(--line);display:flex;gap:6px;overflow-x:auto;align-items:center}.pmo-session-head{display:block;min-width:94px;margin:0}.pmo-session-head .btn{margin-top:5px}.pmo-session{min-width:145px;margin:0}.pmo-session-list>.empty{min-width:180px}.pmo-messages{height:330px;padding:14px}.pmo-chat-heading,.pmo-chat>form{padding-left:14px;padding-right:14px}.pmo-chat>.pmo-prompts{padding-left:14px;padding-right:14px}}

/* AI-MARK[PMO-UI:full-width-inbox] 2026-09-16 10:20 (GMT+7) - Make project
   collaboration use the full workspace canvas with a resilient inbox, spacious
   message area and accessible member picker at desktop and mobile widths. */
body.chat-page-mode .main>main{max-width:none;padding:26px 28px 34px}
.chat-workspace-page{width:100%;min-width:0}
.chat-workspace-page .pagehead{margin-bottom:18px}
.chat-workspace-page .enterprise-chat-layout{height:calc(100vh - 190px);min-height:650px;grid-template-columns:330px minmax(0,1fr);box-shadow:0 20px 55px #18385c12}
.chat-workspace-page .chat-inbox{max-height:none;min-height:0}
.chat-workspace-page .chat-conversation{min-height:0}
.chat-workspace-page .chat-messages{max-height:none;min-height:0}
.chat-workspace-page .chat-composer{background:#fff}
.chat-list-empty{margin:10px 15px 17px;color:#97a5b7;font-size:12px;line-height:1.5}
.chat-loading{display:flex;align-items:center;gap:8px;color:#6e819a;font-size:11px}
.chat-loading .pulse{width:7px;height:7px;border-radius:50%;background:#4c7bef;animation:chatPulse 1s infinite alternate}
@keyframes chatPulse{from{opacity:.35;transform:scale(.8)}to{opacity:1;transform:scale(1.1)}}
.chat-new-button{display:grid;place-items:center;width:34px;height:34px;border:1px solid #d3e0f1;border-radius:9px;background:#fff;color:#356cef}
.chat-new-button:hover{background:#edf3ff;border-color:#a9c4fa}
.chat-header-button{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:8px 11px;border:1px solid #dce5ef;border-radius:8px;background:#fff;color:#4d6582;font-size:11px;font-weight:700}
.chat-header-button:hover{border-color:#a9c4fa;background:#f4f8ff;color:#285dc2}
.chat-header-button .icon-svg{width:15px;height:15px}
.chat-bubble{white-space:pre-wrap;overflow-wrap:anywhere;border:1px solid #e1e8f1;border-radius:4px 13px 13px 13px;background:#fff;color:#304b6c;padding:10px 13px;font-size:13px;line-height:1.65;box-shadow:0 2px 6px #17365c08}
.chat-message.mine .chat-bubble{border-color:#c7d9fb;border-radius:13px 4px 13px 13px;background:#eaf2ff;color:#254e88}
.chat-user-dialog{min-width:min(560px,100%)}
.chat-dialog-heading{display:flex;align-items:flex-start;gap:13px;margin-bottom:18px}
.chat-dialog-icon{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:12px;background:#eaf1ff;color:#356cef}
.chat-dialog-icon .icon-svg{width:20px;height:20px}
.chat-picker-search{display:flex;align-items:center;gap:8px;margin:0 0 12px;padding:0 11px;border:1px solid #dce5ef;border-radius:9px;background:#f9fbfe;color:#7890ad}
.chat-picker-search:focus-within{border-color:#7da1ef;box-shadow:0 0 0 4px #5f8cf11c}
.chat-picker-search .icon-svg{width:15px;height:15px;flex:0 0 auto}
.chat-picker-search input{width:100%;min-height:40px;margin:0;padding:0!important;border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important}
.chat-user-results{display:grid;gap:5px;max-height:310px;overflow:auto;padding:3px 1px}
.chat-user-option{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;padding:8px 10px;border:1px solid transparent;border-radius:9px;background:#f8fafd;color:#3b5775;text-align:left}
.chat-user-option:hover{border-color:#cbdcf9;background:#edf3ff}
.chat-user-option strong,.chat-user-option small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-user-option strong{color:#284a71;font-size:12px}
.chat-user-option small{margin-top:3px;color:#8495a9;font-size:10px}
.chat-user-avatar{display:grid;place-items:center;flex:0 0 31px;width:31px;height:31px;border-radius:9px;background:#e7effb;color:#3d6aba;font-size:10px;font-weight:800}
.chat-user-option>span:nth-child(2){min-width:0;flex:1}
.chat-user-arrow{color:#5481d2;font-size:15px}
.chat-user-check{cursor:pointer}
.chat-user-check input{flex:0 0 auto;width:16px;height:16px;min-height:0;margin:0}
.chat-member-list{display:grid;gap:6px;max-height:340px;overflow:auto}
.chat-member-row{display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px solid #e6edf5;border-radius:9px;background:#fafcff}
.chat-member-row>span:nth-child(2){min-width:0;flex:1}
.chat-member-row strong,.chat-member-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-member-row strong{color:#284a71;font-size:12px}.chat-member-row small{margin-top:3px;color:#8495a9;font-size:10px}
@media(max-width:980px){body.chat-page-mode .main>main{padding:22px 20px 30px}.chat-workspace-page .enterprise-chat-layout{height:auto;min-height:0}.chat-workspace-page .chat-inbox{max-height:390px}.chat-workspace-page .chat-messages{min-height:420px;max-height:calc(100vh - 420px)}}
@media(max-width:700px){body.chat-page-mode .main>main{padding:18px 12px 25px}.chat-workspace-page .pagehead .actions{display:grid;grid-template-columns:1fr 1fr}.chat-workspace-page .pagehead .actions .btn{width:100%;font-size:12px}.chat-workspace-page .enterprise-chat-layout{border-radius:12px}.chat-workspace-page .chat-inbox{max-height:360px}.chat-workspace-page .chat-conversation-header{padding:14px;gap:13px}.chat-workspace-page .chat-conversation-actions{width:100%;overflow:auto}.chat-workspace-page .chat-header-button{flex:1;justify-content:center;white-space:nowrap}.chat-workspace-page .chat-messages{min-height:360px;max-height:none;padding:17px 12px}.chat-workspace-page .chat-composer{padding:12px}.chat-workspace-page .chat-composer-footer{align-items:stretch;flex-direction:column}.chat-workspace-page .chat-composer-footer .btn{width:100%}.chat-user-dialog{width:calc(100vw - 28px)!important}.chat-user-results{max-height:280px}}

/* AI-MARK[PMO-UI:centered-dialog-actions] 2026-09-16 01:27 (GMT+7) - Center every PMO popup action group and standalone form CTA, including OTP/auth controls, while keeping the close affordance in its standard top-right position. | rel: PMO-UI:dialog-system, PMO-UI:local-email-auth */
dialog.dialog-standard .actions,
dialog.detail-sheet .actions,
.task-form-actions,
.auth-otp-actions,
.auth-inline-actions{justify-content:center}
dialog.dialog-standard .actions .btn,
dialog.detail-sheet .actions .btn,
.task-form-actions .btn{flex:0 0 auto}
dialog.dialog-standard form>button.btn,
dialog.detail-sheet form>button.btn,
.auth-submit{display:flex;width:min(100%,360px);margin-left:auto;margin-right:auto}
.auth-otp-actions{align-items:center}
@media(max-width:700px){
  dialog.dialog-standard .actions,
  dialog.detail-sheet .actions,
  .task-form-actions{flex-wrap:wrap}
  dialog.dialog-standard .actions .btn,
  dialog.detail-sheet .actions .btn,
  .task-form-actions .btn{min-width:120px}
  .auth-submit{width:100%}
}

/* AI-MARK[PMO-UI:localized-document-library] 2026-09-16 01:45 (GMT+7) - Bố cục thư viện tài liệu ưu tiên khoảng thở, tự xuống dòng tên dài và giữ nút thao tác dễ quét trên desktop/mobile. | rel: PMO-UI:localized-document-library */
.documents-page .pagehead>div:first-child{min-width:0}.documents-page .pagehead h1,.documents-page .pagehead .sub{overflow-wrap:anywhere}.documents-page .pagehead .sub{max-width:760px}
.documents-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 18px}.documents-summary-card{display:flex;align-items:center;gap:12px;min-width:0;padding:16px 17px;border:1px solid #dce6f1;border-radius:14px;background:linear-gradient(145deg,#fff 0%,#f8fbff 100%);box-shadow:0 8px 22px #17385b08}.documents-summary-card>div{min-width:0}.documents-summary-card strong,.documents-summary-card span{display:block}.documents-summary-card strong{color:#193453;font-size:25px;line-height:1.05;letter-spacing:-.03em}.documents-summary-card div>span{margin-top:5px;color:#7186a1;font-size:12px;line-height:1.35;overflow-wrap:anywhere}.documents-summary-icon{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:11px;background:#eaf1ff;color:#376fee}.documents-summary-icon.is-ready{background:#e5f8f0;color:#15936d}.documents-summary-icon.is-waiting{background:#fff3df;color:#c17a16}.documents-summary-icon .icon-svg{width:19px;height:19px}
.documents-table-panel{padding:0;overflow:hidden}.documents-table-wrap{width:100%;overflow-x:auto}.documents-table{width:100%;min-width:1080px;border-collapse:separate;border-spacing:0}.documents-table th{padding:14px 18px;border-bottom:1px solid #dfe7f0;background:#f8fafd;color:#7d91aa;font-size:11px;font-weight:800;letter-spacing:.035em;line-height:1.35;text-align:left;white-space:nowrap}.documents-table td{padding:16px 18px;border-bottom:1px solid #e8eef5;color:#294766;font-size:13px;vertical-align:top;white-space:normal}.documents-table tbody tr:last-child td{border-bottom:0}.documents-table tbody tr:hover{background:#fbfdff}.documents-table th:first-child,.documents-table td:first-child{padding-left:22px}.documents-table th:last-child,.documents-table td:last-child{padding-right:22px;text-align:center}.documents-table td:nth-child(2),.documents-table td:nth-child(4),.documents-table td:nth-child(5),.documents-table td:nth-child(6){white-space:nowrap}.document-name{display:flex;align-items:flex-start;gap:11px;min-width:250px;max-width:390px}.document-name>div{min-width:0}.document-name .fileicon{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;margin:0;border-radius:10px;background:#edf3fc;color:#4773b8;font-size:10px;font-weight:800;letter-spacing:.04em}.document-title{display:block;width:100%;max-width:100%;padding:0;color:#1d3d61;font-size:13px;font-weight:800;line-height:1.45;text-align:left;white-space:normal;overflow-wrap:anywhere}.document-name small{display:block;margin-top:5px;color:#8497ad;font-size:11px;line-height:1.45;overflow-wrap:anywhere}.document-name .document-filename{color:#98a8ba}.document-version{display:inline-flex;min-width:34px;padding:5px 8px;border:1px solid #dce7f4;border-radius:7px;background:#f7faff;color:#3a659d;font-size:12px;font-weight:800}.document-value{display:block;max-width:170px;line-height:1.45;overflow-wrap:anywhere}.documents-table .tag{display:inline-flex;max-width:170px;white-space:normal;text-align:center;line-height:1.3}.document-date{display:block;max-width:155px;line-height:1.45;white-space:normal}.document-actions{display:flex;align-items:center;justify-content:center;gap:7px;min-width:180px;flex-wrap:wrap}.document-actions .btn{min-height:34px;padding:7px 10px;border-radius:8px;font-size:11px}.document-actions .btn .icon-svg{width:14px;height:14px}.document-actions .btn-label{white-space:nowrap}.document-action-download:disabled{border-color:#e1e8f1;background:#f5f7fa;color:#a0adbc;cursor:not-allowed;opacity:1}.document-action-download:disabled .icon-svg{color:#a0adbc}.documents-references{padding:24px}.documents-references .panelhead{align-items:flex-start;margin-bottom:3px}.documents-references .panelhead>div{min-width:0}.documents-references h2{overflow-wrap:anywhere}.documents-references .sub{max-width:780px;line-height:1.6}.reference-count{flex:0 0 auto;padding:6px 10px;border:1px solid #dce7f4;border-radius:99px;background:#f8fbff;color:#5c78a0;font-size:11px;font-weight:800}.document-reference-card{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:13px;padding:15px 0;border-top:1px solid #e6edf5}.document-reference-card .fileicon{display:grid;place-items:center;width:40px;height:40px;margin:0;border-radius:10px;background:#edf3fc;color:#4773b8;font-size:10px;font-weight:800}.document-reference-name{min-width:0}.document-reference-name strong{display:block;color:#203f62;font-size:13px;font-weight:750;line-height:1.45;overflow-wrap:anywhere}.document-reference-name small{display:block;margin-top:5px;color:#8799ad;font-size:11px;line-height:1.5;overflow-wrap:anywhere}.reference-state{padding:5px 9px;border-radius:7px;background:#f4f7fb;color:#7890aa;font-size:10px;font-weight:750;white-space:nowrap}.documents-security-note{margin:18px 0 0;padding:12px 14px;border:1px solid #dce8f7;border-radius:10px;background:#f5f9ff;color:#627b9a;font-size:12px;line-height:1.6;overflow-wrap:anywhere}
@media(max-width:900px){.documents-summary{grid-template-columns:1fr}.documents-summary-card{padding:14px 15px}.documents-references{padding:20px}.document-reference-card{grid-template-columns:40px minmax(0,1fr)}.reference-state{grid-column:2;justify-self:start}}
@media(max-width:700px){.documents-page .pagehead{align-items:stretch;gap:16px}.documents-page .pagehead .actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.documents-page .pagehead .actions .btn{width:100%;font-size:11px}.documents-table th,.documents-table td{padding-left:14px;padding-right:14px}.documents-table th:first-child,.documents-table td:first-child{padding-left:16px}.documents-table th:last-child,.documents-table td:last-child{padding-right:16px}.documents-references{padding:17px}.documents-references .panelhead{display:block}.reference-count{display:inline-block;margin-top:10px}.document-reference-card{align-items:start}}

/* AI-MARK[QAI-UI:document-hub] 2026-09-28 22:50 (GMT+7) - Give the shared document hub a single visual hierarchy: shared-space context, searchable inventory, compact scope chips and an honest source catalog that stays readable on mobile. | rel: QAI-UI:document-upload-classification, PMO-UI:localized-document-library */
.documents-hub-intro{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 0 16px;padding:22px 24px;background:linear-gradient(110deg,#f4f8ff 0%,#fbfdff 72%);border-color:#d5e4f5}.documents-hub-intro-copy{min-width:0}.documents-hub-kicker{display:block;margin-bottom:6px;color:#6c8eb5;font-size:10px;font-weight:850;letter-spacing:.15em;line-height:1.3}.documents-hub-intro h2{margin:0;color:#1b3859;font-size:19px;line-height:1.25}.documents-hub-intro p{max-width:760px;margin:7px 0 0;color:#6e829c;font-size:12px;line-height:1.6}.documents-hub-legend{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;max-width:390px}.document-hub-pill{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid #dbe7f4;border-radius:999px;background:#fff;color:#647c98;font-size:10px;font-weight:800;white-space:nowrap}.document-hub-pill .icon-svg{width:14px;height:14px}.document-hub-pill.is-shared{border-color:#bfe6d6;background:#effbf6;color:#197c5c}.documents-summary{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:16px}.documents-summary-card{align-items:flex-start;min-height:92px}.documents-summary-card>div{flex:1;min-width:0}.documents-summary-card div>span{font-weight:750}.documents-summary-card small{display:block;margin-top:4px;color:#9aabbd;font-size:10px;line-height:1.35;overflow-wrap:anywhere}.documents-summary-card.is-shared{border-color:#cfeade;background:linear-gradient(145deg,#fff 0%,#f2fbf7 100%)}.documents-toolbar{margin:0 0 14px;padding:18px 20px}.documents-toolbar-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.documents-toolbar-head>div{min-width:0}.documents-toolbar-head h2{margin:0;color:#234565;font-size:16px}.documents-toolbar-head .sub{margin-top:4px;line-height:1.5}.documents-toolbar-controls{display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:10px}.documents-search{display:flex;align-items:center;gap:8px;min-width:0;padding:0 12px;border:1px solid #d8e4f1;border-radius:9px;background:#fff;color:#7090b1}.documents-search:focus-within{border-color:#80aaf0;box-shadow:0 0 0 3px #dce9ff}.documents-search .icon-svg{width:16px;height:16px;flex:0 0 auto}.documents-search input{width:100%;min-width:0;border:0!important;outline:0!important;padding:11px 0!important;background:transparent!important;color:#294766;font-size:12px}.documents-filter{display:flex;align-items:center;gap:8px;min-width:0;padding:0 11px;border:1px solid #d8e4f1;border-radius:9px;background:#fff}.documents-filter span{flex:0 0 auto;color:#8297af;font-size:11px;font-weight:750}.documents-filter select{width:100%;min-width:0;border:0;background:transparent;color:#2c4c6d;font-size:12px;font-weight:750;outline:0}.document-party{display:inline-flex;align-items:center;gap:6px;max-width:180px;color:#607b99;font-size:11px;font-weight:750;line-height:1.35;white-space:normal}.document-party .icon-svg{width:15px;height:15px;flex:0 0 auto;color:#6a87aa}.document-party:has(.icon-svg){overflow-wrap:anywhere}.documents-table td:nth-child(2){white-space:normal}.documents-references{padding:22px}.documents-references .panelhead{margin-bottom:8px}.documents-references .panelhead h2{margin-top:2px}.documents-references .documents-hub-kicker{margin-bottom:4px}.document-reference-card{grid-template-columns:40px minmax(0,1fr) auto auto;gap:13px}.document-reference-card .btn{min-height:32px;padding:7px 10px;border-radius:8px;font-size:11px;white-space:nowrap}.document-reference-name small{max-width:780px}.documents-security-note{margin-top:16px}
@media(max-width:1100px){.documents-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.documents-hub-intro{align-items:flex-start;flex-direction:column}.documents-hub-legend{justify-content:flex-start;max-width:none}.document-reference-card{grid-template-columns:40px minmax(0,1fr) auto}}
@media(max-width:700px){.documents-toolbar{padding:16px}.documents-toolbar-head{display:block}.documents-toolbar-head .reference-count{margin-top:10px}.documents-toolbar-controls{grid-template-columns:1fr}.documents-search,.documents-filter{min-height:42px}.documents-summary{grid-template-columns:1fr 1fr;gap:9px}.documents-summary-card{min-height:82px;padding:13px}.documents-summary-card strong{font-size:22px}.documents-hub-intro{padding:18px}.documents-hub-intro h2{font-size:17px}.document-reference-card{grid-template-columns:34px minmax(0,1fr);gap:10px}.document-reference-card .fileicon{width:34px;height:34px}.document-reference-card .reference-state,.document-reference-card .btn{grid-column:2;justify-self:start}.document-reference-card .btn{margin-top:2px}.documents-references{padding:17px}}
@media(max-width:430px){.documents-summary{grid-template-columns:1fr}.documents-hub-legend{display:grid;justify-content:stretch;width:100%}.document-hub-pill{white-space:normal}.documents-page .pagehead .actions{grid-template-columns:1fr}.documents-page .pagehead .actions .btn{width:100%}}
/* AI-MARK[PMO-UI:task-management-editable-columns] 2026-09-29 (GMT+7) - Give
   the task list a dedicated action zone and a stable column rhythm. Editing
   still opens the audited record form; this layer only improves discovery and
   prevents status/actions from colliding with long task content. */
.task-list-panel{padding:0;overflow:hidden}.task-list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 20px;border-bottom:1px solid #e5ebf3;background:linear-gradient(100deg,#f7faff,#fff)}.task-list-toolbar>div{min-width:0}.task-list-toolbar strong{display:block;color:#294968;font-size:13px}.task-list-toolbar span{display:block;margin-top:4px;color:#7f92a9;font-size:11px;line-height:1.5}.task-list-count{flex:0 0 auto;padding:6px 10px;border:1px solid #dce7f4;border-radius:999px;background:#fff;color:#55749a!important;font-weight:800;white-space:nowrap}.task-table-wrap{overflow-x:auto}.task-management-table{min-width:1260px;table-layout:fixed}.task-management-table th{padding:13px 12px;white-space:normal;line-height:1.3}.task-management-table td{padding:15px 12px;vertical-align:top;white-space:normal;line-height:1.45;overflow-wrap:anywhere}.task-management-table th:nth-child(1),.task-management-table td:nth-child(1){width:23%}.task-management-table th:nth-child(2),.task-management-table td:nth-child(2){width:11%}.task-management-table th:nth-child(3),.task-management-table td:nth-child(3){width:17%}.task-management-table th:nth-child(4),.task-management-table td:nth-child(4),.task-management-table th:nth-child(5),.task-management-table td:nth-child(5){width:12%}.task-management-table th:nth-child(6),.task-management-table td:nth-child(6){width:11%}.task-management-table th:nth-child(7),.task-management-table td:nth-child(7){width:8%;white-space:nowrap}.task-management-table th:nth-child(8),.task-management-table td:nth-child(8){width:16%;text-align:center}.task-management-table td:nth-child(1) .rowbutton,.task-management-table td:nth-child(3) .rowbutton{display:block;max-width:100%;overflow-wrap:anywhere;line-height:1.45}.task-management-table .status-cell{display:flex;align-items:flex-start;gap:5px;flex-wrap:wrap}.task-table-actions{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap}.task-table-actions .table-action,.taskcard-actions .table-action{min-height:32px;padding:7px 9px;border-radius:8px;font-size:11px;white-space:nowrap}.task-table-actions .table-action .icon-svg,.taskcard-actions .table-action .icon-svg{width:14px;height:14px}.task-table-actions .table-action-secondary{color:#58769a;background:#fff}.task-table-actions .table-action:disabled{opacity:.65;cursor:not-allowed}.task-editor-context-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:0 16px}.task-editor-context-grid>label{min-width:0}.taskcard-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:12px}.taskcard-actions .status-cell{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.taskcard-actions .table-action{margin-left:auto}
@media(max-width:900px){.task-management-table{min-width:1120px}.task-list-toolbar{align-items:flex-start;flex-direction:column;gap:10px}.task-editor-context-grid{grid-template-columns:1fr}}
@media(max-width:700px){.task-list-toolbar{padding:15px 16px}.task-management-table th,.task-management-table td{padding-left:10px;padding-right:10px}.task-table-actions{justify-content:flex-start}.taskcard-actions .table-action{margin-left:0}.task-editor-context-grid{grid-template-columns:1fr}}

.feng-agent-badge{display:inline-flex;align-items:center;margin-left:auto;padding:6px 9px;border:1px solid #cddcf8;border-radius:999px;background:#f1f6ff;color:#3565bd;font:700 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em;white-space:nowrap}
.feng-agent-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:-12px 0 18px;padding:12px 14px;border:1px solid #dce7f7;border-radius:9px;background:linear-gradient(100deg,#f4f8ff,#f7fbff);color:#46617f;font-size:12px;line-height:1.55}
.feng-agent-summary strong{color:#294968;font-size:13px;font-weight:600}
.feng-agent-summary span{color:#7a8ea6;white-space:nowrap}
.feng-feature-groups{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0 2px}
.feng-feature-groups span{padding:5px 8px;border:1px solid #dbe5f1;border-radius:6px;background:#f8fafd;color:#607994;font-size:11px}
/* AI-MARK[PMO-UI:feng-ying-operating-model] 2026-09-25 (GMT+7) - Give the
   people-aware operating model a calm visual hierarchy beside the chat, so
   users understand how Feng Ying connects people, tasks, milestones and next
   actions before they ask a question. | rel: PMO-AI:acl-grounded-workforce-summary */
.feng-operating-model{margin-top:14px;padding:16px 17px;border:1px solid #d9e5f4;border-radius:12px;background:linear-gradient(145deg,#f8fbff 0%,#f1f6ff 100%);box-shadow:0 9px 24px rgba(35,75,135,.06)}
.feng-operating-model h3{margin:7px 0 7px;color:#223e61;font-size:16px;letter-spacing:-.01em}
.feng-operating-model p{margin:0;color:#5f7592;font-size:12px;line-height:1.6}
.feng-operating-model small{display:block;margin-top:12px;padding-top:10px;border-top:1px solid #dce7f5;color:#8193aa;font-size:11px;line-height:1.5}
.feng-operating-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:13px}
.feng-operating-steps span{padding:7px 8px;border:1px solid #d7e3f2;border-radius:7px;background:#fff;color:#426184;font-size:11px;font-weight:700}
.source-pill.static{display:inline-flex;align-items:center;cursor:default;background:#f8fbff;color:#607a99}
@media(max-width:700px){.feng-agent-badge{margin-left:0}.feng-agent-summary{display:block}.feng-agent-summary span{display:block;margin-top:5px;white-space:normal}.feng-feature-groups span{font-size:10px}.feng-operating-model{padding:14px}.feng-operating-steps span{font-size:10px}}

/* AI-MARK[PMO-UI:feng-ying-follow-ups] 2026-09-16 (GMT+7) - Keep
   Helen-inspired follow-up questions readable and actionable without turning
   the response into a dense technical block. | rel: PMO-AI:helen-inspired-response-contract, pmo-hub.js */
.pmo-suggestions{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:14px;padding-top:12px;border-top:1px solid #edf1f6}.pmo-suggestions-label{flex:0 0 100%;color:#6f84a0;font-size:11px;font-weight:700}.pmo-suggestion{border:1px solid #cfddf0;border-radius:999px;background:#f7faff;color:#365c8e;padding:7px 11px;font-size:12px;line-height:1.35;text-align:left}.pmo-suggestion:hover,.pmo-suggestion:focus-visible{border-color:#8eacf0;background:#eef4ff;color:#2559c6;outline:0}

/* AI-MARK[PMO-UI:workspace-auth-background] 2026-09-16 11:23 (GMT+7) - Use the supplied 3D collaboration artwork as a full-bleed auth background, with a measured contrast veil and glass card so the illustration remains visible while the new brand text stays clear on desktop and mobile. | rel: PMO-UI:collaborative-project-workspace-auth, PMO-BE:public-namespace */
body.auth-boot,
body.auth-locked{
  min-height:100vh;
  background-color:#173b6b;
  background-image:linear-gradient(90deg,rgba(5,24,57,.84) 0%,rgba(7,31,69,.62) 32%,rgba(255,255,255,.10) 70%,rgba(255,255,255,.24) 100%),url('/pmo/assets/collaborative-workspace-bg.jpg');
  background-position:center center;
  background-repeat:no-repeat;
  background-size:cover;
}
body.auth-boot .main>main,
body.auth-locked .main>main{
  background:transparent;
}
body.auth-boot .main>main::before,
body.auth-locked .main>main::before,
body.auth-boot .main>main::after,
body.auth-locked .main>main::after{
  display:none;
}
.auth-layout{
  width:min(1180px,100%);
  grid-template-columns:minmax(0,1fr) minmax(420px,480px);
  gap:clamp(42px,6vw,88px);
}
.auth-intro{
  max-width:620px;
  padding:30px clamp(22px,3vw,46px) 30px 30px;
  border-radius:28px;
  background:linear-gradient(90deg,rgba(5,23,54,.82) 0%,rgba(5,23,54,.54) 65%,rgba(5,23,54,0) 100%);
  color:#fff;
  text-shadow:0 2px 18px rgba(3,18,42,.38);
}
.auth-brand{color:#fff}
.auth-brand-mark{background:linear-gradient(145deg,#5d9bff,#2859c6);color:#e3fff5;box-shadow:0 10px 24px rgba(14,47,110,.42)}
.auth-brand strong{color:#fff;font-size:18px;letter-spacing:-.01em}
.auth-brand small{color:#d7e8ff}
.auth-kicker{border-color:rgba(255,255,255,.38);background:rgba(255,255,255,.16);color:#fff}
.auth-intro h1{max-width:600px;color:#fff;font-size:clamp(48px,5.3vw,76px);font-weight:800;line-height:1.02;letter-spacing:-.06em;text-shadow:0 4px 24px rgba(3,18,42,.46)}
.auth-intro>p{max-width:510px;color:#f1f7ff;font-size:18px;font-weight:600;line-height:1.65}
.auth-principles{color:#fff}
.auth-principles>span>span{color:#f0f6ff}
.auth-principles b{border-color:rgba(255,255,255,.40);background:rgba(255,255,255,.18);color:#fff;box-shadow:0 5px 14px rgba(5,23,54,.16)}
.auth-card{border-color:rgba(255,255,255,.82);background:rgba(255,255,255,.86);box-shadow:0 28px 80px rgba(4,22,52,.28),0 2px 10px rgba(4,22,52,.10);backdrop-filter:blur(18px) saturate(120%);-webkit-backdrop-filter:blur(18px) saturate(120%)}
.auth-switcher{background:rgba(236,243,251,.72);border-color:rgba(255,255,255,.78)}
.auth-tab.active{background:rgba(255,255,255,.96);color:#1f559d}
.auth-heading h2{color:#132f50}
.auth-heading p{color:#58718f}
.auth-heading p strong{color:#214b80}
.auth-icon{border-color:#d7e7ff;background:rgba(236,244,255,.90);color:#2f70df}
.auth-card label{color:#385a7d}
.auth-card input{border-color:#d2e0ef;background:rgba(255,255,255,.90)}
.auth-card input:focus{border-color:#4b83ee;box-shadow:0 0 0 4px rgba(75,131,238,.18)}
.auth-note{border-left-color:#4a81e8;background:rgba(239,246,255,.82);color:#426587}
.auth-footnote{color:#667f9c}
.auth-error{background:rgba(255,244,244,.94)}
.auth-success{background:rgba(240,255,248,.92)}
@media(max-width:900px){
  body.auth-boot,body.auth-locked{background-position:58% center}
  body.auth-boot .main>main,body.auth-locked .main>main{align-items:start}
  .auth-layout{width:min(700px,100%);grid-template-columns:1fr;gap:30px}
  .auth-intro{max-width:none;padding:26px 28px;background:linear-gradient(90deg,rgba(5,23,54,.82) 0%,rgba(5,23,54,.58) 76%,rgba(5,23,54,.18) 100%)}
  .auth-intro h1{font-size:clamp(44px,8vw,66px)}
}
@media(max-width:560px){
  body.auth-boot,body.auth-locked{background-position:61% center}
  .auth-intro{padding:23px 20px;border-radius:22px}
  .auth-brand strong{font-size:16px}
  .auth-intro h1{font-size:42px;line-height:1.04}
  .auth-intro>p{font-size:16px;line-height:1.55}
  .auth-card{background:rgba(255,255,255,.92)}
}

/* AI-MARK[PMO-UI:auth-pending-rhythm] 2026-09-25 - Keep the pending-access
   state compact and intentional: one primary retry action, one quiet exit
   link, bounded card width, and proportional spacing across viewports. */
.auth-pending-screen{grid-template-columns:minmax(0,1fr) minmax(420px,460px);gap:clamp(34px,5vw,72px)}
.auth-pending-screen .auth-card{padding:clamp(26px,3vw,34px)}
.auth-pending-screen .auth-heading{margin-bottom:20px}
.auth-pending-screen .auth-heading h2{max-width:330px}
.auth-pending-screen .auth-heading p{max-width:360px;line-height:1.55}
.auth-pending-screen .auth-pending{padding:16px 17px;border-radius:12px;line-height:1.55}
.auth-pending-screen .auth-pending p{margin-top:6px}
.auth-pending-screen .auth-pending dl{margin-top:14px;gap:6px 12px}
.auth-pending-actions{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:22px}
.auth-pending-actions .btn{min-width:190px}
.auth-pending-actions .textlink{min-height:42px;padding:0 4px;color:#6d83a0;font-size:12px;font-weight:700}
.auth-pending-actions .textlink:hover,.auth-pending-actions .textlink:focus-visible{color:#2d61c2}
@media(max-width:900px){.auth-pending-screen{grid-template-columns:1fr;gap:26px}.auth-pending-screen .auth-card{max-width:520px;width:100%;margin:0 auto}}
@media(max-width:560px){.auth-pending-actions{align-items:stretch;flex-direction:column;gap:8px}.auth-pending-actions .btn{width:100%}.auth-pending-actions .textlink{justify-content:center}}
/* AI-MARK[PMO-UI:dependency-pickers] 2026-09-25 — Make long dependency
   lists searchable and separate Phase/Task discovery without changing the
   existing form payload or the responsive dialog layout. */
.dependency-picker{margin:18px 0 0;padding:16px;border:1px solid var(--line);border-radius:12px;background:#fbfdff;min-width:0}
.dependency-picker legend{padding:0 6px;color:var(--ink);font-size:14px;font-weight:800}
.dependency-picker-intro{margin:0 0 12px;color:var(--muted);font-size:12px;line-height:1.5}
.dependency-picker-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.dependency-picker-column,.dependency-picker-other{min-width:0}
.dependency-picker-label{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:0 0 7px;color:#2b4d72;font-size:13px;font-weight:800}
.dependency-picker-label small{color:var(--muted);font-size:11px;font-weight:650;white-space:nowrap}
.dependency-search{width:100%;min-height:38px;margin:0 0 7px;padding:8px 10px;border:1px solid #cbd9ea;border-radius:8px;background:#fff;color:var(--ink);font:inherit;font-size:12px}
.dependency-search:focus{border-color:#4b83ee;box-shadow:0 0 0 3px rgba(75,131,238,.14);outline:0}
.dependency-picker select[multiple]{width:100%;min-height:152px;height:auto;margin:0;padding:6px;border:1px solid #cbd9ea;border-radius:8px;background:#fff;color:#294765;font-size:12px;line-height:1.35}
.dependency-picker select[multiple] option{padding:6px 5px;border-radius:5px}
.dependency-picker select[multiple] option:checked{background:linear-gradient(#e8f1ff,#e8f1ff);color:#174f9b;font-weight:750}
.dependency-picker-other{margin-top:14px}
.dependency-picker-other select[multiple]{min-height:94px}
.dependency-picker .field-help{margin:10px 0 0}
@media(max-width:700px){.dependency-picker-grid{grid-template-columns:1fr}.dependency-picker select[multiple]{min-height:132px}}
/* AI-MARK[PMO-UI:searchable-record-pickers] 2026-09-29 (GMT+7) — Keep
   searchable selections compact, keyboard-visible and aligned in every
   editor while preserving the native form control for the server contract. */
.searchable-multi-picker{display:grid;gap:8px;min-width:0}
.searchable-multi-label{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:0;color:#2b4d72;font-size:13px;font-weight:800}
.searchable-multi-label small{color:var(--muted);font-size:11px;font-weight:650;white-space:nowrap}
.searchable-multi-search{box-sizing:border-box;width:100%;min-height:40px;padding:8px 10px;border:1px solid #cbd9ea;border-radius:8px;background:#fff;color:var(--ink);font:inherit;font-size:12px}
.searchable-multi-search:focus{border-color:#4b83ee;box-shadow:0 0 0 3px rgba(75,131,238,.14);outline:0}
.searchable-multi-selection{display:flex;flex-wrap:wrap;gap:6px;min-height:34px;padding:4px;border:1px solid #e1eaf4;border-radius:8px;background:#f8fbff}
.searchable-multi-chip{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:6px 8px;border:1px solid #bcd1f1;border-radius:999px;background:#eaf2ff;color:#2458a7;font:inherit;font-size:11px;line-height:1.25;text-align:left}
.searchable-multi-chip .icon-svg{width:12px;height:12px;flex:0 0 auto}
.searchable-multi-options{display:grid;gap:4px;max-height:176px;overflow:auto;padding:5px;border:1px solid #cbd9ea;border-radius:8px;background:#fff}
.searchable-multi-option{display:grid;grid-template-columns:16px minmax(0,1fr);align-items:center;gap:6px;width:100%;padding:7px 8px;border:1px solid transparent;border-radius:6px;background:#fff;color:#294765;font:inherit;font-size:12px;text-align:left}
.searchable-multi-option:hover,.searchable-multi-option:focus-visible{border-color:#c6d9f5;background:#f4f8ff;outline:0}
.searchable-multi-option.selected{border-color:#c2d5f3;background:#edf4ff;color:#174f9b}
.searchable-multi-option .icon-svg{width:13px;height:13px}
.searchable-multi-option strong{min-width:0;overflow-wrap:anywhere;font-weight:650}
.searchable-multi-native{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.searchable-multi-empty{display:block;padding:7px 8px;color:#8294aa;font-size:11px;line-height:1.45}
.record-link-picker{margin:18px 0 0;padding:16px;border:1px solid var(--line);border-radius:12px;background:#fbfdff}
.record-link-picker legend{padding:0 6px;color:var(--ink);font-size:14px;font-weight:800}
.trace-task-cell{min-width:170px}
.trace-task-list{display:grid;gap:5px}
.trace-task-actions{display:flex;justify-content:flex-start;margin-top:8px}
.trace-task-actions .btn{min-height:32px;padding:6px 9px;border-radius:8px;font-size:11px}
.trace-task-empty{display:flex;align-items:center;min-height:32px}
@media(max-width:700px){.searchable-multi-selection{min-height:36px}.searchable-multi-options{max-height:150px}.record-link-picker{padding:13px}.trace-task-cell{min-width:150px}}
/* AI-MARK[PMO-UI:login-telemetry-layout] 2026-09-28 (GMT+7) — Keep the
   designated-admin account-health panel scannable on desktop and usable on
   narrow screens while reusing the PMO surface tokens and table rhythm. */
.login-telemetry-panel{margin-top:18px;overflow:hidden}.login-telemetry-head{align-items:flex-start;gap:18px}.login-telemetry-head h2{margin:0}.login-telemetry-controls{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.login-telemetry-controls label{color:var(--muted);font-size:12px;font-weight:750}.login-telemetry-controls select{min-height:38px;padding:7px 28px 7px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-size:12px;font-weight:700}.login-telemetry-note{margin:7px 0 0;color:var(--muted);font-size:11px;line-height:1.5}.login-telemetry-error{margin:14px 0;padding:11px 13px;border:1px solid #f1c9c9;border-radius:8px;background:#fff5f5;color:#a34d4d;font-size:12px}.login-telemetry-table{margin-top:14px}.login-telemetry-table table{min-width:880px}.login-telemetry-table td strong{display:block;color:var(--ink);font-size:13px;line-height:1.35}.login-telemetry-table td small{display:block;margin-top:4px;color:var(--muted);font-size:11px;line-height:1.35}.login-telemetry-table .empty{margin:0;min-height:84px}
@media(max-width:700px){.login-telemetry-head{display:block}.login-telemetry-controls{justify-content:flex-start;margin-top:13px}.login-telemetry-controls .btn{flex:1}.login-telemetry-table{margin-inline:-14px}.login-telemetry-table table{min-width:840px}}
/* AI-MARK[PMO-UI:task-assignment-panel] 2026-09-25 02:25 (GMT+7) — Keep
   assignment context compact, scannable and responsive in task drill-downs. */
.detail-assignment-panel{margin-top:18px;padding:18px;border:1px solid #dce7f4;border-radius:10px;background:#f8fbff}.detail-assignment-panel .panelhead{margin-bottom:14px}.assignment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.assignment-grid>div{min-width:0;padding:12px;border:1px solid #e3ebf5;border-radius:8px;background:white}.assignment-grid small{display:block;color:#7c90a8;font-size:11px;margin-bottom:4px}.assignment-grid strong{display:block;color:#264361;font-size:14px;line-height:1.45;overflow-wrap:anywhere}.transition-form .record-form-intro{padding-bottom:22px}
/* AI-MARK[PMO-UI:deadline-reminder-form] 2026-09-28 19:33 (GMT+7) - Give the
   deadline form the same calm, card-based rhythm as the OTP message while
   keeping the task/deadline preview readable on narrow screens. | rel:
   PMO-BE:deadline-mail-branding, PMO-UI:task-detail-actions */
.deadline-reminder-preview{display:grid;gap:5px;margin:0 0 22px;padding:15px 17px;border:1px solid #c9dafb;border-radius:14px;background:#f4f7ff;color:#58708f}.deadline-reminder-preview strong{color:#0b1437;font-size:15px;line-height:1.45;overflow-wrap:anywhere}.deadline-reminder-preview span{font-size:13px;line-height:1.45}.deadline-reminder-form .field-help{margin:12px 0 0;color:#7890ab;font-size:12px;line-height:1.55}.deadline-reminder-form .actions{margin-top:24px}
@media(max-width:700px){.assignment-grid{grid-template-columns:1fr}.deadline-reminder-preview{margin-bottom:18px}}
/* AI-MARK[PMO-UI:settings-project-layout] 2026-09-25 - Keep the new
   workspace/settings controls dense, readable and balanced on desktop and
   narrow screens without changing the existing PMO visual language. */
.project-control-card{padding:0;overflow:hidden}.project-control-card .project-card.large{border:0;border-radius:0;border-bottom:1px solid var(--line)}.project-control-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:18px}.project-control-metrics .metric{min-width:0}.quick-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.quick-link{display:flex;flex-direction:column;gap:7px;padding:16px;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:#fbfdff;text-decoration:none;transition:transform .15s,box-shadow .15s,border-color .15s}.quick-link:hover{transform:translateY(-2px);box-shadow:0 8px 20px #18365c12;border-color:#b9cfee}.quick-link strong{font-size:14px;color:#244b78}.quick-link span{font-size:12px;line-height:1.5;color:var(--muted)}.settings-panel{padding:22px}.settings-status{display:grid;grid-template-columns:minmax(150px,.75fr) minmax(170px,1fr);gap:10px 18px;padding:14px;border:1px solid var(--line);border-radius:10px;background:#fbfdff}.settings-status strong{font-size:12px;color:#7188a4}.settings-status span,.settings-status a{font-size:13px;color:var(--ink);font-weight:650}.settings-permissions{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}.settings-panel form>.sub{max-width:760px}@media(max-width:900px){.project-control-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-links{grid-template-columns:1fr}}@media(max-width:560px){.project-control-metrics{grid-template-columns:1fr}.settings-status{grid-template-columns:1fr;gap:4px}.settings-status strong:not(:first-child){margin-top:8px}}
/* AI-MARK[PMO-UI:task-attachment-layout] 2026-09-26 (GMT+7) - Keep
   attachment actions aligned with the task context and make evidence
   selection easy to scan on desktop and mobile. */
.detail-attachments-panel{margin-top:20px;padding:20px;border:1px solid #d9e5f3;border-radius:14px;background:linear-gradient(135deg,#f8fbff 0%,#f3f8ff 100%);box-shadow:0 8px 24px #2448730a}.detail-attachments-panel .panelhead{align-items:flex-start;margin-bottom:14px}.detail-attachments-panel .panelhead h3{margin-bottom:4px;color:#1f4165;font-size:16px}.detail-attachments-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}.detail-attachments-head-actions .btn{min-height:34px;padding:7px 11px;border-radius:8px;font-size:11px}.task-attachment-card{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 0;border-top:1px solid #e0e9f3}.task-attachment-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:#e9f1ff;color:#356fe2}.task-attachment-icon .icon-svg{width:19px;height:19px}.task-attachment-main{min-width:0}.task-attachment-main strong{display:block;color:#204365;font-size:13px;line-height:1.45;overflow-wrap:anywhere}.task-attachment-main small{display:block;margin-top:4px;color:#7890aa;font-size:11px;line-height:1.45;overflow-wrap:anywhere}.task-attachment-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.task-attachment-actions .btn{min-height:32px;padding:6px 9px;border-radius:8px;font-size:11px}.task-attachment-actions .tag{font-size:10px}.task-evidence-picker{display:grid;gap:8px;margin:0 0 15px;padding:14px;border:1px solid #d9e5f3;border-radius:10px;background:#f8fbff}.task-evidence-picker legend{padding:0 5px;color:#315676;font-size:12px;font-weight:800}.task-evidence-option{display:flex;align-items:flex-start;gap:9px;margin:0;padding:9px 10px;border:1px solid #e1eaf4;border-radius:8px;background:#fff;cursor:pointer}.task-evidence-option:hover{border-color:#9bbcf0;background:#f8fbff}.task-evidence-option input{flex:0 0 auto;width:16px;height:16px;margin:2px 0 0}.task-evidence-option span{min-width:0}.task-evidence-option strong,.task-evidence-option small{display:block;overflow-wrap:anywhere}.task-evidence-option strong{color:#27496c;font-size:12px;line-height:1.4}.task-evidence-option small{margin-top:3px;color:#8195ab;font-size:10px}.task-evidence-hint{margin:0 0 15px;padding:11px 12px;border:1px dashed #cbdced;border-radius:9px;background:#f8fbff;color:#7189a4;font-size:11px;line-height:1.5}.task-attachment-upload-form label input[type=file]{padding:11px;background:#f8fbff;border-style:dashed}.task-attachment-upload-form label input[type=file]::file-selector-button{margin-right:10px;padding:7px 10px;border:0;border-radius:7px;background:#e7f0ff;color:#2c63be;font:inherit;font-weight:750;cursor:pointer}@media(max-width:700px){.detail-attachments-head-actions{width:100%;justify-content:flex-start}.task-attachment-card{grid-template-columns:32px minmax(0,1fr)}.task-attachment-icon{width:32px;height:32px}.task-attachment-actions{grid-column:2;justify-content:flex-start}.task-attachment-actions .tag{order:2}}
/* AI-MARK[PMO-UI:popup-input-attachment-layout] 2026-09-28 - Keep popup
   text fields readable and make task evidence selection visible and retryable. */
.task-attachment-picker{display:grid;gap:7px;margin:16px 0;padding:15px;border:1px solid #d8e5f3;border-radius:12px;background:linear-gradient(135deg,#f8fbff 0%,#f5f9ff 100%);min-width:0}.task-attachment-picker-label{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0!important;color:#315676!important;font-size:13px!important;font-weight:800!important}.task-attachment-picker-label small{color:#8b9db2;font-size:11px;font-weight:650;white-space:nowrap}.task-attachment-picker-summary{margin:0;padding:9px 10px;border:1px solid #e0e9f4;border-radius:8px;background:#fff;color:#657e9a;font-size:11px;line-height:1.45;overflow-wrap:anywhere}.task-attachment-picker-summary.is-error{border-color:#efb8b8;background:#fff7f7;color:#a03f3f}.task-attachment-picker-help{margin:0;color:#8093aa;font-size:11px;line-height:1.5}.task-attachment-upload-form .task-attachment-picker{margin-top:2px}dialog.dialog-standard .dialog-content form,dialog.detail-sheet #dialogBody form{min-width:0}dialog.dialog-standard .dialog-content input:not([type="checkbox"]):not([type="radio"]),dialog.dialog-standard .dialog-content select,dialog.dialog-standard .dialog-content textarea,dialog.detail-sheet #dialogBody input:not([type="checkbox"]):not([type="radio"]),dialog.detail-sheet #dialogBody select,dialog.detail-sheet #dialogBody textarea{box-sizing:border-box;width:100%;max-width:100%;min-width:0}dialog.dialog-standard .dialog-content textarea,dialog.detail-sheet #dialogBody textarea{min-height:128px;padding:13px 14px;line-height:1.6;resize:vertical;white-space:pre-wrap;overflow-wrap:anywhere}dialog.dialog-standard .dialog-content input[type="file"],dialog.detail-sheet #dialogBody input[type="file"]{min-height:50px;padding:11px 12px;border:1px dashed #b9cce5;background:#f8fbff;cursor:pointer}dialog.dialog-standard .dialog-content input[type="file"]:focus,dialog.detail-sheet #dialogBody input[type="file"]:focus{border-style:solid}dialog.dialog-standard .dialog-content .two{align-items:start;min-width:0}dialog.dialog-standard .dialog-content .two>label{min-width:0}dialog.dialog-standard .dialog-content label{overflow-wrap:anywhere}dialog.dialog-standard .dialog-content .field-help,dialog.dialog-standard .dialog-content .sub,dialog.dialog-standard .dialog-content .error{max-width:100%;overflow-wrap:anywhere;line-height:1.55}@media(max-width:700px){dialog.dialog-standard .dialog-content textarea,dialog.detail-sheet #dialogBody textarea{min-height:116px}.task-attachment-picker{padding:13px}.task-attachment-picker-label{display:block}.task-attachment-picker-label small{display:block;margin-top:3px}}

/* AI-MARK[PMO-UI:icon-center-system] 2026-09-28 (GMT+7) — Use the shared
   VLI icon set as the only PMO icon source and normalize every icon wrapper
   so glyphs stay optically centered across all tabs and responsive states. */
.icon,.fileicon,.agent-symbol,.task-form-icon,.auth-icon,.chat-dialog-icon,.chat-list-avatar,.chat-conversation-avatar,.chat-message-avatar,.chat-user-avatar,.documents-summary-icon,.task-attachment-icon,.search-suggestion-icon,.profile-sheet-avatar{display:grid;place-items:center;line-height:0}
.icon{padding:0}
.icon-svg{vertical-align:middle}
.icon .icon-svg,.fileicon .icon-svg,.agent-symbol .icon-svg,.task-form-icon .icon-svg,.auth-icon .icon-svg,.chat-dialog-icon .icon-svg,.chat-list-avatar .icon-svg,.chat-conversation-avatar .icon-svg,.chat-message-avatar .icon-svg,.chat-user-avatar .icon-svg,.documents-summary-icon .icon-svg,.task-attachment-icon .icon-svg,.search-suggestion-icon .icon-svg,.profile-sheet-avatar .icon-svg{display:block;vertical-align:middle}
nav a i,.btn,.textlink,.status-inline-action,.pmo-float,.mobile-dock a,.global-search,.global-search-icon,.chat-picker-search,.chat-page-actions,.chat-conversation-actions,.chat-composer-footer{align-items:center}
.fileicon .icon-svg{width:18px;height:18px}
.checks .icon-svg{vertical-align:middle}

/* AI-MARK[PMO-UI:feng-ying-chat-first] 2026-09-28 (GMT+7) — Make Feng Ying
   a chat-first control surface: scoped metrics live above the conversation,
   session history stays compact, and secondary guidance is collapsed below
   the composer instead of consuming a competing right rail. */
.pmo-chat-first-shell{width:100%;min-width:0;padding:22px;border-color:#d9e5f3;background:linear-gradient(180deg,#fff 0%,#fbfdff 100%);box-shadow:0 18px 50px #18385c10}
.pmo-chat-first-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}
.pmo-chat-first-header .agent-intro{margin:0;min-width:0}
.pmo-chat-first-header .agent-intro h2{margin:0 0 4px;color:#1e3d60;font-size:21px}
.pmo-chat-first-header .agent-intro .sub{margin:0}
.pmo-chat-context{display:grid;grid-template-columns:minmax(220px,1.1fr) minmax(390px,1.8fr);gap:14px;align-items:center;margin:0 0 16px;padding:15px 16px;border:1px solid #d7e5f8;border-radius:13px;background:linear-gradient(135deg,#f4f8ff 0%,#fafdff 100%)}
.pmo-context-copy{display:grid;gap:6px;min-width:0}
.pmo-context-copy .agent-label{margin:0;color:#5b84bd;font-size:10px;letter-spacing:.14em}
.pmo-context-copy strong{color:#2a4b70;font-size:13px;line-height:1.45}
.pmo-context-metrics{display:grid;grid-template-columns:repeat(5,minmax(70px,1fr));gap:8px;min-width:0}
.pmo-context-metric{display:grid;gap:3px;min-width:0;padding:9px 8px;border:1px solid #dbe6f4;border-radius:9px;background:#fff;color:#5f7590;text-align:center}
.pmo-context-metric strong{color:#275187;font-size:20px;line-height:1.05}
.pmo-context-metric small{overflow:hidden;font-size:10px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}
.pmo-context-metric.is-overdue strong,.pmo-context-metric.is-blocked strong{color:#bd5960}
.pmo-context-metric.is-soon strong{color:#bc791b}
.pmo-chat-actions{grid-column:1/-1;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-top:2px}
.pmo-chat-actions .btn{min-height:36px;padding:8px 12px;font-size:11px}
.pmo-chat-first-layout{display:grid;grid-template-columns:224px minmax(0,1fr);min-width:0;min-height:660px;overflow:hidden;border:1px solid #dbe6f2;border-radius:13px;background:#fff}
.pmo-chat-first-layout .pmo-session-list{border-right:1px solid #e0e8f2}
.pmo-chat-first-main{display:flex;flex-direction:column;min-width:0;min-height:660px;background:#fff}
.pmo-chat-first-main .pmo-chat-heading{flex:0 0 auto}
.pmo-messages-primary{height:clamp(360px,48vh,620px);min-height:360px;flex:1 1 auto;background:linear-gradient(180deg,#fff 0%,#fbfdff 100%)}
.pmo-chat-first-main>.pmo-prompts{display:flex;gap:7px;flex-wrap:wrap;padding:12px 18px 6px;border-top:1px solid #edf1f6}
.pmo-chat-first-main>.pmo-prompts .btn{min-height:32px;padding:6px 10px;border-radius:999px;background:#f7faff;color:#3565a1;font-size:11px}
.pmo-chat-first-main>.pmo-prompts .btn .icon-svg{width:13px;height:13px}
.pmo-composer{padding:12px 18px 16px;background:#fff}
.pmo-composer>label{display:block;margin:0 0 7px;color:#3c5b7d;font-size:12px;font-weight:800}
.pmo-composer-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}
.pmo-composer-row textarea{box-sizing:border-box;width:100%;min-height:74px;margin:0;padding:12px 13px;border:1px solid #cbdcf2;border-radius:10px;background:#fbfdff;color:#294867;font:inherit;font-size:13px;line-height:1.5;resize:vertical;outline:0}
.pmo-composer-row textarea:focus{border-color:#5a88ee;box-shadow:0 0 0 4px #5a88ee1a;background:#fff}
.pmo-composer-row .btn{min-height:45px;white-space:nowrap}
.pmo-composer-hint{display:block;margin-top:6px;color:#8799ae;font-size:10px;line-height:1.45}
.pmo-chat-guide{margin:0 18px 16px;padding:11px 13px;border:1px solid #dce7f4;border-radius:10px;background:#f8fbff;color:#6e84a0}
.pmo-chat-guide summary{cursor:pointer;color:#3d5e82;font-size:12px;font-weight:800;line-height:1.45}
.pmo-chat-guide summary::marker{color:#5e84c5}
.pmo-chat-guide p{margin:10px 0 0;font-size:11px;line-height:1.55}
.pmo-chat-guide .feng-operating-steps{margin-top:10px}
.pmo-chat-guardrails{display:flex;gap:9px;flex-wrap:wrap;margin-top:10px;color:#6683a4;font-size:10px}
.pmo-chat-guardrails span{display:inline-flex;align-items:center;gap:4px}
.pmo-chat-guardrails .icon-svg{width:13px;height:13px;color:#2a9d72}
.pmo-chat-footer-action{display:flex;justify-content:center;padding:0 18px 18px}
.pmo-chat-footer-action .btn{min-width:210px}
@media(max-width:1060px){.pmo-chat-context{grid-template-columns:1fr}.pmo-context-metrics{grid-template-columns:repeat(5,minmax(68px,1fr))}}
@media(max-width:760px){.pmo-chat-first-shell{padding:16px 13px}.pmo-chat-first-header{align-items:flex-start;flex-direction:column;gap:10px}.pmo-chat-first-header .feng-agent-badge{margin-left:0}.pmo-context-metrics{grid-template-columns:repeat(3,minmax(70px,1fr))}.pmo-chat-first-layout{grid-template-columns:1fr;min-height:0}.pmo-chat-first-layout .pmo-session-list{border-right:0;border-bottom:1px solid #e0e8f2}.pmo-chat-first-main{min-height:0}.pmo-messages-primary{height:52vh;min-height:340px}.pmo-composer-row{grid-template-columns:1fr}.pmo-composer-row .btn{width:100%}}
@media(max-width:430px){.pmo-context-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.pmo-chat-actions{display:grid;grid-template-columns:1fr 1fr}.pmo-chat-actions .btn{width:100%;justify-content:center}.pmo-chat-first-main>.pmo-prompts{padding-inline:13px}.pmo-composer{padding-inline:13px}.pmo-chat-guide{margin-inline:13px}}

/* AI-MARK[PMO-UI:feng-ying-simple-chat] 2026-09-28 (GMT+7) — Reduce visual
   competition on the full Feng Ying tab: one conversation, compact metrics,
   one session selector and progressive disclosure for advanced details. */
.pmo-chat-first-shell{padding:20px;border-radius:16px;box-shadow:0 12px 34px #18385c0b}
.pmo-chat-first-header{margin-bottom:13px}
.pmo-chat-first-header .agent-intro{display:flex;align-items:center;gap:11px}
.pmo-chat-first-header .agent-symbol{width:38px;height:38px;border:1px solid #d7e5f8;border-radius:11px;background:#edf4ff;color:#356cef}
.pmo-chat-first-header .agent-symbol .icon-svg{width:19px;height:19px}
.pmo-chat-first-header .agent-intro h2{font-size:19px}
.pmo-chat-header-actions{display:flex;align-items:center;gap:8px}
.pmo-chat-header-actions .btn{min-height:34px;padding:7px 11px;font-size:11px}
.pmo-chat-context-compact{grid-template-columns:minmax(0,1fr) minmax(330px,1fr);gap:12px;margin-bottom:12px;padding:11px 12px;border-radius:11px;background:#f8fbff}
.pmo-chat-context-compact .pmo-context-copy{gap:3px}
.pmo-chat-context-compact .pmo-context-copy strong{font-size:12px;font-weight:650}
.pmo-chat-context-compact .pmo-context-metrics{grid-template-columns:repeat(3,minmax(84px,1fr));gap:6px}
.pmo-chat-context-compact .pmo-context-metric{padding:7px 6px;border-radius:8px}
.pmo-chat-context-compact .pmo-context-metric strong{font-size:17px}
.pmo-chat-context-compact .pmo-context-metric small{font-size:9px}
.pmo-chat-first-layout-simple{display:block;min-height:0;border-radius:11px}
.pmo-chat-first-layout-simple .pmo-chat-first-main{min-height:0}
.pmo-chat-sessionbar{display:grid;grid-template-columns:auto minmax(180px,1fr) auto auto;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid #edf1f6;background:#fbfdff}
.pmo-chat-sessionbar label{color:#52708f;font-size:11px;font-weight:800}
.pmo-chat-sessionbar select{min-width:0;height:33px;padding:6px 30px 6px 9px;border:1px solid #d4e2f2;border-radius:8px;background:#fff;color:#315372;font:inherit;font-size:11px}
.pmo-chat-sessionbar .btn{min-height:33px;padding:6px 9px;font-size:10px;white-space:nowrap}
.pmo-session-save-state{color:#8497ab;font-size:10px;white-space:nowrap}
.pmo-chat-first-layout-simple .pmo-chat-heading{padding:12px 16px}
.pmo-chat-first-layout-simple .pmo-messages-primary{height:clamp(410px,55vh,680px);min-height:410px}
.pmo-prompts-simple{align-items:center;flex-wrap:nowrap!important;overflow:auto;padding:8px 14px 7px!important;scrollbar-width:none}
.pmo-prompts-simple::-webkit-scrollbar{display:none}
.pmo-prompts-label{flex:0 0 auto;color:#7890a9;font-size:10px;font-weight:800;letter-spacing:.04em}
.pmo-prompts-simple .btn{flex:0 0 auto;max-width:230px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.pmo-prompts-simple .btn .icon-svg{flex:0 0 auto}
.pmo-chat-first-layout-simple .pmo-composer{padding:12px 16px 15px}
.pmo-chat-first-layout-simple .pmo-chat-guide{margin:0 16px 15px}
@media(max-width:900px){.pmo-chat-context-compact{grid-template-columns:1fr}.pmo-chat-context-compact .pmo-context-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.pmo-chat-first-shell{padding:14px 11px}.pmo-chat-first-header{align-items:flex-start;flex-direction:column;gap:10px}.pmo-chat-header-actions,.pmo-chat-header-actions .btn{width:100%}.pmo-chat-header-actions .btn{justify-content:center}.pmo-chat-sessionbar{grid-template-columns:1fr auto}.pmo-chat-sessionbar label{grid-column:1/-1}.pmo-chat-sessionbar select{width:100%}.pmo-session-save-state{grid-column:1/-1}.pmo-chat-first-layout-simple .pmo-messages-primary{height:54vh;min-height:340px}.pmo-chat-first-layout-simple .pmo-chat-heading,.pmo-chat-first-layout-simple .pmo-composer{padding-inline:12px}.pmo-chat-first-layout-simple .pmo-chat-guide{margin-inline:12px}}
@media(max-width:430px){.pmo-chat-context-compact .pmo-context-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.pmo-context-metric small{font-size:8px}.pmo-prompts-label{display:none}}

/* AI-MARK[PMO-UI:edit-popup-template] 2026-09-29 (GMT+7) — Give every
   editable PMO dialog one deliberate form template: readable hierarchy,
   bounded controls, a non-overlapping action footer and a mobile-safe layout.
   This stays scoped to record/task form shells so the Feng Ying chat and
   read-only detail dialogs keep their own interaction model. */
dialog.dialog-standard:has(.record-form-shell),
dialog.dialog-standard:has(.task-form-shell){
  width:min(820px,calc(100% - 32px));
  max-width:calc(100% - 32px);
  max-height:92vh;
  box-sizing:border-box;
  overscroll-behavior:contain;
}
dialog.dialog-standard:has(.task-form-shell){width:min(900px,calc(100% - 32px))}

/* AI-MARK[PMO-UI:edit-popup-template] 2026-09-29 12:31 (GMT+7) — Normalize
   every popup checkbox row (task blocker, review flags, membership and
   settings) to one predictable inline control; generic label/input rules must
   not stretch the native input away from its label. */
dialog.dialog-standard .dialog-content form label.check-label,
dialog.detail-sheet #dialogBody form label.check-label,
dialog.dialog-standard .dialog-content form label.task-blocked,
dialog.detail-sheet #dialogBody form label.task-blocked{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  align-self:stretch;
  width:100%;
  min-width:0;
  min-height:44px;
  margin:16px 0 4px!important;
  padding:10px 12px;
  gap:10px;
  box-sizing:border-box;
  text-align:left;
  overflow-wrap:anywhere;
}
dialog.dialog-standard .dialog-content form label.check-label input[type="checkbox"],
dialog.detail-sheet #dialogBody form label.check-label input[type="checkbox"],
dialog.dialog-standard .dialog-content form label.task-blocked input[type="checkbox"],
dialog.detail-sheet #dialogBody form label.task-blocked input[type="checkbox"]{
  display:block;
  flex:0 0 18px;
  width:18px!important;
  min-width:18px!important;
  max-width:18px!important;
  height:18px;
  min-height:18px!important;
  margin:0!important;
  padding:0!important;
  accent-color:#356cef;
}
dialog.dialog-standard .dialog-content form label.task-blocked,
dialog.detail-sheet #dialogBody form label.task-blocked{
  color:#a14d52!important;
  border:1px solid #f0c9cc;
  border-radius:10px;
  background:#fff8f8;
}

dialog.dialog-standard:has(.record-form-shell) #dialogBody,
dialog.dialog-standard:has(.task-form-shell) #dialogBody,
dialog.dialog-standard:has(.record-form-shell) .dialog-content,
dialog.dialog-standard:has(.task-form-shell) .dialog-content{
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}
dialog.dialog-standard:has(.record-form-shell) .record-form-shell,
dialog.dialog-standard:has(.task-form-shell) .task-form-shell{
  width:100%;
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
dialog.dialog-standard:has(.record-form-shell) .record-form-intro,
dialog.dialog-standard:has(.task-form-shell) .task-form-intro{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:14px;
  padding:2px 52px 22px 0;
  text-align:left;
}
dialog.dialog-standard:has(.record-form-shell) .record-form-intro h2,
dialog.dialog-standard:has(.task-form-shell) .task-form-intro h2{
  max-width:100%;
  margin:0 0 6px;
  text-align:left;
  overflow-wrap:anywhere;
}
dialog.dialog-standard:has(.record-form-shell) .record-form-intro .sub,
dialog.dialog-standard:has(.task-form-shell) .task-form-intro .sub{
  max-width:720px;
  margin:0;
  overflow-wrap:anywhere;
}
dialog.dialog-standard:has(.record-form-shell) .record-form-intro .task-form-icon,
dialog.dialog-standard:has(.task-form-shell) .task-form-intro .task-form-icon{
  margin:0;
  align-self:start;
}
dialog.dialog-standard:has(.record-form-shell) form,
dialog.dialog-standard:has(.task-form-shell) form{
  min-width:0;
  max-width:100%;
}
dialog.dialog-standard:has(.record-form-shell) form label,
dialog.dialog-standard:has(.task-form-shell) form label{
  min-width:0;
  overflow-wrap:anywhere;
}
dialog.dialog-standard:has(.record-form-shell) form input:not([type="checkbox"]):not([type="radio"]),
dialog.dialog-standard:has(.record-form-shell) form select,
dialog.dialog-standard:has(.record-form-shell) form textarea,
dialog.dialog-standard:has(.task-form-shell) form input:not([type="checkbox"]):not([type="radio"]),
dialog.dialog-standard:has(.task-form-shell) form select,
dialog.dialog-standard:has(.task-form-shell) form textarea{
  box-sizing:border-box;
  width:100%;
  min-width:0;
  max-width:100%;
  min-height:46px;
}
dialog.dialog-standard:has(.record-form-shell) form textarea,
dialog.dialog-standard:has(.task-form-shell) form textarea{
  min-height:124px;
  line-height:1.6;
  resize:vertical;
  overflow-wrap:anywhere;
}
dialog.dialog-standard:has(.record-form-shell) form input[type="file"],
dialog.dialog-standard:has(.task-form-shell) form input[type="file"]{
  min-height:50px;
  padding:11px 12px;
  border-style:dashed;
  background:#f8fbff;
}
dialog.dialog-standard:has(.record-form-shell) .record-form .two,
dialog.dialog-standard:has(.task-form-shell) .task-form-grid{
  min-width:0;
  align-items:start;
}
dialog.dialog-standard:has(.record-form-shell) .record-form .two>label,
dialog.dialog-standard:has(.task-form-shell) .task-form-grid>label{
  min-width:0;
}
dialog.dialog-standard:has(.record-form-shell) .record-form .field-help,
dialog.dialog-standard:has(.task-form-shell) .task-form .field-help{
  max-width:100%;
  overflow-wrap:anywhere;
}
dialog.dialog-standard:has(.record-form-shell) .record-form .actions,
dialog.dialog-standard:has(.task-form-shell) .task-form-actions{
  position:sticky;
  bottom:0;
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
  box-sizing:border-box;
  margin:24px -38px -32px;
  padding:16px 38px 28px;
  border-top:1px solid #e6edf5;
  background:linear-gradient(180deg,#fffffff2 0%,#fff 42%);
}
dialog.dialog-standard:has(.task-form-shell) .task-form-actions{
  margin:22px -42px -28px;
  padding:16px 42px 28px;
}
dialog.dialog-standard:has(.record-form-shell) .record-form .actions .btn,
dialog.dialog-standard:has(.task-form-shell) .task-form-actions .btn{
  flex:0 0 auto;
  min-width:132px;
  min-height:44px;
  padding:10px 16px;
  border-radius:10px;
  white-space:nowrap;
}
dialog.dialog-standard:has(.record-form-shell) .record-form .error:empty,
dialog.dialog-standard:has(.task-form-shell) .task-form .error:empty{
  display:none;
  min-height:0;
  margin:0;
}
@media(max-width:700px){
  dialog.dialog-standard:has(.record-form-shell),
  dialog.dialog-standard:has(.task-form-shell){
    width:calc(100% - 20px);
    max-width:calc(100% - 20px);
    max-height:94vh;
    border-radius:16px;
  }
  dialog.dialog-standard:has(.record-form-shell) .record-form-intro,
  dialog.dialog-standard:has(.task-form-shell) .task-form-intro{
    grid-template-columns:auto minmax(0,1fr);
    gap:11px;
    padding-right:42px;
  }
  dialog.dialog-standard:has(.record-form-shell) .record-form-intro h2,
  dialog.dialog-standard:has(.task-form-shell) .task-form-intro h2{font-size:22px}
  dialog.dialog-standard:has(.record-form-shell) .record-form .actions,
  dialog.dialog-standard:has(.task-form-shell) .task-form-actions{
    margin:20px -20px -22px;
    padding:14px 20px 22px;
  }
  dialog.dialog-standard:has(.task-form-shell) .task-form-actions{margin:20px -20px -22px}
  dialog.dialog-standard:has(.record-form-shell) .record-form .actions .btn,
  dialog.dialog-standard:has(.task-form-shell) .task-form-actions .btn{
    flex:1 1 140px;
    min-width:0;
  }
}
/* AI-MARK[PMO-UI:service-interruption] 2026-09-29 09:58 (GMT+7) - In-flow degraded-service strip under the header (no stacking context); amber palette reuses .tag.amber. | rel: pmo-hub.js noteServiceInterruption, UI-L4-pmo */
.service-notice{background:#fff3df;color:#966715;border-bottom-color:#f1dfbd;font-size:14px}
.service-notice[hidden]{display:none}
