:root,[data-theme]{--sidebar-brand: #fff;--sidebar-border: rgba(255,255,255,.1);--sidebar-brand-shadow: 0 1px 2px rgba(0,0,0,.35);--sidebar-control-border: rgba(255,255,255,.28);--sidebar-control-bg: rgba(0,0,0,.28);--text-main: #1f2937;--table-head-bg: #f6f8fa}[hidden]{display:none!important}@supports (background: color-mix(in srgb,red 10%,white)){[data-theme]{--table-head-bg: color-mix(in srgb, var(--primary) 6%, #f6f8fa)}}:root,[data-theme]{--ctl-border-color: #d8dee4;--ctl-border-w: 1px;--ctl-radius: var(--radius-md);--ctl-pad-y: .4rem;--ctl-pad-x: .65rem;--ctl-fs: var(--fs-base);--ctl-lh: 1.25;--ctl-min-h: 2.15rem;--ctl-bg: var(--card-solid, var(--card-bg, #fff));--ctl-color: var(--text, #1c2430);--ctl-disabled-bg: #f6f8fa;--ctl-disabled-color: var(--ink-soft, #5b6b80);--ctl-sm-pad-y: .2rem;--ctl-sm-pad-x: .45rem;--ctl-sm-fs: var(--fs-sm);--ctl-sm-min-h: 1.8rem}:root,[data-theme]{--ok: var(--success);--ok-bg: var(--success-bg);--ok-text: var(--success-text);--ok-border: var(--success-border);--warn: var(--warning);--warn-bg: var(--warning-bg);--warn-text: var(--warning-text);--warn-border: var(--warning-border);--accent-purple: #7a3e9d;--accent-teal: #0e7d6b;--fs-xs: .75rem;--fs-sm: .8125rem;--fs-base: .875rem;--fs-md: .9375rem;--fs-lg: 1rem;--fs-xl: 1.125rem;--fs-2xl: 1.25rem;--fs-3xl: 1.5rem;--fw-normal: 400;--fw-strong: 700;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-pill: 999px;--elev-1: 0 1px 2px rgba(15, 23, 42, .06), 0 3px 10px rgba(15, 23, 42, .06);--elev-2: 0 8px 24px rgba(15, 23, 42, .16);--sp-1: .25rem;--sp-2: .4rem;--sp-3: .6rem;--sp-4: .8rem;--sp-5: 1.2rem;--sp-6: 1.6rem;--bg-subtle: #f8fafc;--line: #e2e8f0;--ink: #0f172a;--ink-soft: #5b6b80;--ink-faint: #5f6f85;--overlay: rgba(20, 28, 40, .45);--modal-radius: var(--radius-lg);--table-stripe-bg: #fafbfc;--table-hover-bg: #f1f6fd;--panel-soft-bg: #f8fafc;--panel-muted-bg: #f1f5f9}@supports (background: color-mix(in srgb,red 10%,white)){[data-theme]{--table-stripe-bg: color-mix(in srgb, var(--primary) 2.5%, var(--card-solid, #ffffff));--table-hover-bg: color-mix(in srgb, var(--primary) 8%, var(--card-solid, #ffffff));--panel-soft-bg: color-mix(in srgb, var(--primary) 4%, #fff);--panel-muted-bg: color-mix(in srgb, var(--primary) 8%, #fff)}}:root,[data-theme=soft-sky]{--primary: #34709e;--primary-dark: #2a5f88;--sidebar-bg: linear-gradient(180deg, #336a97 0%, #2f6590 55%, #2a5f88 100%);--sidebar-solid: #2f6590;--sidebar-text: #f5fbff;--sidebar-active: #ffffff;--accent: #7ec8c0;--page-bg: linear-gradient(160deg, #f3f9ff, #e8f2fb);--page-bg-solid: #f0f7fc;--card-bg: #ffffff;--card-solid: #ffffff;--text: #1f3348;--muted: #4a6580;--danger: #d45b5b;--warning: #d4a24a;--btn-grad: linear-gradient(180deg, #3b78a6 0%, #34709e 55%, #2a5f88 100%);--border-metal: rgba(70, 120, 160, .16);--shadow-metal: 0 2px 8px rgba(40, 80, 120, .08), inset 0 1px 0 rgba(255,255,255,.85)}[data-theme=medical-blue]{--primary: #0264f6;--primary-dark: #0a58ca;--sidebar-bg: #0b1f3a;--sidebar-solid: #0b1f3a;--sidebar-text: #c9d7ea;--sidebar-active: #1a6dff;--accent: #20c997;--page-bg: #f0f4f8;--page-bg-solid: #f0f4f8;--card-bg: #ffffff;--card-solid: #ffffff;--text: #1e293b;--muted: #5b6b80;--danger: #dc3545;--warning: #f59e0b;--btn-grad: linear-gradient(180deg, #0c6dfc, #0264f6 50%, #0a58ca 100%);--border-metal: rgba(0,0,0,.08);--shadow-metal: 0 1px 3px rgba(0,0,0,.06)}[data-theme=soft-teal]{--primary: #2a7872;--primary-dark: #1d605a;--sidebar-bg: linear-gradient(180deg, #25726c 0%, #226b65 55%, #1f645e 100%);--sidebar-solid: #226b65;--sidebar-text: #f2fffd;--sidebar-active: #ffffff;--accent: #7ec8c0;--page-bg: linear-gradient(160deg, #f2faf9, #e6f4f2);--page-bg-solid: #eef8f7;--card-bg: #ffffff;--card-solid: #ffffff;--text: #1a3532;--muted: #4a6965;--danger: #d45b5b;--warning: #d4a24a;--btn-grad: linear-gradient(180deg, #2d7d76 0%, #2a7872 55%, #1d605a 100%);--border-metal: rgba(50, 130, 120, .16);--shadow-metal: 0 2px 8px rgba(30, 90, 85, .08), inset 0 1px 0 rgba(255,255,255,.85)}[data-theme=ocean-teal]{--primary: #0b7b71;--primary-dark: #0e6e66;--sidebar-bg: linear-gradient(180deg, #134e4a 0%, #0f3d3a 55%, #0a2e2c 100%);--sidebar-solid: #0f3d3a;--sidebar-text: #ccfbf1;--sidebar-active: #5eead4;--accent: #2dd4bf;--page-bg: linear-gradient(145deg, #f0fdfa, #e0f5f2);--page-bg-solid: #ecfdf8;--card-bg: linear-gradient(180deg, #ffffff, #f0fdfa);--card-solid: #f7fffc;--text: #134e4a;--muted: #4d7570;--danger: #dc3545;--warning: #d4a24a;--btn-grad: linear-gradient(180deg, #1b8477 0%, #0b7b71 55%, #0e6e66 100%);--border-metal: rgba(13, 148, 136, .22);--shadow-metal: 0 2px 8px rgba(15, 90, 80, .1), inset 0 1px 0 rgba(255,255,255,.55)}[data-theme=blue-teal]{--primary: #1565c0;--primary-dark: #0d47a1;--sidebar-bg: linear-gradient(165deg, #1565c0 0%, #026eaf 42%, #00766a 100%);--sidebar-solid: #1565c0;--sidebar-text: #e8f4fc;--sidebar-active: #ffffff;--accent: #00897b;--page-bg: linear-gradient(160deg, #eef2f7 0%, #e3edf5 45%, #e6f3f1 100%);--page-bg-solid: #eef2f7;--card-bg: #ffffff;--card-solid: #ffffff;--text: #1f2d3d;--muted: #616b78;--danger: #c62828;--warning: #d4a24a;--btn-grad: linear-gradient(135deg, #1565c0 0%, #026eaf 50%, #00766a 100%);--border-metal: rgba(21, 101, 192, .16);--shadow-metal: 0 2px 10px rgba(21, 101, 192, .08), inset 0 1px 0 rgba(255,255,255,.85);--header-grad: linear-gradient(135deg, #1565c0 0%, #00766a 100%)}[data-theme=indigo-pink]{--primary: #3949ab;--primary-dark: #283593;--sidebar-bg: linear-gradient(165deg, #3949ab 0%, #5060bb 38%, #d61556 100%);--sidebar-solid: #3949ab;--sidebar-text: #eef0ff;--sidebar-active: #ffffff;--accent: #f06292;--page-bg: linear-gradient(160deg, #eef0fa 0%, #ebe8f6 45%, #fce8f0 100%);--page-bg-solid: #eef0f8;--card-bg: #ffffff;--card-solid: #ffffff;--text: #1f2d3d;--muted: #606a77;--danger: #c62828;--warning: #d4a24a;--btn-grad: linear-gradient(135deg, #3949ab 0%, #7e57c2 50%, #d61556 100%);--border-metal: rgba(57, 73, 171, .16);--shadow-metal: 0 2px 10px rgba(57, 73, 171, .08), inset 0 1px 0 rgba(255,255,255,.85);--header-grad: linear-gradient(135deg, #3949ab 0%, #d61556 100%)}[data-theme=sunset-amber]{--primary: #c34200;--primary-dark: #9f3500;--sidebar-bg: linear-gradient(165deg, #ae3d00 0%, #9e4800 42%, #934f00 100%);--sidebar-solid: #9e4800;--sidebar-text: #fff8f0;--sidebar-active: #ffffff;--accent: #ffb300;--page-bg: linear-gradient(160deg, #fff6ef 0%, #ffeee0 45%, #fff8e7 100%);--page-bg-solid: #fff4ec;--card-bg: #ffffff;--card-solid: #ffffff;--text: #2d2118;--muted: #7a6558;--danger: #c62828;--warning: #f9a825;--btn-grad: linear-gradient(135deg, #cf4900 0%, #bf5700 50%, #b46000 100%);--border-metal: rgba(199, 67, 0, .16);--shadow-metal: 0 2px 10px rgba(199, 67, 0, .08), inset 0 1px 0 rgba(255,255,255,.85);--header-grad: linear-gradient(135deg, #cf4900 0%, #b46000 100%)}[data-theme=emerald-sky]{--primary: #2c762f;--primary-dark: #1b5e20;--sidebar-bg: linear-gradient(165deg, #2c762f 0%, #317534 38%, #026fab 100%);--sidebar-solid: #2c762f;--sidebar-text: #e8f8ec;--sidebar-active: #ffffff;--accent: #29b6f6;--page-bg: linear-gradient(160deg, #eef8f0 0%, #e6f4ea 45%, #e3f2fd 100%);--page-bg-solid: #eef6f0;--card-bg: #ffffff;--card-solid: #ffffff;--text: #1f2d3d;--muted: #636e7b;--danger: #c62828;--warning: #d4a24a;--btn-grad: linear-gradient(135deg, #2c762f 0%, #317534 48%, #026fab 100%);--border-metal: rgba(46, 125, 50, .16);--shadow-metal: 0 2px 10px rgba(46, 125, 50, .08), inset 0 1px 0 rgba(255,255,255,.85);--header-grad: linear-gradient(135deg, #2c762f 0%, #026fab 100%)}[data-theme=rose-coral]{--primary: #c2185b;--primary-dark: #880e4f;--sidebar-bg: linear-gradient(165deg, #bf185a 0%, #c3134f 40%, #b72c00 100%);--sidebar-solid: #bf185a;--sidebar-text: #fff0f5;--sidebar-active: #ffffff;--accent: #ff8a65;--page-bg: linear-gradient(160deg, #fdf0f5 0%, #fce8ef 45%, #fff0ea 100%);--page-bg-solid: #fdf2f6;--card-bg: #ffffff;--card-solid: #ffffff;--text: #2d1f24;--muted: #7a6570;--danger: #b71c1c;--warning: #ef6c00;--btn-grad: linear-gradient(135deg, #c2185b 0%, #e4165c 50%, #dd3500 100%);--border-metal: rgba(194, 24, 91, .16);--shadow-metal: 0 2px 10px rgba(194, 24, 91, .08), inset 0 1px 0 rgba(255,255,255,.85);--header-grad: linear-gradient(135deg, #c2185b 0%, #dd3500 100%)}[data-theme=forest-mint]{--primary: #1b5e20;--primary-dark: #0d3b12;--sidebar-bg: linear-gradient(165deg, #1b5e20 0%, #2c762f 40%, #1b746c 100%);--sidebar-solid: #1b5e20;--sidebar-text: #e8f5e9;--sidebar-active: #ffffff;--accent: #4db6ac;--page-bg: linear-gradient(160deg, #eef7ef 0%, #e6f4ea 45%, #e0f2f1 100%);--page-bg-solid: #eef6ef;--card-bg: #ffffff;--card-solid: #ffffff;--text: #1a2e1c;--muted: #5e7063;--danger: #c62828;--warning: #d4a24a;--btn-grad: linear-gradient(135deg, #1b5e20 0%, #38863c 48%, #1b746c 100%);--border-metal: rgba(27, 94, 32, .16);--shadow-metal: 0 2px 10px rgba(27, 94, 32, .08), inset 0 1px 0 rgba(255,255,255,.85);--header-grad: linear-gradient(135deg, #1b5e20 0%, #1b746c 100%)}:root,[data-theme]{--surface: var(--card-solid, #ffffff);--surface-raised: var(--card-bg, var(--card-solid, #ffffff));--surface-page: var(--page-bg-solid, #eef2f7);--surface-muted: color-mix(in srgb, var(--surface) 88%, var(--text, #1c2430) 12%);--border: var(--border-metal, rgba(90, 100, 115, .28));--border-strong: color-mix(in srgb, var(--text, #1c2430) 22%, transparent);--text-primary: var(--text, #1c2430);--text-secondary: var(--muted, #6b7785);--text-on-action: #ffffff;--action: var(--primary);--action-hover: var(--primary-dark, var(--primary));--action-subtle: color-mix(in srgb, var(--primary) 12%, #fff);--danger: #b91c1c;--danger-hover: #991b1b;--danger-bg: #fee2e2;--danger-border: #fca5a5;--danger-text: #991b1b;--warning: #b45309;--warning-hover: #92400e;--warning-bg: #fef3c7;--warning-border: #fcd34d;--warning-text: #92400e;--warning-soft-bg: #fff7ed;--warning-soft-border: #fed7aa;--warning-soft-text: #9a3412;--warning-faint-bg: #fffbeb;--success: #15803d;--success-hover: #166534;--success-bg: #dcfce7;--success-border: #86efac;--success-text: #14532d;--info: #0369a1;--info-hover: #075985;--info-bg: #e0f2fe;--info-border: #7dd3fc;--info-text: #0c4a6e;--neutral: color-mix(in srgb, var(--primary) 6%, #6b7280);--neutral-hover: color-mix(in srgb, var(--primary) 6%, #4b5563);--neutral-bg: color-mix(in srgb, var(--primary) 8%, #f3f4f6);--neutral-border: color-mix(in srgb, var(--primary) 6%, #d1d5db);--neutral-text: color-mix(in srgb, var(--primary) 6%, #374151)}*{box-sizing:border-box}html{scrollbar-gutter:stable}@supports not (scrollbar-gutter: stable){html{overflow-y:scroll}}body{margin:0;font-family:Segoe UI,Microsoft YaHei,system-ui,sans-serif;background:var(--page-bg);background-color:var(--page-bg-solid, var(--page-bg));color:var(--text-primary, var(--text));min-height:100vh}a{color:var(--primary);text-decoration:none}a:hover{color:var(--primary-dark)}.app-shell{display:flex;min-height:100vh}.sidebar{width:168px;background:var(--sidebar-bg);background-color:var(--sidebar-solid, #1a1f26);color:var(--sidebar-text);flex-shrink:0;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;box-shadow:3px 0 14px #00000029;border-right:1px solid rgba(255,255,255,.06)}.sidebar .brand{padding:1rem .85rem;font-weight:700;font-size:var(--fs-2xl);letter-spacing:.04em;color:var(--sidebar-brand, #fff);border-bottom:1px solid var(--sidebar-border, rgba(255,255,255,.1));line-height:1.3;text-shadow:var(--sidebar-brand-shadow, 0 1px 2px rgba(0,0,0,.35));display:flex;align-items:center;justify-content:space-between;gap:.4rem}.brand-signature{display:inline-flex;align-items:center;gap:.5rem;min-width:0}.brand-mark{display:block;width:2.15rem;height:2.15rem;flex:0 0 2.15rem}.sidebar .brand-signature>span{min-width:0;overflow:hidden;text-overflow:ellipsis}.brand-title-sparkle{background:linear-gradient(110deg,#d6ebff,#7ec4f4 30%,#5ee0d0,#7ec4f4 80%,#d6ebff);background-size:220% auto;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;text-shadow:none;animation:brand-title-shine 3.2s linear infinite;filter:drop-shadow(0 0 8px rgba(94,224,208,.28)) drop-shadow(0 1px 0 rgba(255,255,255,.18))}@keyframes brand-title-shine{0%{background-position:0% center}to{background-position:220% center}}@media(prefers-reduced-motion:reduce){.brand-title-sparkle{animation:none}}@media print{.brand-title-sparkle{animation:none;background:none;color:inherit;-webkit-text-fill-color:inherit;filter:none}}.sidebar-close{display:none;border:0;background:#ffffff1f;color:#fff;width:2rem;height:2rem;border-radius:var(--radius-md, 8px);font-size:var(--fs-2xl);line-height:1;cursor:pointer}.nav-toggle{display:none;border:1px solid var(--border-metal, rgba(0,0,0,.12));background:var(--card-solid, #fff);color:var(--text);width:2.35rem;height:2.35rem;border-radius:var(--radius-md, 8px);font-size:var(--fs-xl);cursor:pointer;flex-shrink:0}.topbar-left{display:flex;align-items:center;gap:.55rem;min-width:0;flex:1}.topbar-right{display:flex;align-items:center;gap:.4rem;margin-left:auto;flex:0 0 auto;min-width:0}.topbar-actions{display:flex;flex-wrap:wrap;gap:.3rem;align-items:center;justify-content:flex-end;min-height:0}.topbar-actions .btn,.topbar-actions .btn.btn-sm,.guest-topbar-actions .btn,.guest-topbar-actions .btn.btn-sm,.guest-page-actions .btn,.guest-page-actions .btn.btn-sm{padding:.2rem .7rem;font-size:var(--fs-sm);line-height:1.2;min-height:1.65rem;height:1.65rem;box-sizing:border-box}.topbar-actions .btn-icon,.topbar-actions .btn.btn-icon{width:1.65rem;height:1.65rem;min-width:1.65rem;min-height:1.65rem;padding:0!important}.sidebar-backdrop{display:none}.sidebar nav a{display:flex;align-items:center;gap:.4rem;padding:.62rem .74rem;color:var(--sidebar-text);border-left:3px solid transparent;font-size:var(--fs-lg);font-weight:700;line-height:1.25}.nav-group{margin:.15rem 0}.nav-group-toggle{display:flex;align-items:center;justify-content:space-between;gap:.35rem;width:100%;padding:.62rem .74rem;border:0;border-left:3px solid transparent;background:transparent;color:var(--sidebar-text);font:inherit;font-size:var(--fs-lg);font-weight:700;line-height:1.25;text-align:left;cursor:pointer}.nav-group-toggle:hover{background:#ffffff0f;color:#fff}.nav-group-toggle.active{background:#ffffff1a;color:#fff;border-left-color:var(--sidebar-active)}.nav-group-caret{flex-shrink:0;font-size:var(--fs-xs);opacity:.85;transition:transform .15s ease}.nav-group.open .nav-group-caret{transform:rotate(180deg)}.nav-group-items{display:none;padding:.05rem 0 .2rem}.nav-group.open .nav-group-items{display:block}.sidebar nav .nav-group-items a{padding:.38rem .74rem .38rem 1.36rem;font-size:var(--fs-md);font-weight:700;line-height:1.25;opacity:.96;letter-spacing:0;gap:.3rem}.sidebar nav .nav-group-items a .nav-badge{min-width:1.1rem;padding:0 .32rem;font-size:var(--fs-xs);font-weight:700}.sidebar nav .nav-section{margin:.12rem 0 .28rem}.sidebar nav .nav-section+.nav-section{margin-top:.18rem;padding-top:.38rem;border-top:1px solid rgba(255,255,255,.12)}.sidebar nav .nav-section-label{display:block;margin:0 .55rem;padding:.18rem .68rem .12rem;color:#e8eef3;font-size:var(--fs-xs);font-weight:700;letter-spacing:0;line-height:1.2}.modal-overlay,.export-modal,.ae-modal,.gs-modal{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:1rem}.modal-overlay,.export-modal{z-index:200}.modal-overlay[hidden],.export-modal[hidden],.gs-modal[hidden]{display:none!important}.modal-backdrop,.export-modal-backdrop,.ae-modal-backdrop,.gs-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--overlay)}.modal-panel,.export-modal-panel,.ae-modal-panel,.gs-panel{position:relative;z-index:1;width:min(520px,100%);max-height:min(80vh,640px);overflow:auto;background:var(--card-solid, #fff);border-radius:var(--modal-radius);box-shadow:var(--elev-2);padding:1rem 1.1rem 1.1rem;border:1px solid var(--border-metal, rgba(0,0,0,.08))}.modal-panel--md,.gs-panel{width:min(560px,100%)}.modal-panel--lg,.ae-modal-panel{width:min(640px,100%);max-height:min(88vh,720px)}.modal-panel--xl,.export-modal-wide{width:min(720px,100%)}.modal-head,.export-modal-head,.ae-modal-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.75rem}.modal-x,.export-modal-x,.ae-modal-x{border:0;background:transparent;font-size:var(--fs-2xl);line-height:1;cursor:pointer;color:var(--muted);padding:.1rem .35rem}.file-ai-body{white-space:pre-wrap;word-break:break-word;font-size:var(--fs-base);line-height:1.55;min-height:6rem;max-height:min(60vh,32rem);overflow:auto}.export-col-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.55rem}.export-col-toolbar input[type=search]{border:1px solid #d8dee4;border-radius:var(--radius-md, 8px);padding:.4rem .65rem;font-size:var(--fs-base);background:var(--card-bg);color:var(--text);font-family:inherit;line-height:1.25;min-height:2.15rem;box-sizing:border-box;-moz-appearance:none;appearance:none;-webkit-appearance:none}.export-col-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem .65rem}.export-col-item{display:flex;align-items:center;gap:.4rem;font-size:var(--fs-base);cursor:pointer}@media(max-width:520px){.export-col-grid{grid-template-columns:1fr}}.nav-badge{margin-left:auto;min-width:1.2rem;padding:.05rem .35rem;border-radius:var(--radius-pill, 999px);background:#e74c3c;color:#fff;font-size:var(--fs-xs);font-weight:700;text-align:center;line-height:1.3}.sidebar nav a:hover{background:#ffffff0f;color:#fff}.sidebar nav a.active{background:#ffffff1a;color:#fff;border-left-color:var(--sidebar-active)}.sidebar .side-footer{margin-top:auto;padding:.85rem .75rem 1rem;border-top:1px solid rgba(255,255,255,.08);font-size:var(--fs-base)}.side-user-inline{display:flex;flex-wrap:nowrap;align-items:center;gap:.35rem .55rem;min-width:0;width:100%}.side-user-inline .side-user-name{max-width:38%;flex:0 1 auto}.side-user-inline .side-user-role{flex:0 0 auto}.side-user-inline .side-logout-inline{margin-left:auto;flex:0 0 auto}.side-user-inline .logout-form{display:inline;margin:0}.side-user-inline .logout-form button{background:none;border:0;padding:0;font:inherit;cursor:pointer;color:var(--sidebar-brand, #fff);opacity:.9;font-weight:700;white-space:nowrap}.side-user-inline .logout-form button:hover{opacity:1;text-decoration:underline}.side-footer .side-theme-form{margin-top:.55rem;width:100%}.side-user-row{display:flex;flex-direction:column;align-items:stretch;gap:.45rem}.side-user-info{min-width:0;width:100%}.side-user-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .45rem;min-width:0}.side-user-name{font-weight:700;color:var(--sidebar-brand, #fff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.35;font-size:var(--fs-base);max-width:100%}.side-user-role{font-size:var(--fs-xs);font-weight:400;opacity:.9;line-height:1.2;white-space:nowrap;flex-shrink:0;color:var(--sidebar-text, #fff)}.side-theme-form{width:100%}.side-theme-select{width:100%;max-width:none;border:1px solid var(--sidebar-control-border, rgba(255,255,255,.28));border-radius:var(--radius-md, 8px);background:var(--sidebar-control-bg, rgba(0,0,0,.28));color:var(--sidebar-brand, #fff);font-size:var(--fs-xs);padding:.32rem .35rem;cursor:pointer}.side-theme-select option{color:#1e293b;background:#fff}.side-footer-links{margin-top:.55rem;font-size:var(--fs-base)}.side-guest-remain{color:var(--sidebar-text, #fff);font-size:var(--fs-xs);margin:0 0 .35rem;line-height:1.4}.side-guest-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .75rem;margin-bottom:.35rem}.side-guest-actions span{color:var(--sidebar-text, #fff);font-size:var(--fs-xs)}.side-footer-links a,.side-footer-links .logout-form button{color:var(--sidebar-brand, #fff);opacity:.9;font-weight:700}.side-footer-links .logout-form{display:inline;margin:0}.side-footer-links .logout-form button{background:none;border:0;padding:0;font:inherit;cursor:pointer}.side-footer-links a:hover,.side-footer-links .logout-form button:hover{opacity:1;text-decoration:underline}.duty-popup-dlg{border:0;border-radius:var(--radius-lg, 12px);padding:0;max-width:min(520px,94vw);width:min(520px,94vw);margin:auto;box-shadow:var(--elev-2)}.duty-popup-dlg::backdrop{background:#0f172a7a}.duty-popup-inner{padding:1.75rem 1.7rem 1.55rem;text-align:center;display:flex;flex-direction:column;align-items:center}.duty-popup-title{margin:0 0 .75rem;font-size:var(--fs-3xl);font-weight:700;color:#0f172a;letter-spacing:.02em;width:100%;text-align:center}.duty-popup-lead{margin:0;font-size:var(--fs-lg);line-height:1.65;color:#334155;text-align:left;width:100%;max-width:18rem}.duty-popup-list{margin:.65rem auto 1.25rem;padding-left:1.4rem;font-size:var(--fs-lg);line-height:1.75;color:#1e293b;text-align:left;max-width:18rem;width:100%;box-sizing:border-box}.duty-popup-actions{display:flex!important;justify-content:center!important;align-items:center!important;width:100%!important;margin-top:.5rem;text-align:center}.duty-popup-btn{display:inline-flex!important;align-items:center!important;justify-content:center!important;margin-left:auto!important;margin-right:auto!important;min-width:9.5rem;min-height:2.75rem;font-size:var(--fs-xl)!important;font-weight:700!important;padding:.6rem 1.8rem!important;border-radius:var(--radius-pill, 999px)!important;float:none!important}.main-area{flex:1;min-width:0;display:flex;flex-direction:column}@media(min-width:861px){body.is-app:not(.has-mobile-switch){height:100dvh;overflow:hidden}body.is-app:not(.has-mobile-switch) .app-shell{height:100%;min-height:0;overflow:hidden}body.is-app:not(.has-mobile-switch) .sidebar{height:100%;max-height:100%;align-self:stretch;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}body.is-app:not(.has-mobile-switch) .main-area{height:100%;min-height:0;overflow:auto;overscroll-behavior:contain}}.content,.content .card-panel,.content .data-table,.content .data-table td,.content .data-table th,.content code,.content pre,.content p,.content span,.content a,.content input,.content textarea,.content select{-webkit-user-select:text;user-select:text}.topbar{background:var(--card-bg);background-color:var(--card-solid, var(--card-bg));border-bottom:1px solid var(--border-metal, rgba(0,0,0,.06));height:2.85rem;min-height:2.85rem;max-height:2.85rem;padding:0 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;position:sticky;top:0;z-index:40;box-shadow:0 1px #0000000a;box-sizing:border-box}.topbar h1{margin:0;font-size:var(--fs-2xl);font-weight:700;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.content{padding:1.25rem}.pager-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.55rem;margin-top:.85rem;padding-top:.65rem;border-top:1px solid var(--border-metal, rgba(0,0,0,.08))}.pager-nav{display:flex;flex-wrap:wrap;gap:.3rem;align-items:center}.pager-btn{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;padding:.28rem .55rem;border-radius:var(--radius-md, 8px);border:1px solid var(--border-metal, rgba(0,0,0,.12));background:var(--card-solid, #fff);color:var(--text);text-decoration:none;font-size:var(--fs-base);font-weight:700}a.pager-btn:hover{border-color:var(--primary);color:var(--primary-dark, var(--primary))}.pager-btn.active{background:var(--btn-grad, var(--primary));border-color:var(--primary-dark, var(--primary));color:#fff}.pager-btn.disabled{opacity:.45;cursor:default;pointer-events:none}.msg-filter-tabs{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 .85rem}.msg-filter-tabs a{padding:.35rem .75rem;border-radius:var(--radius-pill, 999px);border:1px solid var(--border-metal);text-decoration:none;color:var(--muted);font-size:var(--fs-base);font-weight:700;background:var(--card-solid, #fff)}.msg-filter-tabs a:hover{color:var(--text);border-color:var(--primary)}.msg-filter-tabs a.active{color:#fff;background:var(--btn-grad, var(--primary));border-color:var(--primary-dark, var(--primary))}.module-tabs{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.4rem;margin:0 0 .75rem;border-bottom:1px solid #dbe2ea;position:relative;z-index:2}.module-tab{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1.15rem;border-radius:var(--radius-md, 8px) var(--radius-md, 8px) 0 0;font-size:var(--fs-md);font-weight:700;color:var(--ink-soft, #5b6b80);text-decoration:none!important;background:var(--panel-muted-bg, #f1f5f9);border:1px solid #dbe2ea;border-bottom:none;margin-bottom:-1px;cursor:pointer;pointer-events:auto;-webkit-user-select:none;user-select:none;transition:all .12s;min-height:2.4rem;box-sizing:border-box}.module-tab:hover{background:color-mix(in srgb,var(--primary) 10%,#fff);color:var(--primary-dark, var(--primary))}.module-tab.active{background:var(--primary);color:#fff;border-color:var(--primary)}.sys-admin-tabs-bar{display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:flex-end;gap:.4rem;margin:0 0 .85rem;padding:0;background:transparent;border:none;border-bottom:1px solid #dbe2ea;border-radius:0;box-shadow:none}.sys-admin-tab{display:inline-flex;align-items:center;padding:.55rem 1.15rem;border-radius:var(--radius-md, 8px) var(--radius-md, 8px) 0 0;border:1px solid var(--line, #e2e8f0);border-bottom:none;background:var(--neutral-bg, #f3f4f6);color:var(--ink-soft, #5b6b80);font-size:var(--fs-md);font-weight:700;text-decoration:none;white-space:nowrap;line-height:1.25;transition:all .12s;margin-bottom:-1px}.sys-admin-tab:hover{background:color-mix(in srgb,var(--primary) 10%,#fff);color:var(--primary-dark, var(--primary));border-color:var(--line, #e2e8f0)}.sys-admin-tab.active{color:#fff;background:var(--primary);border-color:var(--primary);box-shadow:none}@media(max-width:720px){.sys-admin-tab{padding:.45rem .85rem;font-size:var(--fs-base)}}.todo-preview-list,.dash-twin-body{display:grid;gap:.28rem;align-content:start}.todo-preview-item,.dash-twin-item{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.35rem .6rem;padding:.3rem .5rem .3rem .55rem;border-radius:var(--radius-md, 8px);border:1px solid var(--border-metal);border-left:3px solid var(--border-metal);background:var(--card-solid, #fff)}.todo-preview-item:hover,.dash-twin-item:hover{background:var(--panel-soft-bg, #f8fafc)}.todo-preview-item .todo-main,.dash-twin-item .todo-main{flex:1;min-width:9rem}.todo-preview-item .todo-main strong,.dash-twin-item .todo-main strong{display:block;margin-bottom:0;line-height:1.2;font-size:var(--fs-sm)}.todo-preview-item .todo-main .muted,.dash-twin-item .todo-main .muted{line-height:1.15;font-size:var(--fs-xs)}.todo-preview-item .remind-tag,.dash-twin-item .remind-tag{margin-right:.25rem}.todo-preview-item:has(.remind-tag.danger),.dash-twin-item.is-danger,.dash-twin-item:has(.remind-tag.danger){border-left-color:#ef4444}.todo-preview-item:has(.remind-tag.warn),.dash-twin-item.is-warn,.dash-twin-item:has(.remind-tag.warn){border-left-color:var(--primary)}.dash-twin-item.is-warn.is-risk{border-left-color:var(--warning)}.dash-twin-actions{display:inline-flex;align-items:center;gap:.35rem;flex-shrink:0}.ae-subnav{display:flex;flex-wrap:wrap;gap:.4rem;margin:-.15rem 0 1rem;padding:.5rem .6rem;background:var(--card-solid, #fff);border:1px solid var(--border-metal, rgba(0,0,0,.08));border-radius:var(--radius-lg, 12px);box-shadow:var(--shadow-metal, 0 1px 4px rgba(0,0,0,.06))}.ae-subnav .ae-nav-admin{margin-left:auto}.ae-panel{min-height:40vh}.ae-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:.85rem}.ae-toolbar input,.ae-toolbar select{min-height:var(--ctl-min-h);border-radius:var(--ctl-radius);border:var(--ctl-border-w) solid var(--ctl-border-color);padding:var(--ctl-pad-y) var(--ctl-pad-x);font-family:inherit;font-size:var(--ctl-fs);line-height:var(--ctl-lh);background:var(--ctl-bg);color:var(--ctl-color)}.ae-toolbar input[type=search],.ae-toolbar input[type=text]{min-width:180px;flex:1}.ae-muted{color:var(--muted);font-size:var(--fs-base)}.ae-badge{display:inline-block;padding:.12rem .45rem;border-radius:var(--radius-pill, 999px);font-size:var(--fs-xs);font-weight:700}.ae-badge.ok{background:color-mix(in srgb,var(--primary) 18%,#fff);color:var(--primary-dark, var(--primary))}.ae-badge.warn{background:#fff3d8;color:#b45309}.ae-badge.red{background:#fee4e2;color:#b42318}.ae-rate{font-weight:700;color:var(--primary-dark, var(--primary));font-size:var(--fs-lg)}.ae-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.75rem}.ae-item-card{background:var(--card-solid, #fff);border:1px solid var(--border-metal);border-radius:var(--radius-md, 8px);padding:.75rem .9rem;box-shadow:var(--shadow-metal)}.ae-item-card h4{margin:0 0 .35rem;font-size:var(--fs-lg)}.ae-chip-row{display:flex;flex-wrap:wrap;gap:.4rem}.ae-chip{padding:.35rem .7rem;border-radius:var(--radius-md, 8px);border:1px solid var(--border-metal);background:#fff;cursor:pointer;font-size:var(--fs-base);font-weight:700}.ae-chip:hover{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 12%,#fff)}.ae-chip.active{color:#fff;background:var(--btn-grad, var(--primary));border-color:var(--primary-dark, var(--primary))}.ae-grade{margin-top:.5rem;padding:.55rem .7rem;border-radius:var(--radius-md, 8px);background:color-mix(in srgb,var(--primary) 10%,#fff);font-size:var(--fs-base);line-height:1.45}.ae-grade.g2{background:color-mix(in srgb,var(--primary) 16%,#eef2f6)}.ae-grade.g3{background:#fee4e2}.ae-grade b,.ae-grade.g2 b{color:var(--primary-dark, var(--primary))}.ae-grade.g3 b{color:#b42318}.ae-form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.65rem}.ae-form-grid label{display:block;font-size:var(--fs-sm);color:var(--muted);margin-bottom:.2rem}.ae-form-grid .full{grid-column:1 / -1}.ae-result-box{margin-top:.75rem;padding:.9rem 1rem;border-radius:var(--radius-md, 8px);border:1px solid var(--border-metal);background:var(--page-bg-solid, #f8fafb)}@media(max-width:720px){.ae-subnav .ae-nav-admin{margin-left:0;width:100%}}.ae-modal{z-index:220}.ae-modal-fields{display:grid;grid-template-columns:1fr 1fr;gap:.65rem .75rem}.ae-modal-field label{display:block;font-size:var(--fs-sm);color:var(--muted);margin-bottom:.2rem}.ae-modal-field.full{grid-column:1 / -1}.ae-modal-field input,.ae-modal-field select,.ae-modal-field textarea{width:100%;min-height:var(--ctl-min-h);border-radius:var(--ctl-radius);border:var(--ctl-border-w) solid var(--ctl-border-color);padding:var(--ctl-pad-y) var(--ctl-pad-x);font:inherit;font-size:var(--ctl-fs);line-height:var(--ctl-lh);color:var(--ctl-color);background:var(--ctl-bg);box-sizing:border-box}.ae-modal-field textarea{min-height:72px;resize:vertical}.ae-modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.ae-modal-msg{margin-top:.5rem;min-height:1.2em}@media(max-width:560px){.ae-modal-fields{grid-template-columns:1fr}}.card-panel{background:var(--card-bg);background-color:var(--card-solid, var(--card-bg));border-radius:var(--radius-lg, 12px);box-shadow:var(--elev-1);border:1px solid var(--border-metal, rgba(0,0,0,.06));padding:1rem 1.15rem;margin-bottom:1rem}.stat-grid{display:flex;flex-wrap:nowrap;gap:.55rem}.stat-card{flex:1 1 0;min-width:0;background:var(--card-bg);background-color:var(--card-solid, var(--card-bg));border-radius:var(--radius-lg, 12px);padding:.85rem .6rem;box-shadow:var(--elev-1);border:1px solid var(--border-metal, transparent);border-top:3px solid var(--primary);text-align:center}.stat-card .label{color:var(--muted);font-size:var(--fs-base);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat-card .value{font-size:var(--fs-3xl);font-weight:700;margin-top:.25rem;color:var(--text)}.stat-card.dash-metric{position:relative;padding:.7rem .7rem 1.45rem!important;text-align:left}.stat-card.dash-metric .label{font-size:var(--fs-base)}.stat-card.dash-metric .value{margin-top:.2rem;font-weight:700;line-height:1.1}.stat-mom{position:absolute;right:.5rem;bottom:.35rem;font-size:var(--fs-lg);font-weight:700;font-variant-numeric:tabular-nums;line-height:1;letter-spacing:.01em}table.data-table th.col-panorama,table.data-table td.col-panorama{width:1.4rem!important;min-width:1.4rem!important;max-width:1.5rem!important;text-align:center;padding:.3rem 0!important;white-space:nowrap;box-sizing:border-box;overflow:hidden}table.data-table th.col-panorama{font-size:0;line-height:0;color:transparent}table.data-table th.col-panorama:after{content:"🌐";font-size:var(--fs-base);line-height:1;color:#334155;font-weight:400}.panorama-orb{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;margin:0 auto;font-size:var(--fs-md);line-height:1;text-decoration:none;vertical-align:middle;border-radius:var(--radius-pill, 999px);transition:background .12s ease,transform .12s ease}.panorama-orb:hover{background:#1565c01f;transform:scale(1.08);text-decoration:none}.panorama-link-inline{text-decoration:none;margin-right:.12rem;margin-left:0;font-size:calc(.95rem - 1px)}.panorama-page{max-width:1180px}.panorama-hero{margin-bottom:.9rem}.panorama-hero-top{display:flex;align-items:flex-start;gap:.65rem;margin-bottom:.75rem}.panorama-globe{font-size:1.75rem;line-height:1}.panorama-avatar{width:48px;height:48px;border-radius:50%;object-fit:cover}.panorama-title{margin:0;font-size:var(--fs-2xl);font-weight:700;line-height:1.35;word-break:break-word}.panorama-sub{margin:.25rem 0 0;font-size:var(--fs-base);line-height:1.45;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.panorama-meta{display:grid;grid-template-columns:repeat(auto-fill,minmax(10.5rem,1fr));gap:.45rem .75rem;font-size:var(--fs-base)}.panorama-meta .k{display:block;color:var(--ink-soft, #5b6b80);font-size:var(--fs-xs);margin-bottom:.1rem}.panorama-meta .v{font-weight:700;color:#1e293b;word-break:break-word}.panorama-meta-inline{display:flex;flex-wrap:nowrap;align-items:baseline;gap:.2rem .95rem;overflow-x:auto;font-size:var(--fs-base)}.panorama-meta-inline>div{display:inline-flex;align-items:baseline;gap:.28rem;flex:0 0 auto;white-space:nowrap}.panorama-meta-inline .k{display:inline;margin:0;color:var(--ink-soft, #5b6b80);font-size:var(--fs-sm)}.panorama-meta-inline .v{font-weight:700;color:#1e293b}.panorama-meta-strong .k{font-weight:700;color:#334155}.panorama-meta-strong .v{font-weight:700;font-size:var(--fs-lg);color:#0f172a}.panorama-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.panorama-section h3{margin:0 0 .55rem;font-size:var(--fs-lg);font-weight:700}.panorama-h4{margin:.75rem 0 .35rem;font-size:var(--fs-base);font-weight:700;color:#334155}.panorama-list{margin:0;padding-left:1.1rem;font-size:var(--fs-base);line-height:1.55}.panorama-list.compact{font-size:var(--fs-base)}.panorama-section-wide{grid-column:1 / -1}.dash-my-panorama,.dash-my-panorama .dash-pano-title,.dash-my-panorama .dash-pano-title .muted,.dash-my-panorama .dash-twin-head h3,.dash-my-panorama h3,.dash-my-panorama .btn,.dash-my-panorama .dash-proj-chip{font-weight:400!important;font-synthesis:none}.dash-my-panorama .dash-pano-title,.dash-my-panorama .dash-twin-head h3,.dash-my-panorama h3{margin:0;font-size:calc(1.15rem - 1px);line-height:1.35}.dash-my-panorama .dash-pano-title .muted,.dash-my-panorama h3 .muted{font-size:calc(.85rem - 1px)}.dash-panorama-cta{display:inline-flex!important;align-items:center;justify-content:center;min-height:2.55rem!important;padding:.55rem 1.2rem!important;font-size:calc(1.05rem - 1px)!important;font-weight:400!important;border-radius:var(--radius-lg, 12px)!important;box-shadow:0 4px 14px color-mix(in srgb,var(--primary) 28%,transparent);white-space:nowrap}.dash-panorama-cta:hover{filter:brightness(1.05);box-shadow:0 6px 18px color-mix(in srgb,var(--primary) 35%,transparent)}.dash-my-projects{margin-top:.75rem;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.4rem .45rem;align-items:stretch}@media(max-width:960px){.dash-my-projects{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:560px){.dash-my-projects{grid-template-columns:repeat(2,minmax(0,1fr))}}.dash-proj-chip{display:flex!important;align-items:center;justify-content:flex-start;gap:.28rem;font-size:calc(.875rem - 1px)!important;font-weight:400!important;padding:.4rem .55rem .4rem .28rem!important;min-height:2.3rem!important;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:var(--radius-md, 8px)!important;box-sizing:border-box}.dash-proj-globe{flex:0 0 auto;line-height:1;font-size:calc(1rem - 1px)}.dash-proj-more{display:flex;align-items:center;font-size:var(--fs-md)}.dash-my-panorama .dash-twin-head{gap:.75rem}.panorama-section .data-table.compact-table th,.panorama-section .data-table.compact-table td{font-size:calc(.95rem - 1px)!important;font-weight:400;padding:.45rem .55rem!important}.panorama-section .data-table.compact-table td:has(.panorama-link-inline){padding-left:.18rem!important}.panorama-section .data-table.compact-table strong{font-size:calc(1.02rem - 1px);font-weight:400}table.data-table.compact-table th,table.data-table.compact-table td{padding:.35rem .45rem;font-size:var(--fs-sm)}.pano-detail-table td{white-space:nowrap}table.table th,table.table td,.table-cells-center th,.table-cells-center td{text-align:center;vertical-align:middle}table.table .col-full,table.table .col-note,table.table .col-file,.table-cells-center .col-full,.table-cells-center .col-note,.table-cells-center .col-file{text-align:left}.table-cells-center .guest-actions-row{justify-content:center}.panorama-section .data-table.compact-table:not(.pano-detail-table) th,.panorama-section .data-table.compact-table:not(.pano-detail-table) td{text-align:center}.panorama-section .data-table.compact-table .col-file{text-align:left}.pano-detail-table td:last-child{white-space:normal;max-width:22rem}.pano-crc-devices th.col-pano-provider,.pano-crc-devices td.col-pano-provider{max-width:5.4em;width:5.4em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pano-occ{display:inline-block;padding:.08rem .4rem;border-radius:var(--radius-pill, 999px);font-size:var(--fs-xs);font-weight:700;line-height:1.35}.pano-occ-other{background:#fef3c7;color:#92400e}.pano-occ-project{background:#ecfdf5;color:#047857}.pano-occ-busy{background:#eff6ff;color:#1d4ed8}.pano-occ-free{background:#f1f5f9;color:var(--ink-soft, #5b6b80)}@media(max-width:820px){.panorama-grid{grid-template-columns:1fr}.panorama-section-wide{grid-column:auto}}.searchable-select{position:relative;width:100%;min-width:0}.searchable-select-field{position:relative;display:flex;align-items:stretch;width:100%;min-width:0}.searchable-select-input{width:100%;box-sizing:border-box;padding-right:2.4rem!important}.searchable-select-toggle{position:absolute;right:2px;top:2px;bottom:2px;width:2.1rem;display:inline-flex;align-items:center;justify-content:center;border:0;border-left:1px solid color-mix(in srgb,var(--primary, #64748b) 35%,#cbd5e1);border-radius:0 var(--radius-md, 8px) var(--radius-md, 8px) 0;background:color-mix(in srgb,var(--primary, #64748b) 14%,#f1f5f9);color:color-mix(in srgb,var(--primary, #334155) 70%,#0f172a);cursor:pointer;font-size:var(--fs-lg);line-height:1;padding:0;box-shadow:inset 0 1px #ffffff8c}.searchable-select-toggle:hover{background:color-mix(in srgb,var(--primary, #64748b) 28%,#e2e8f0)}.searchable-select.is-open .searchable-select-toggle{background:color-mix(in srgb,var(--primary, #64748b) 35%,#dbeafe);color:color-mix(in srgb,var(--primary, #1d4ed8) 80%,#0f172a)}.searchable-select-chevron{display:block;font-weight:700;transform:scale(1.15,.95)}.searchable-select.is-open .searchable-select-chevron{transform:scale(1.15,.95) rotate(180deg)}.searchable-select-list{display:none;position:absolute;left:0;right:0;top:calc(100% + 2px);z-index:80;max-height:240px;overflow:auto;background:#fff;border:1px solid #cbd5e1;border-radius:var(--radius-md, 8px);box-shadow:var(--elev-2)}.searchable-select-list.open{display:block}.searchable-select-item{padding:.45rem .65rem;font-size:var(--fs-base);cursor:pointer;line-height:1.35;border-bottom:1px solid var(--panel-muted-bg, #f1f5f9)}.searchable-select-item:last-child{border-bottom:0}.searchable-select-item:hover,.searchable-select-item.active{background:color-mix(in srgb,var(--primary) 8%,#fff);color:var(--primary-dark, var(--primary))}.searchable-select-item.is-placeholder{color:var(--ink-faint, #5f6f85)}.searchable-select-item.searchable-select-custom{color:var(--primary-dark, #0b5ed7);font-weight:700;background:color-mix(in srgb,var(--primary) 8%,#fff)}.searchable-select-empty{padding:.6rem .7rem;font-size:var(--fs-sm);color:var(--ink-faint, #5f6f85)}.stat-mom.up{color:#dc2626}.stat-mom.down{color:#16a34a}.stat-mom.flat{color:var(--ink-soft, #5b6b80)}.table-scroll-shell{position:relative;border:1px solid rgba(0,0,0,.08);border-radius:var(--radius-md, 8px);background:var(--card-solid, #fff);overflow:hidden}.table-scroll-bar,.table-scroll-btns{display:none}.crc-pick-box{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .65rem;padding:.5rem .75rem;border:1px dashed var(--border-metal, #ced4da);border-radius:var(--radius-md, 8px);background:#00000005;width:100%;max-width:42rem;box-sizing:border-box}.crc-pick-box>label{display:inline;flex:0 0 auto;margin:0;white-space:nowrap;overflow:visible;text-overflow:unset;font-size:var(--fs-base)!important}.form-group.w-search-wide .crc-pick-box,.form-group:has(.crc-pick-box){max-width:42rem}.crc-pick-options{display:flex;flex-wrap:nowrap;align-items:center;gap:.45rem;margin-top:0;flex:0 0 auto;min-width:max-content}.crc-pick-chip{display:inline-flex;flex-direction:row;align-items:center;flex:0 0 auto;gap:.35rem;padding:.35rem .7rem;border-radius:var(--radius-pill, 999px);border:1px solid var(--border-metal, #ced4da);cursor:pointer;font-size:var(--fs-base);background:var(--card-solid, #fff);white-space:nowrap;writing-mode:horizontal-tb;word-break:keep-all;overflow-wrap:normal;min-width:max-content}.crc-pick-chip span{display:inline;white-space:nowrap;writing-mode:horizontal-tb;word-break:keep-all;overflow-wrap:normal}.crc-pick-chip:has(input:checked){border-color:var(--primary);background:color-mix(in srgb,var(--primary) 8%,transparent);font-weight:700}.filter-panel{margin-bottom:.9rem;position:sticky;top:2.85rem;z-index:25;background:var(--card-solid, #ffffff);padding:.55rem .15rem .65rem;border-bottom:1px solid var(--border-metal, rgba(0,0,0,.08));box-shadow:var(--elev-1)}.card-panel>.filter-panel,.card-panel>.toolbar.sticky-toolbar{margin-left:-.25rem;margin-right:-.25rem;padding-left:.35rem;padding-right:.35rem}.toolbar.sticky-toolbar{position:sticky;top:2.85rem;z-index:25;background:var(--card-solid, #ffffff);padding:.45rem 0 .55rem;margin-bottom:.55rem;border-bottom:1px solid var(--border-metal, rgba(0,0,0,.06))}.filter-row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:flex-start;margin-bottom:.15rem}.subject-filter-line{flex-wrap:nowrap;align-items:center;gap:.4rem}.subject-filter-line input[type=search]{width:7rem;min-width:7rem;max-width:7rem;flex:0 0 7rem}.subject-filter-line .filter-wrap{flex:0 0 auto}.subject-filter-line .filter-chip-btn{white-space:nowrap;padding:.32rem .6rem}@media(max-width:1100px){.subject-filter-line{flex-wrap:wrap}}.filter-chip-btn{border:1px solid var(--border-metal, #ced4da);background:var(--card-solid, #fff);color:var(--text);border-radius:var(--radius-pill, 999px);padding:.35rem .75rem;font-size:var(--fs-base);cursor:pointer;font-weight:700}.filter-chip-btn.has-value{border-color:var(--primary);color:var(--primary-dark, var(--primary));background:#e8f0fe}.filter-pop{display:none;position:absolute;z-index:50;min-width:200px;max-width:320px;max-height:280px;overflow-y:auto;padding:.65rem .75rem;background:#fff;background:var(--card-solid, #fff);border:1px solid var(--border-metal, #ced4da);border-radius:var(--radius-lg, 12px);box-shadow:var(--elev-2);margin-top:.3rem}.filter-pop.open{display:block}.filter-pop label{display:flex;align-items:center;gap:.4rem;padding:.28rem 0;font-size:var(--fs-base);cursor:pointer}.filter-wrap{position:relative;display:inline-block}.filter-actions{display:flex;gap:.4rem;margin-top:.5rem}.table-wrap,.table-scroll{overflow-x:auto;overflow-y:auto;max-height:var(--table-scroll-max, calc(100vh - 240px) );-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-gutter:stable;scrollbar-width:auto;scrollbar-color:var(--primary) rgba(0,0,0,.12);position:relative;background:var(--card-solid, #fff)}.table-wrap::-webkit-scrollbar,.table-scroll::-webkit-scrollbar{height:16px;width:16px}.table-wrap::-webkit-scrollbar-thumb,.table-scroll::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--primary),var(--primary-dark, var(--primary)));border-radius:10px;border:3px solid rgba(255,255,255,.55);min-height:40px}.table-wrap::-webkit-scrollbar-thumb:hover,.table-scroll::-webkit-scrollbar-thumb:hover{background:var(--primary-dark, var(--primary))}.table-wrap::-webkit-scrollbar-track,.table-scroll::-webkit-scrollbar-track{background:#0000001a;border-radius:10px}.table-wrap::-webkit-scrollbar-corner,.table-scroll::-webkit-scrollbar-corner{background:transparent}.table-scroll-shell:after{display:none}@media(min-width:861px)and (min-height:561px){.app-shell:has(.content .fill-viewport){height:100vh;min-height:0}.app-shell:has(.content .fill-viewport) .main-area{min-height:0}.app-shell:has(.content .fill-viewport) .content{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}:where(.app-shell:has(.content .fill-viewport) .content,.content :has(.fill-viewport),.fill-viewport,.fill-viewport :has(:is(.table-scroll,.table-wrap)))>*{flex-shrink:0}.content :has(.fill-viewport),.fill-viewport,.fill-viewport :has(:is(.table-scroll,.table-wrap)){display:flex;flex-direction:column;flex:0 1 auto;min-height:0}.fill-viewport :is(.table-scroll,.table-wrap){flex:0 1 auto;min-height:0;max-height:none}.fill-viewport .table-scroll-shell:has(tbody tr:nth-child(4)),.fill-viewport :is(.table-scroll,.table-wrap):has(tbody tr:nth-child(4)){min-height:6rem}}table.data-table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--fs-base);background:var(--card-solid, #fff)}table.data-table.wide-table{width:max-content;min-width:100%}table.data-table th,table.data-table td{padding:.42rem .62rem;border-bottom:1px solid rgba(15,23,42,.055);text-align:left;vertical-align:middle;max-width:320px;word-break:break-word;background:var(--card-solid, #ffffff);background-color:var(--card-solid, #ffffff)}table.data-table th{background:var(--table-head-bg, #f6f8fa)!important;background-color:var(--table-head-bg, #f6f8fa)!important;font-weight:700;white-space:nowrap;position:sticky;top:0;z-index:5;box-shadow:0 1px #d8dee4;color:var(--text)}table.data-table tbody tr:nth-child(2n) td{background:var(--table-stripe-bg, #fafbfc)!important;background-color:var(--table-stripe-bg, #fafbfc)!important}table.data-table tbody tr:nth-child(odd) td{background:var(--card-solid, #ffffff)!important;background-color:var(--card-solid, #ffffff)!important}table.data-table tr:hover td{background:var(--table-hover-bg, #f1f6fd)!important;background-color:var(--table-hover-bg, #f1f6fd)!important}table.data-table.wide-table th:first-child,table.data-table.wide-table td:first-child{position:sticky;left:0;z-index:4;box-shadow:2px 0 4px #0000000f;min-width:120px;max-width:260px;background:var(--card-solid, #ffffff);background-color:var(--card-solid, #ffffff)}table.data-table.wide-table th.col-panorama,table.data-table.wide-table td.col-panorama{position:sticky!important;left:0!important;z-index:5;min-width:1.4rem!important;max-width:1.5rem!important;width:1.4rem!important;box-shadow:2px 0 4px #0000000f;background:var(--card-solid, #ffffff)!important;background-color:var(--card-solid, #ffffff)!important}table.data-table.wide-table thead th.col-panorama{top:0!important;z-index:9!important;background:var(--table-head-bg, #f6f8fa)!important;background-color:var(--table-head-bg, #f6f8fa)!important}table.data-table.wide-table th.col-panorama:first-child,table.data-table.wide-table td.col-panorama:first-child{min-width:1.4rem!important;max-width:1.5rem!important;width:1.4rem!important}table.data-table.wide-table tbody tr:nth-child(2n) td:first-child,table.data-table.wide-table tbody tr:nth-child(2n) td.col-panorama{background:var(--table-stripe-bg, #fafbfc)!important;background-color:var(--table-stripe-bg, #fafbfc)!important}table.data-table.wide-table tbody tr:nth-child(odd) td:first-child,table.data-table.wide-table tbody tr:nth-child(odd) td.col-panorama{background:var(--card-solid, #ffffff)!important;background-color:var(--card-solid, #ffffff)!important}table.data-table.wide-table tbody tr:hover td:first-child,table.data-table.wide-table tbody tr:hover td.col-panorama{background:var(--table-hover-bg, #f1f6fd)!important;background-color:var(--table-hover-bg, #f1f6fd)!important}table.data-table.wide-table th:first-child{z-index:6;background:var(--table-head-bg, #f6f8fa)!important;background-color:var(--table-head-bg, #f6f8fa)!important}table.data-table.wide-table th.col-actions,table.data-table.wide-table td.col-actions{position:sticky!important;right:0!important;z-index:5;width:4.25rem;min-width:4.25rem!important;max-width:5.5rem!important;padding-left:.28rem!important;padding-right:.28rem!important;box-shadow:-2px 0 4px #0000000f;background:var(--card-solid, #ffffff)!important;background-color:var(--card-solid, #ffffff)!important;white-space:nowrap;text-align:center}table.data-table.wide-table tbody tr:nth-child(2n) td.col-actions{background:var(--table-stripe-bg, #fafbfc)!important;background-color:var(--table-stripe-bg, #fafbfc)!important}table.data-table.wide-table tbody tr:nth-child(odd) td.col-actions{background:var(--card-solid, #ffffff)!important;background-color:var(--card-solid, #ffffff)!important}table.data-table.wide-table tbody tr:hover td.col-actions{background:var(--table-hover-bg, #f1f6fd)!important;background-color:var(--table-hover-bg, #f1f6fd)!important}table.data-table.wide-table thead th.col-actions{top:0!important;z-index:9!important;background:var(--table-head-bg, #f6f8fa)!important;background-color:var(--table-head-bg, #f6f8fa)!important}.remind-banner{border-radius:var(--radius-md, 8px);padding:.75rem 1rem;margin-bottom:.85rem;border:1px solid #f0d78c;background:#fff8e6;color:#5c4500}.remind-banner.danger{border-color:#f0b4b4;background:#fff0f0;color:#6b1c1c}.remind-banner a{font-weight:700}.row-remind{background:#fffaf0!important}.row-remind-danger{background:#fff5f5!important}.remind-tag{white-space:nowrap;display:inline-block;margin-left:.25rem;padding:.1rem .4rem;border-radius:var(--radius-md, 8px);font-size:var(--fs-xs);font-weight:700;vertical-align:middle}.remind-tag.warn{background:#ffe8a3;color:#6a4b00}.remind-tag.danger{background:#ffc9c9;color:#7a1f1f}.remind-tag.word-same{background:#d3f9d8;color:#1b4332}.word-align-note{display:block;margin-top:.15rem;color:#7a1f1f;font-size:var(--fs-xs);max-width:18rem;white-space:normal;line-height:1.35}.remind-tag.todo,.badge-todo{background:color-mix(in srgb,var(--primary) 18%,#fff);color:color-mix(in srgb,var(--primary-dark, var(--primary)) 85%,#000);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--primary) 45%,#fff)}.row-remind-todo{background:color-mix(in srgb,var(--primary) 5%,#fff)!important}.role-filter-bar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:.55rem .85rem;margin:0 0 .85rem}.role-filter-actions{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.role-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.55rem;margin-bottom:1rem}.role-tabs.subject-hub-tabs{grid-template-columns:repeat(8,minmax(0,1fr))}.role-tabs.subject-hub-tabs .role-tab strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:1100px){.role-tabs.subject-hub-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:640px){.role-tabs.subject-hub-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}}.role-tabs.crc-visit-tabs{display:flex;flex-wrap:nowrap;align-items:stretch;gap:.4rem;overflow-x:auto}.crc-visit-tabs .role-tab{flex:1 1 auto;min-width:0;padding:.78rem .75rem .78rem .9rem;align-items:flex-start;justify-content:center;text-align:left}.crc-visit-tabs .role-tab strong{font-size:var(--fs-lg);white-space:nowrap;text-align:left}.role-tabs.role-tabs-inline{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.4rem;margin:0;border-bottom:1px solid var(--line, #e2e8f0);flex:1 1 auto;min-width:0}.role-tab{display:flex;flex-direction:column;gap:.25rem;padding:.65rem .7rem;border-radius:var(--radius-lg, 12px);background:var(--surface, #fff);border:1px solid var(--line, #e2e8f0);box-shadow:var(--elev-1);color:var(--ink, #0f172a);text-decoration:none!important;font-size:var(--fs-lg);position:relative;transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease}.role-tabs-inline .role-tab{flex-direction:row;align-items:baseline;gap:.35rem;padding:.5rem 1.05rem;border-radius:var(--radius-md, 8px) var(--radius-md, 8px) 0 0;border:1px solid var(--line, #e2e8f0);border-bottom:none;background:var(--neutral-bg, #f3f4f6);box-shadow:none;font-size:var(--fs-md);font-weight:700;color:var(--ink-soft, #5b6b80);margin-bottom:-1px;white-space:nowrap}.role-tab strong{font-size:var(--fs-lg);font-weight:700;letter-spacing:.01em}.sidebar nav a{font-weight:700}.sidebar nav a.active{font-weight:700}.role-tab:hover{border-color:var(--primary);color:#0f172a;background:color-mix(in srgb,var(--primary) 8%,#fff)}.role-tabs-inline .role-tab:hover{background:color-mix(in srgb,var(--primary) 10%,#fff);color:var(--primary-dark, var(--primary));border-color:var(--line, #e2e8f0)}.role-tab:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.role-tab.active{border-color:color-mix(in srgb,var(--primary) 58%,#dbe2ea);background:color-mix(in srgb,var(--primary) 14%,#fff);box-shadow:inset 0 -3px 0 var(--primary),0 3px 10px #0f172a14;color:var(--text)}.role-tabs-inline .role-tab.active{color:var(--text);background:color-mix(in srgb,var(--primary) 14%,#fff);border-color:color-mix(in srgb,var(--primary) 58%,#dbe2ea);box-shadow:inset 0 -3px 0 var(--primary)}.role-tab span{font-size:var(--fs-sm);color:var(--ink-soft, #5b6b80)}.role-tab.active span{color:inherit}.role-tabs-inline .role-tab span{font-size:var(--fs-base);font-weight:700;color:inherit;opacity:.9}.role-tabs-inline .role-tab.active span{opacity:1}.perm-module-list{display:flex;flex-direction:column;gap:.85rem}.perm-module-card{border:1px solid rgba(0,0,0,.08);border-radius:var(--radius-lg, 12px);overflow:hidden;background:var(--card-bg)}.perm-module-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.6rem;padding:.75rem 1rem;background:#00000008;border-bottom:1px solid rgba(0,0,0,.05)}.perm-module-head h3{margin:0 0 .35rem;font-size:var(--fs-lg)}.perm-flags{display:flex;flex-wrap:wrap;gap:.85rem;font-size:var(--fs-base)}.perm-module-body{padding:.85rem 1rem 1rem}.perm-legend{font-size:var(--fs-base);color:var(--muted);margin-bottom:1rem;line-height:1.6}.perm-legend .pl-none{color:#842029;font-weight:700}.perm-legend .pl-view{color:#055160;font-weight:700}.perm-legend .pl-edit{color:#0a58ca;font-weight:700}.perm-legend .pl-full{color:#0f5132;font-weight:700}.perm-level-badge{display:inline-block;font-size:var(--fs-xs);font-weight:700;padding:.15rem .55rem;border-radius:var(--radius-pill, 999px);background:var(--neutral-bg, #f3f4f6);color:var(--neutral-text, #374151)}.perm-level-badge[data-level=none]{background:#f8d7da;color:#842029}.perm-level-badge[data-level=view]{background:#cff4fc;color:#055160}.perm-level-badge[data-level=edit]{background:#cfe2ff;color:#084298}.perm-level-badge[data-level=full]{background:#d1e7dd;color:#0f5132}.access-level-group{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.55rem}.access-level-opt{display:flex;flex-direction:column;gap:.2rem;padding:.65rem .75rem;border:2px solid rgba(0,0,0,.08);border-radius:var(--radius-md, 8px);cursor:pointer;background:var(--card-solid, #fff);transition:border-color .12s,box-shadow .12s}.access-level-opt input{margin:0 0 .15rem}.access-level-opt .alo-title{font-weight:700;font-size:var(--fs-base);color:var(--text)}.access-level-opt .alo-desc{font-size:var(--fs-xs);color:var(--muted);line-height:1.35}.access-level-opt.is-on{border-color:var(--primary);box-shadow:0 0 0 3px #0d6efd1f}.access-level-opt.access-none.is-on{border-color:#dc3545;box-shadow:0 0 0 3px #dc35451f}.access-level-opt.access-view.is-on{border-color:#0dcaf0;box-shadow:0 0 0 3px #0dcaf026}.access-level-opt.access-edit.is-on{border-color:#0d6efd}.access-level-opt.access-full.is-on{border-color:#198754;box-shadow:0 0 0 3px #1987541f}.perm-help{background:#00000008;border-radius:var(--radius-md, 8px);padding:.75rem 1rem;margin-bottom:1rem;font-size:var(--fs-base)}.perm-help ul{margin:.4rem 0 0;padding-left:1.2rem}.perm-help li{margin:.25rem 0}.perm-table-wrap{margin-bottom:1rem}.perm-check-table th.col-check,.perm-check-table td.col-check{text-align:center;white-space:nowrap;width:5.5rem}.perm-cb{display:inline-flex;flex-direction:column;align-items:center;gap:.2rem;cursor:pointer;font-size:var(--fs-xs);color:var(--muted);-webkit-user-select:none;user-select:none}.perm-cb input{width:1.1rem;height:1.1rem;cursor:pointer}.perm-cb input:disabled{cursor:not-allowed;opacity:.45}.perm-summary{font-size:var(--fs-base)}.perm-summary.is-none{color:#842029;font-weight:700}.perm-summary.is-view{color:#055160;font-weight:700}.perm-summary.is-edit{color:#0a58ca;font-weight:700}table.access-log-table td,table.access-log-table th{word-break:normal!important;overflow-wrap:normal!important;padding-top:.28rem;padding-bottom:.28rem}.access-log-page .table-scroll,.access-log-page .table-wrap{max-height:calc((100vh - 240px) * 2 / 3)}table.access-log-table th.col-time,table.access-log-table td.col-time{width:6.4rem!important;max-width:6.6rem!important;white-space:nowrap!important}table.access-log-table th.col-user,table.access-log-table td.col-user{min-width:9.5rem!important;width:11rem!important;max-width:14rem!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}table.access-log-table th.col-geo,table.access-log-table td.col-geo{max-width:7.2rem!important;width:7.2rem!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}table.data-table th.col-ua,table.data-table td.col-ua,table.access-log-table td.col-ua{max-width:140px!important;width:120px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;word-break:keep-all!important;font-size:var(--fs-base);color:var(--muted)}table.data-table td.nowrap,table.data-table th.nowrap{white-space:nowrap!important;word-break:normal!important}.perm-section-title{margin:1.1rem 0 .55rem;font-size:var(--fs-lg);font-weight:700}.perm-big-cb{width:1.25rem!important;height:1.25rem!important;accent-color:var(--primary)}.module-level-checks{display:flex;flex-wrap:wrap;gap:.65rem 1rem;align-items:center}.perm-cb-h{display:inline-flex;align-items:center;gap:.35rem;font-size:var(--fs-base);font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none}.field-perm-table th.col-check,.field-perm-table td.col-check{text-align:center;width:4.5rem}.field-perm-block{margin-bottom:.9rem}.field-perm-block .perm-module-head{flex-direction:column;align-items:flex-start;gap:.55rem}.col-picker-all{display:flex;align-items:center;gap:.4rem;margin-bottom:.55rem;font-size:var(--fs-base);cursor:pointer}.col-picker-grid{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:.55rem}.col-picker-grid.is-disabled{opacity:.45}.col-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.28rem .55rem;border-radius:var(--radius-pill, 999px);border:1px solid rgba(0,0,0,.1);background:#00000005;font-size:var(--fs-sm);cursor:pointer;-webkit-user-select:none;user-select:none}.col-chip:has(input:checked){border-color:var(--primary);background:color-mix(in srgb,var(--primary) 8%,transparent);color:var(--primary-dark)}.col-picker-actions{display:flex;gap:.4rem;flex-wrap:wrap}.role-pick{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem;margin-top:.4rem}.role-pick-card{display:flex;gap:.65rem;align-items:flex-start;padding:.9rem 1rem;border:2px solid rgba(0,0,0,.08);border-radius:var(--radius-lg, 12px);cursor:pointer;background:var(--card-bg)}.role-pick-card:has(input:checked){border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 10%,transparent)}.role-pick-card strong{display:block;margin-bottom:.25rem}.role-pick-card p{margin:0;font-size:var(--fs-sm);color:var(--muted)}.sticky-actions{position:sticky;bottom:0;background:var(--card-bg);padding:.75rem 0;border-top:1px solid rgba(0,0,0,.06);z-index:6}.btn{display:inline-flex;align-items:center;gap:.3rem;border:1px solid transparent;border-radius:var(--radius-md, 8px);padding:.4rem .85rem;font-size:var(--fs-base);cursor:pointer;background:var(--action, var(--primary));background-color:var(--action, var(--primary));color:var(--text-on-action, #fff);text-decoration:none;box-shadow:none;text-shadow:none}.btn:hover{background:var(--action-hover, var(--primary-dark, var(--primary)));background-color:var(--action-hover, var(--primary-dark, var(--primary)));filter:none;color:var(--text-on-action, #fff)}.btn-outline{background:transparent;color:var(--action, var(--primary));border:1px solid var(--action, var(--primary));box-shadow:none;text-shadow:none}.btn-outline:hover{background:var(--action, var(--primary));color:var(--text-on-action, #fff)}.btn-sm{padding:.25rem .55rem;font-size:var(--fs-sm)}.btn.btn-xs{padding:.14rem .3rem;font-size:var(--fs-sm);min-height:1.55rem}.btn-danger{background:var(--danger);background-color:var(--danger);border-color:transparent;color:var(--text-on-action, #fff)}.btn-danger:hover{background:var(--danger-hover);background-color:var(--danger-hover);color:var(--text-on-action, #fff)}.btn-outline-danger{background:transparent;color:var(--danger-text);border:1px solid var(--danger-border);box-shadow:none;text-shadow:none}.btn-outline-danger:hover{background:var(--danger-bg);color:var(--danger-hover);border-color:var(--danger)}.batch-bar{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;margin-bottom:.55rem}.alert-strip{margin-bottom:.85rem;padding:.65rem 1rem;border:1px solid color-mix(in srgb,var(--neutral-border, #94a3b8) 55%,#fff);border-radius:var(--radius-md, 8px);background:var(--action-subtle, color-mix(in srgb, var(--primary) 3%, #fff))}.alert-strip p{margin:0;font-size:var(--fs-base);line-height:1.5}.alert-strip-danger{border-color:color-mix(in srgb,var(--danger) 45%,#fff);background:var(--danger-bg)}.alert-strip-warn{border-color:color-mix(in srgb,var(--warning) 45%,#fff);background:var(--warning-bg)}.alert-strip-success{border-color:color-mix(in srgb,var(--success) 45%,#fff);background:var(--success-bg)}.btn-secondary{background:var(--neutral);background-color:var(--neutral);border-color:transparent;color:var(--text-on-action, #fff)}.btn-secondary:hover{background:var(--neutral-hover);background-color:var(--neutral-hover);color:var(--text-on-action, #fff)}.btn-soft{background:var(--action-subtle, color-mix(in srgb, var(--primary) 12%, #fff));background-color:var(--action-subtle, color-mix(in srgb, var(--primary) 12%, #fff));border:1px solid color-mix(in srgb,var(--primary) 32%,#fff);color:color-mix(in srgb,var(--primary-dark, var(--primary)) 82%,#000);box-shadow:none;text-shadow:none}.btn-soft:hover{background:color-mix(in srgb,var(--primary) 22%,#fff);background-color:color-mix(in srgb,var(--primary) 22%,#fff);color:color-mix(in srgb,var(--primary-dark, var(--primary)) 70%,#000)}.btn-success{background:var(--success);background-color:var(--success);border-color:transparent;color:var(--text-on-action, #fff)}.btn-success:hover{background:var(--success-hover);background-color:var(--success-hover);color:var(--text-on-action, #fff)}.btn-warning{background:var(--warning);background-color:var(--warning);border-color:transparent;color:var(--text-on-action, #fff)}.btn-warning:hover{background:var(--warning-hover);background-color:var(--warning-hover);color:var(--text-on-action, #fff)}.badge,.emr-count-badge,.pka-badge,.ld-badge{display:inline-block;padding:.15rem .5rem;border-radius:var(--radius-pill, 999px);font-size:var(--fs-xs);font-weight:700}.badge-success,.badge-theme{background:color-mix(in srgb,var(--primary) 18%,#fff);color:color-mix(in srgb,var(--primary-dark, var(--primary)) 85%,#000)}.badge-warning,.ld-badge.warn{background:var(--warning-bg);color:var(--warning-text);font-weight:700}.badge-danger,.ld-badge.danger,.pka-badge-ECG{background:var(--danger-bg);color:var(--danger-text);font-weight:700}.is-manual-drug{color:var(--danger-text, var(--danger, #b91c1c))!important;font-weight:700}.badge-info,.emr-count-badge,.pka-badge-PK{background:var(--info-bg);color:var(--info-text)}.badge-ok,.pka-badge-VS{background:var(--ok-bg);color:var(--ok-text)}.badge-secondary,.ld-badge,.pka-badge-OTHER{background:var(--neutral-bg);color:var(--neutral-text)}.badge-role-admin,.badge-role-advanced,.badge-role-normal,.badge-role-crc,.badge-role-cra,.badge-status-on,.badge-status-pending,.badge-status-off{background:none;border:1px solid transparent;border-radius:0;padding:calc(.15rem - 1px) 0;font-weight:var(--fw-normal, 400);color:color-mix(in srgb,var(--primary-dark, var(--primary)) 82%,#000)}.badge-status-pending{color:var(--warning-text)}.badge-status-off{color:#5f6877}.badge-done{background:#dcfce7;color:#14532d}.badge-text-ok{background:none;color:#14532d;font-weight:var(--fw-normal, 400)}.badge-sm{padding:0 .12rem;font-size:.7rem;line-height:1.25}.supplies-analysis-card .sup-risk-col .badge{padding:0 .28rem;font-size:inherit;font-weight:400;line-height:inherit}.chip{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .5rem;border-radius:var(--radius-pill, 999px);font-size:var(--fs-xs);font-weight:700;line-height:1.3;border:1px solid transparent;max-width:100%;box-sizing:border-box}.chip-block{display:block;border-radius:var(--radius-md, 8px);padding:.45rem .7rem;min-height:1.6rem;white-space:pre-wrap;line-height:1.45;font-weight:700}.chip-info{background:color-mix(in srgb,var(--primary) 12%,#f1f5f9);color:color-mix(in srgb,var(--primary) 45%,#0f172a);border-color:color-mix(in srgb,var(--primary) 22%,#e2e8f0)}.chip-ok{background:var(--ok-bg);color:var(--ok-text);border-color:color-mix(in srgb,var(--ok) 25%,#e2e8f0)}.chip-warn{background:var(--warn-bg);color:var(--warn-text);border-color:color-mix(in srgb,var(--warn) 30%,#e2e8f0)}.chip-muted{background:var(--neutral-bg);color:var(--neutral-text);border-color:var(--neutral-border)}.chip-accent{background:color-mix(in srgb,var(--primary) 14%,#fff);color:color-mix(in srgb,var(--primary) 55%,#0f172a);border-color:color-mix(in srgb,var(--primary) 28%,#e2e8f0)}.chip--toggle{cursor:pointer;background:var(--card-solid, #fff);border-color:var(--neutral-border)}.chip--toggle.is-on{background:var(--primary);border-color:var(--primary);color:#fff}.chip button,.chip .chip-x{border:0;background:transparent;cursor:pointer;color:inherit;opacity:.75;font-size:var(--fs-base);line-height:1;padding:0 .1rem}.chip button:hover,.chip .chip-x:hover{opacity:1}.hint-warn{color:#92400e;font-size:var(--fs-sm);margin:0}table.data-table .badge-days.badge-danger{background:#fee2e2!important;color:#991b1b!important;min-width:2rem}table.data-table .badge-days.badge-warning{background:#fef3c7!important;color:#92400e!important;min-width:2rem}.short-name-parts{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.45rem .35rem}.short-name-parts .short-part{display:flex;flex-direction:column;gap:.25rem;min-width:0;flex:0 1 7.4rem;max-width:9.4rem}.short-name-parts .short-part-code{flex:0 1 10.8rem;max-width:13.2rem}.short-name-parts .short-part-stage{flex:0 1 8.6rem;max-width:10.6rem}.short-name-parts .short-part-extra{flex:0 0 5.4rem;max-width:5.8rem}.short-name-parts .short-part-count{flex:0 0 4.4rem;width:4.4rem;max-width:4.4rem;margin-right:.2rem}.short-name-parts .short-part-lead{margin-left:1.75rem;flex:0 0 5rem;max-width:5.6rem}.short-name-parts .short-part-label{font-size:var(--fs-xs);color:var(--muted);font-weight:700}.short-name-parts .short-part input,.short-name-parts .short-part select{width:100%;min-width:0;min-height:2.2rem;font-size:var(--fs-md)}.short-name-parts .short-sep{flex:0 0 auto;padding-bottom:.55rem;font-weight:700;color:var(--muted);font-size:var(--fs-xl);line-height:1;-webkit-user-select:none;user-select:none}@media(max-width:640px){.short-name-parts .short-sep{display:none}.short-name-parts .short-part{flex:1 1 45%}}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:.9rem 1rem;align-items:start}.form-group{display:flex;flex-direction:column;gap:.3rem;min-width:0}.form-group.full{grid-column:1 / -1}.form-group.w-date{max-width:11.5rem;min-width:10rem}.form-group.w-date input[type=date]{width:100%;max-width:11.5rem;min-width:10rem;font-variant-numeric:tabular-nums;font-size:var(--fs-base);padding-left:.45rem;padding-right:.35rem}.form-group.w-short{max-width:140px}.form-group.w-enrolled{max-width:11rem}.form-group.w-phone{max-width:160px}.form-group.w-num{max-width:130px}.form-group.w-name{max-width:180px}.form-group label.label-one-line{white-space:nowrap!important;overflow:visible;line-height:1.35}table.data-table th.col-name-3,table.data-table td.col-name-3{max-width:5.5em!important;min-width:3.2em!important;width:4.2em!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left;padding-left:.4rem!important;padding-right:.35rem!important;box-sizing:border-box}table.data-table.wide-table th.col-name-3,table.data-table.wide-table td.col-name-3,table.col-resizable th.col-name-3,table.col-resizable td.col-name-3{position:sticky!important;left:1.4rem!important;z-index:5!important;box-shadow:2px 0 5px #00000012;background:var(--card-solid, #ffffff)!important;background-color:var(--card-solid, #ffffff)!important}table.data-table.wide-table thead th.col-name-3,table.col-resizable thead th.col-name-3{top:0!important;z-index:9!important;background:var(--table-head-bg, #f6f8fa)!important;background-color:var(--table-head-bg, #f6f8fa)!important}table.data-table.wide-table tbody tr:nth-child(2n) td.col-name-3{background:var(--table-stripe-bg, #fafbfc)!important;background-color:var(--table-stripe-bg, #fafbfc)!important}table.data-table.wide-table tbody tr:nth-child(odd) td.col-name-3{background:var(--card-solid, #ffffff)!important;background-color:var(--card-solid, #ffffff)!important}table.data-table.wide-table tbody tr:hover td.col-name-3{background:var(--table-hover-bg, #f1f6fd)!important;background-color:var(--table-hover-bg, #f1f6fd)!important}#crc-list-table th.col-name-3,#crc-list-table td.col-name-3{position:sticky!important;left:1.4rem!important}#crc-list-table thead th.col-name-3{top:0!important;z-index:9!important}#crc-list-table th.col-deduct-note,#crc-list-table td.col-deduct-note{max-width:8rem!important;min-width:4.5rem;width:8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.form-group.w-mid{max-width:220px}.form-group.w-drug-name{max-width:120px}.form-group.w-drug-name input,.form-group.w-drug-name select,#drug-form .form-group input,#drug-form .form-group select,#drug-form .project-search-input{max-width:80%}#drug-form .form-group.w-drug-name input,#drug-form .form-group.w-drug-name select{max-width:100%}#drug-form .red-bag-line{display:inline-flex;align-items:center;gap:.4rem;width:auto;max-width:100%;font-weight:400;color:var(--text)}#drug-form .red-bag-line input[type=checkbox]{width:auto;max-width:none;margin:0;flex:0 0 auto}#drug_name_select{-moz-appearance:auto;appearance:auto;-webkit-appearance:menulist;background-image:none;border:1.5px solid color-mix(in srgb,var(--primary, #64748b) 40%,#cbd5e1)!important;background-color:color-mix(in srgb,var(--primary, #64748b) 6%,#fff);font-weight:700;cursor:pointer;padding-right:1.6rem}table.data-table th.col-check,table.data-table td.col-check{width:.75rem!important;min-width:.75rem!important;max-width:.9rem!important;padding-left:.15rem!important;padding-right:.15rem!important;text-align:center}table.data-table th.col-check input,table.data-table td.col-check input{margin:0;transform:scale(.9);transform-origin:center}table.data-table th.col-drug-name,table.data-table td.col-drug-name,table.data-table.wide-table th.col-drug-name:first-child,table.data-table.wide-table td.col-drug-name:first-child{max-width:174px!important;min-width:72px;width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}table.data-table th.col-one-line,table.data-table td.col-one-line{max-width:240px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}table.data-table th.col-days-exp,table.data-table td.col-days-exp{white-space:nowrap;width:4.5rem;text-align:center;max-width:5.5rem!important}.form-group.w-search{max-width:360px;min-width:220px}.form-group input.input-one-line{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tool-group-panel{padding:.65rem .8rem .75rem!important;margin-bottom:.6rem}.tool-group-title{margin:0 0 .5rem!important;font-size:var(--fs-base)!important;font-weight:700;color:var(--text)}.tool-cards,.tool-cards.tool-cards-row{display:flex;flex-wrap:wrap;gap:.55rem;width:100%;justify-content:flex-start;align-items:stretch}.tool-card{flex:0 0 132px;width:132px;min-width:132px;max-width:132px;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;padding:.7rem .4rem .65rem;border-radius:var(--radius-lg, 12px);border:1px solid var(--border-metal, rgba(0,0,0,.1));background:var(--card-solid, #fff);box-shadow:var(--shadow-metal, 0 1px 4px rgba(0,0,0,.06));color:inherit;transition:.15s;min-height:82px;text-align:center;text-decoration:none}@media(max-width:420px){.tool-card{flex-basis:calc(50% - .3rem);width:calc(50% - .3rem);min-width:calc(50% - .3rem);max-width:calc(50% - .3rem)}}.tool-card:hover{border-color:var(--primary);color:inherit}.tool-card-icon{font-size:var(--fs-2xl);line-height:1;margin:0}.tool-card strong{display:block;font-size:var(--fs-sm);font-weight:700;margin:0;line-height:1.25}.tool-card span{display:none}.tool-result{margin-top:.85rem;padding:.85rem 1rem;border-radius:var(--radius-lg, 12px);background:#edf7f5;border:1px solid #cceae5;white-space:pre-wrap;font-size:var(--fs-base);line-height:1.5}.tool-result.warn{background:#fff8eb;border-color:#f1d7a5;border-left-color:#c4922a}.tool-result.bad{background:#fff4f2;border-color:#ffd3cd;border-left-color:#c23b3b}.tool-ref-figure .muted{margin:0 0 .75rem;font-size:var(--fs-base);line-height:1.45}.tool-ref-figure img{display:block;width:100%;max-width:720px;height:auto;background:#fff;border-radius:var(--radius-md, 8px);border:1px solid var(--border-metal, rgba(0,0,0,.08))}.tool-section-title{margin:0 0 .85rem;font-size:var(--fs-lg)}.mini-table input[type=number]{width:100%;min-width:4rem}.form-group.w-auto{width:fit-content;max-width:100%}.form-group.w-auto input,.form-group.w-auto select{width:auto;min-width:7em;max-width:100%;field-sizing:content}.form-group label{font-size:var(--fs-base);color:var(--muted);font-weight:400}.form-group input,.form-group select,.form-group textarea{border:1px solid #d8dee4;border-radius:var(--radius-md, 8px);padding:.45rem .65rem;font-size:var(--fs-base);background:var(--card-solid, var(--card-bg));color:var(--text);width:100%;max-width:100%;box-sizing:border-box}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:2px solid var(--primary);outline-offset:1px;border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 16%,transparent)}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled,.form-group input[readonly],.form-group textarea[readonly]{background:#f6f8fa;color:var(--ink-soft, #5b6b80);border-color:#d8dee4}.form-group input[type=date],.form-group input[type=month],.form-group input[type=number]{width:auto;min-width:9.5em;max-width:100%;font-family:inherit;line-height:1.25;min-height:2.15rem;box-sizing:border-box}.form-group textarea{min-height:80px;resize:vertical;width:100%}.form-group textarea.textarea-compact{min-height:36px;height:36px;max-height:56px;resize:vertical;line-height:1.35;padding-top:.4rem;padding-bottom:.4rem}.form-group textarea.textarea-half-line{min-height:36px!important;height:36px!important;max-height:40px;resize:none;line-height:1.35;padding-top:.4rem;padding-bottom:.4rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.form-actions{margin-top:1rem;display:flex;gap:.6rem;flex-wrap:wrap}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;min-width:26px;padding:0!important;border-radius:var(--radius-md, 8px);font-size:var(--fs-base);line-height:1;vertical-align:middle;gap:0}.btn-icon svg{display:block;pointer-events:none;width:12px;height:12px}.btn-icon.btn-outline{color:var(--primary)}.btn-icon.btn-danger{color:#c23b3b;background:transparent!important;border:1px solid rgba(194,59,59,.35);box-shadow:none;text-shadow:none}.btn-icon.btn-danger:hover{background:#c23b3b!important;color:#fff;filter:none}.action-icons{display:inline-flex;gap:.2rem;align-items:center;justify-content:center;white-space:nowrap;max-width:100%}.action-icons form{display:inline;margin:0}table.data-table td.col-actions .btn-sm,table.data-table td.col-actions .btn-icon{padding:.18rem .28rem;min-width:0}table.data-table td.col-actions .action-icons .btn{padding:.2rem .32rem;font-size:var(--fs-xs)}table.data-table th.col-short,table.data-table td.col-short{max-width:112px!important;min-width:72px;width:96px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--fs-sm)}table.data-table th.col-date,table.data-table td.col-date{width:5.8rem!important;min-width:5.5rem!important;max-width:6.1rem!important;white-space:nowrap;font-variant-numeric:tabular-nums;font-size:inherit;font-family:inherit;padding-left:.12rem!important;padding-right:.12rem!important}table.data-table th.col-enrolled,table.data-table td.col-enrolled{width:2.4rem!important;min-width:2.2rem;max-width:2.8rem!important;white-space:nowrap;font-size:var(--fs-sm);padding-left:.12rem!important;padding-right:.12rem!important;text-align:center}table.data-table th.col-doctor,table.data-table td.col-doctor{max-width:4.2rem!important;min-width:3rem;width:3.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--fs-sm);padding-left:.15rem!important;padding-right:.15rem!important;text-align:center}table.data-table th.col-screen,table.data-table td.col-screen{max-width:4.5rem!important;min-width:3.2rem;width:4rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--fs-xs);font-variant-numeric:tabular-nums;padding-left:.15rem!important;padding-right:.15rem!important}table.data-table th.col-fail,table.data-table td.col-fail{max-width:5.5rem!important;min-width:3.5rem;width:5rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--fs-xs);padding-left:.15rem!important;padding-right:.15rem!important}table.data-table th.col-address,table.data-table td.col-address{max-width:7.6em!important;min-width:5.5em;width:7.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--fs-sm)}table.data-table tr.row-dup td{background:var(--warning-soft-bg, #fff7ed)}table.data-table.projects-table-compact{font-size:var(--fs-sm);border-collapse:separate;border-spacing:0}table.data-table.projects-table-compact th,table.data-table.projects-table-compact td{padding:.32rem .4rem;max-width:200px}table.data-table.projects-table-compact thead th:nth-child(2n),table.data-table.projects-table-compact tbody td:nth-child(2n){background-color:#4a7ab00e}table.data-table.projects-table-compact thead th:nth-child(odd),table.data-table.projects-table-compact tbody td:nth-child(odd){background-color:#ffffff8c}table.data-table.projects-table-compact tbody tr:hover td{background-color:#4a7ab01a!important}table.data-table.projects-table-compact thead th{border-right:1px solid rgba(148,163,184,.35)}table.data-table.projects-table-compact tbody td{border-right:1px solid rgba(226,232,240,.9)}table.data-table.projects-table-compact th:last-child,table.data-table.projects-table-compact td:last-child{border-right:none}table.data-table.projects-table-compact th{letter-spacing:0;padding:.35rem .38rem}table.data-table.projects-table-compact th.col-p-full_name,table.data-table.projects-table-compact td.col-p-full_name{position:sticky!important;left:1.4rem!important;z-index:4;max-width:14rem!important;min-width:8rem;box-shadow:2px 0 4px #0000000f;background:var(--card-solid, #ffffff)!important;background-color:var(--card-solid, #ffffff)!important}table.data-table.projects-table-compact thead th.col-p-full_name{top:0!important;z-index:8!important;background:var(--table-head-bg, #f6f8fa)!important;background-color:var(--table-head-bg, #f6f8fa)!important}table.data-table.projects-table-compact tbody tr:nth-child(2n) td.col-p-full_name{background:var(--table-stripe-bg, #fafbfc)!important;background-color:var(--table-stripe-bg, #fafbfc)!important}table.data-table.projects-table-compact tbody tr:nth-child(odd) td.col-p-full_name{background:var(--card-solid, #ffffff)!important;background-color:var(--card-solid, #ffffff)!important}table.data-table.projects-table-compact tbody tr:hover td.col-p-full_name{background:var(--table-hover-bg, #f1f6fd)!important;background-color:var(--table-hover-bg, #f1f6fd)!important}table.data-table.projects-table-compact tbody td.col-p-full_name.col-lead-full,table.data-table.projects-table-compact tbody tr:nth-child(2n) td.col-p-full_name.col-lead-full,table.data-table.projects-table-compact tbody tr:nth-child(odd) td.col-p-full_name.col-lead-full{background:#ecfdf3!important;background-color:#ecfdf3!important}table.data-table.projects-table-compact tbody tr:hover td.col-p-full_name.col-lead-full{background:#dcfce7!important;background-color:#dcfce7!important}table.data-table.projects-table-compact th.col-p-short_name,table.data-table.projects-table-compact td.col-p-short_name,table.data-table.projects-table-compact th.col-short,table.data-table.projects-table-compact td.col-short{max-width:15rem!important;min-width:9rem;width:auto}table.data-table.projects-table-compact th.col-p-crc_display,table.data-table.projects-table-compact td.col-p-crc_display{min-width:7rem!important;max-width:10rem!important;width:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}table.data-table.projects-table-compact th.col-p-cra,table.data-table.projects-table-compact td.col-p-cra{min-width:5.2rem!important;max-width:10rem!important;width:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}table.data-table.projects-table-compact th.col-p-cancer_type,table.data-table.projects-table-compact td.col-p-cancer_type{min-width:3.6rem!important;max-width:8rem!important;width:auto;white-space:nowrap;text-align:center;padding-left:.28rem;padding-right:.28rem}table.data-table.projects-table-compact th.col-p-phase,table.data-table.projects-table-compact td.col-p-phase{min-width:3.4rem!important;max-width:6.4rem!important;width:auto;white-space:nowrap;text-align:center;padding-left:.28rem;padding-right:.28rem}table.data-table.projects-table-compact th.col-p-is_lead_site,table.data-table.projects-table-compact td.col-p-is_lead_site,table.data-table.projects-table-compact th.col-p-contract_count,table.data-table.projects-table-compact td.col-p-contract_count,table.data-table.projects-table-compact th.col-p-enrolled_count,table.data-table.projects-table-compact td.col-p-enrolled_count{max-width:3.6em!important;width:1%;white-space:nowrap;text-align:center;padding-left:.28rem;padding-right:.28rem}table.data-table.projects-table-compact th.col-p-start_date,table.data-table.projects-table-compact td.col-p-start_date{width:5.5em;min-width:5.5em;max-width:5.5em!important;white-space:nowrap;font-variant-numeric:tabular-nums}table.data-table.projects-table-compact th.col-p-updated_at,table.data-table.projects-table-compact td.col-p-updated_at{max-width:5.5em!important;white-space:nowrap;font-variant-numeric:tabular-nums}table.data-table.projects-table-compact th.col-p-status,table.data-table.projects-table-compact td.col-p-status{min-width:4.6rem!important;max-width:6.6rem!important;width:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}table.data-table.projects-table-compact th.col-p-multicenter_type,table.data-table.projects-table-compact td.col-p-multicenter_type{max-width:3.2em!important;white-space:nowrap;text-align:center}table.data-table.projects-table-compact th.col-p-agreement_no,table.data-table.projects-table-compact td.col-p-agreement_no,table.data-table.projects-table-compact th.col-p-billing_project_no,table.data-table.projects-table-compact td.col-p-billing_project_no,table.data-table.projects-table-compact th.col-p-finance_code,table.data-table.projects-table-compact td.col-p-finance_code,table.data-table th.col-finance,table.data-table td.col-finance{max-width:5.6em!important;min-width:3.6em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--fs-sm)}table.data-table .cell-ellipsis{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:default}table.data-table.projects-table-compact th.col-actions,table.data-table.projects-table-compact td.col-actions{padding:.22rem .2rem!important;width:3.8rem;min-width:3.8rem!important;max-width:4.5rem!important}.filter-year-block{border-bottom:1px solid rgba(0,0,0,.06);padding:.35rem 0 .45rem}.filter-year-block:last-of-type{border-bottom:none}.filter-year-head{display:flex;align-items:center;justify-content:space-between;gap:.4rem;font-weight:700;font-size:var(--fs-base);cursor:pointer;-webkit-user-select:none;user-select:none;padding:.15rem 0}.filter-year-head .chev{font-size:var(--fs-xs);color:var(--muted)}.filter-year-months{display:none;padding:.25rem 0 0 .35rem;columns:2;column-gap:.75rem}.filter-year-block.open .filter-year-months{display:block}.filter-year-block.open .chev{transform:rotate(90deg);display:inline-block}.filter-pop.ym-pop{min-width:240px;max-height:340px}.project-search{position:relative;width:100%;min-width:220px;max-width:420px;isolation:isolate;z-index:30}.project-search:focus-within{z-index:60}.form-group.w-search-wide{max-width:560px;min-width:280px;grid-column:1 / -1}.form-group.w-search-wide:has(.crc-pick-box){max-width:42rem}.form-group.w-search-wide .project-search{max-width:100%;min-width:0}.form-group.w-search-wide .project-search-list{max-height:380px}.project-search-input{width:100%!important;padding-right:2rem!important}.project-search-list{display:none;position:absolute;z-index:80;left:0;right:0;top:calc(100% + 4px);max-height:260px;overflow-y:auto;background:#fff;background-color:#fff;border:1px solid var(--border-metal, #ced4da);border-radius:var(--radius-md, 8px);box-shadow:var(--elev-2)}.project-search-list.open{display:block}.project-search-item{padding:.5rem .7rem;cursor:pointer;font-size:var(--fs-base);border-bottom:1px solid rgba(0,0,0,.04);background:#fff;background-color:#fff}.project-search-item:hover,.project-search-item.active{background:#e8f0fe;background-color:#e8f0fe}.project-search-item .ps-short{font-weight:700;color:var(--text)}.project-search-item .ps-full{display:block;font-size:var(--fs-xs);color:var(--muted);margin-top:.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;z-index:1}.project-search-empty{padding:.7rem;color:var(--muted);font-size:var(--fs-base)}.toolbar{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin-bottom:.9rem}.toolbar .btn,.sticky-toolbar .btn,.batch-bar .btn,.change-log-toolbar .btn,.kb-toolbar .btn{min-height:2.15rem;height:2.15rem;padding:0 .75rem;font-size:var(--fs-base);line-height:1.2;box-sizing:border-box;border-radius:8px}.toolbar .drug-expiry-alert,.sticky-toolbar .drug-expiry-alert,.toolbar .btn-red-bag-launch,.sticky-toolbar .btn-red-bag-launch{min-height:2.15rem;height:2.15rem;padding:0 .75rem;font-size:var(--fs-base);line-height:1.2;box-sizing:border-box;border-radius:var(--radius-md, 8px);font-weight:700}.change-log-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.9rem}.change-log-toolbar form{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin:0}.change-log-page .table-scroll,.change-log-page .table-wrap{max-height:calc((100vh - 240px)/2)}.toolbar input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]):not([type=submit]):not([type=button]),.toolbar select,.change-log-toolbar input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]):not([type=submit]):not([type=button]),.change-log-toolbar select,.sticky-toolbar input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]):not([type=submit]):not([type=button]),.sticky-toolbar select{border:1px solid #d8dee4;border-radius:var(--radius-md, 8px);padding:.4rem .65rem;font-size:var(--fs-base);background:var(--card-bg);color:var(--text);font-family:inherit;line-height:1.25;min-height:2.15rem;box-sizing:border-box}.toolbar input[type=search],.change-log-toolbar input[type=search],.sticky-toolbar input[type=search]{-moz-appearance:none;appearance:none;-webkit-appearance:none}.toolbar input[type=search]:focus,.toolbar input[type=text]:focus,.toolbar input[type=date]:focus,.toolbar input[type=month]:focus,.toolbar input[type=number]:focus,.toolbar select:focus,.change-log-toolbar input[type=search]:focus,.change-log-toolbar input[type=text]:focus,.change-log-toolbar input[type=date]:focus,.change-log-toolbar input[type=month]:focus,.change-log-toolbar input[type=number]:focus,.change-log-toolbar select:focus,.sticky-toolbar input[type=search]:focus,.sticky-toolbar input[type=text]:focus,.sticky-toolbar input[type=date]:focus,.sticky-toolbar input[type=month]:focus,.sticky-toolbar input[type=number]:focus,.sticky-toolbar select:focus{outline:2px solid var(--primary);outline-offset:1px;border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 16%,transparent)}.toolbar input:disabled,.toolbar select:disabled,.toolbar input[readonly],.sticky-toolbar input:disabled,.sticky-toolbar select:disabled,.sticky-toolbar input[readonly]{background:#f6f8fa;color:var(--ink-soft, #5b6b80);border-color:#d8dee4}.project-filter-bar select{max-width:11rem}.filter-local-search{width:100%;margin-bottom:.4rem;border:1px solid #d8dee4;border-radius:var(--radius-md, 8px);padding:.4rem .65rem;font-size:var(--fs-base);background:var(--card-bg);color:var(--text);font-family:inherit;line-height:1.25;min-height:2.15rem;box-sizing:border-box;-moz-appearance:none;appearance:none;-webkit-appearance:none}.alert{padding:.7rem 1rem;border-radius:var(--radius-md, 8px);margin-bottom:.8rem;font-size:var(--fs-base)}.alert-success{background:#e3edf6;color:#2a5f88;border:1px solid #c3d8ea}@supports (background: color-mix(in srgb,red 10%,white)){.alert-success{background:color-mix(in srgb,var(--primary) 10%,var(--card-solid, #ffffff));color:var(--primary-dark);border-color:color-mix(in srgb,var(--primary) 25%,transparent)}}.alert-danger{background:#f8d7da;color:#842029}.alert-warning{background:#fff3cd;color:#664d03}.alert-info{background:#cff4fc;color:#055160}body.is-guest{margin:0;min-height:100vh;background:#f3f5f8;color:#1e293b}.guest-shell{min-height:100vh}.guest-topbar{position:sticky;top:0;z-index:30;background:#fff;border-bottom:1px solid #e2e8f0}.guest-topbar-inner{max-width:1100px;margin:0 auto;padding:.65rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem}.guest-brand{font-weight:700;color:#1e293b;text-decoration:none;font-size:var(--fs-md);display:inline-flex;align-items:center;gap:.45rem}.guest-brand:hover{color:#4a7ab0}.guest-topbar-actions{display:flex;gap:.4rem;flex-wrap:wrap}.guest-main{max-width:1100px;margin:0 auto;padding:1rem 1rem 2rem}.guest-page-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.85rem}.guest-page-head h1{margin:0;font-size:var(--fs-2xl);font-weight:700;color:#1e293b}.guest-page-actions{display:flex;flex-wrap:wrap;gap:.4rem}body.is-guest .card-panel{background:#fff;border:1px solid #e2e8f0;box-shadow:0 2px 10px #1e293b0f}body.is-guest .data-table th{background:#f1f5f9!important;color:#334155!important}body.is-guest .btn-outline{color:#4a7ab0;border-color:#94b4d4}body.is-guest .btn-outline:hover{background:#4a7ab0;color:#fff}.login-page{min-height:100vh;display:grid;place-items:center;padding:1.25rem;background:radial-gradient(ellipse at 20% 20%,rgba(160,175,195,.25),transparent 50%),radial-gradient(ellipse at 80% 80%,rgba(100,120,140,.2),transparent 45%),linear-gradient(145deg,#1a1f26,#2c333d 40%,#4a5568)}.login-card{width:min(400px,92vw);background:linear-gradient(180deg,#f8fafc,#e8edf3);border-radius:16px;padding:2rem 1.75rem;box-shadow:0 20px 50px #00000059,inset 0 1px #fffc;border:1px solid rgba(255,255,255,.35);text-align:center}.login-card.metal-card h1{margin:0 0 .35rem;font-size:var(--fs-3xl);letter-spacing:.06em;text-align:center;color:#1a1f26}.login-card .login-subtitle{margin:0 0 1.35rem;color:var(--ink-soft, #5b6b80);font-size:var(--fs-md);text-align:center}.login-card .login-form{text-align:left}.login-card .login-form label{display:block;text-align:left}.login-actions{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin-top:.35rem}.login-actions .btn{width:100%;justify-content:center;min-height:2.5rem;font-weight:700}.login-card .login-remember{font-size:var(--fs-base);color:var(--ink-soft, #5b6b80);display:flex!important;gap:.4rem;align-items:center;justify-content:center;margin-bottom:1rem;text-align:center}.login-card .alert{text-align:center}.theme-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem;margin:.45rem 0 .75rem}.theme-grid.theme-grid-compact{gap:.4rem}.theme-swatch{display:flex;flex-direction:column;gap:.22rem;padding:.4rem .35rem .42rem;border-radius:8px;border:1.5px solid var(--border-metal, rgba(0,0,0,.08));cursor:pointer;background:var(--card-solid, #fff);transition:border-color .12s ease,box-shadow .12s ease;min-width:0}.theme-swatch:hover{border-color:color-mix(in srgb,var(--primary) 45%,#ccc)}.theme-swatch:has(input:checked){border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 28%,transparent)}.theme-swatch input{display:none}.theme-swatch .swatch-bar{height:20px;border-radius:4px;background:linear-gradient(90deg,#2c333d,#8a96a4 50%,#d0d6de);box-shadow:inset 0 1px #fff6}.theme-swatch[data-theme-preview=soft-sky] .swatch-bar{background:linear-gradient(90deg,#6a9fc9,#b5d4ea,#f0f7fc)}.theme-swatch[data-theme-preview=soft-teal] .swatch-bar{background:linear-gradient(90deg,#4aa8a0,#a0d8d2,#eef8f7)}.theme-swatch[data-theme-preview=medical-blue] .swatch-bar{background:linear-gradient(90deg,#0d6efd,#6ea8fe,#e7f1ff)}.theme-swatch[data-theme-preview=ocean-teal] .swatch-bar{background:linear-gradient(90deg,#0d9488,#5eead4,#ecfdf8)}.theme-swatch[data-theme-preview=blue-teal] .swatch-bar{background:linear-gradient(90deg,#1565c0,#0277bd,#00897b,#eef2f7)}.theme-swatch[data-theme-preview=indigo-pink] .swatch-bar{background:linear-gradient(90deg,#3949ab,#7e57c2,#ec407a,#eef0f8)}.theme-swatch[data-theme-preview=sunset-amber] .swatch-bar{background:linear-gradient(90deg,#cf4900,#bf5700,#b46000,#fff4ec)}.theme-swatch[data-theme-preview=emerald-sky] .swatch-bar{background:linear-gradient(90deg,#2e7d32,#43a047,#0288d1,#eef6f0)}.theme-swatch[data-theme-preview=rose-coral] .swatch-bar{background:linear-gradient(90deg,#c2185b,#e4165c,#dd3500,#fdf2f6)}.theme-swatch[data-theme-preview=forest-mint] .swatch-bar{background:linear-gradient(90deg,#1b5e20,#43a047,#26a69a,#eef6ef)}.theme-swatch .swatch-name{font-size:var(--fs-xs);text-align:center;color:var(--text);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:520px){.theme-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;background:#e9ecef;border:2px solid #dee2e6}.avatar-lg{width:120px;height:120px}.crop-box{max-width:420px;max-height:420px;margin:.5rem 0;background:#111}.crop-box img{max-width:100%;display:block}.chart-bars{display:flex;flex-direction:column;gap:.45rem}.chart-row{display:grid;grid-template-columns:100px 1fr 40px;gap:.5rem;align-items:center;font-size:var(--fs-base)}.chart-row-compact{grid-template-columns:72px 1fr 32px;gap:.35rem;font-size:var(--fs-sm)}.chart-bar-bg{background:#0000000f;border-radius:var(--radius-pill, 999px);height:10px;overflow:hidden}.chart-bar-fill{height:100%;background:var(--primary);border-radius:var(--radius-pill, 999px)}.dash-layout{display:block}.dash-main{min-width:0}.dash-drug-panel{display:none}.dash-drug-card{margin-bottom:0;box-shadow:var(--elev-1);border-top:3px solid var(--warning, #c4922a)}.dash-drug-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.35rem}.dash-drug-summary{margin:0 0 .55rem;font-size:var(--fs-base)}.dash-drug-table-wrap{max-height:min(52vh,420px);overflow:auto}.dash-row-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.85rem;margin-top:.9rem;align-items:stretch}.dash-row-two-main,.dash-row-two-side{min-width:0;display:flex}.dash-row-two-main>.dash-twin-panel,.dash-row-two-side>.dash-twin-panel{flex:1;width:100%}.dash-twin-panel{margin:0;height:100%;box-sizing:border-box;display:flex;flex-direction:column;min-height:0}.dash-twin-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;flex-shrink:0}.dash-twin-head h3{margin:0;font-size:var(--fs-lg);font-weight:700;line-height:1.25}.dash-twin-summary{margin:.3rem 0 .4rem;font-size:var(--fs-sm);line-height:1.35;flex-shrink:0}.dash-twin-body{flex:1;min-height:0;max-height:min(52vh,420px);overflow:auto}.dash-twin-empty{margin:.35rem 0 0;font-size:var(--fs-sm)}.dash-drug-panel-inline{height:100%;box-sizing:border-box}.dash-drug-row{display:flex;justify-content:flex-end;align-items:center;margin-top:.75rem;margin-bottom:.15rem}@media(max-width:900px){.dash-row-two{grid-template-columns:1fr}}.dash-drug-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .85rem;border-radius:var(--radius-pill, 999px);font-size:var(--fs-base);font-weight:700;text-decoration:none;border:1px solid var(--border-metal, rgba(0,0,0,.12));background:var(--card-solid, #fff);color:var(--text);white-space:nowrap}.dash-drug-chip-detail{font-weight:400;font-size:var(--fs-sm);opacity:.9;margin-left:.15rem}.dash-drug-chip strong{min-width:1.25rem;text-align:center;padding:.05rem .35rem;border-radius:var(--radius-pill, 999px);background:#0000000f}.dash-drug-chip.is-warn{border-color:color-mix(in srgb,var(--warning, #c4922a) 55%,#fff);background:color-mix(in srgb,var(--warning, #c4922a) 12%,#fff);color:#8a5a10}.dash-drug-chip.is-danger{border-color:color-mix(in srgb,var(--danger, #c23b3b) 50%,#fff);background:color-mix(in srgb,var(--danger, #c23b3b) 12%,#fff);color:var(--danger, #c23b3b)}.dash-drug-chip.is-ok{color:var(--muted);font-weight:700}.text-danger{color:var(--danger, #c23b3b)}.text-warn{color:#b45309}.dash-grid{display:grid;grid-template-columns:minmax(160px,.72fr) minmax(0,1.28fr);gap:1rem;align-items:start}.dash-grid.dash-grid-equal{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.dash-grid.dash-grid-equal.is-single{grid-template-columns:minmax(0,1fr)}.dash-crc-panel,.dash-rank-panel{min-width:0;height:100%;box-sizing:border-box}.dash-panel-wide{min-width:0}.dash-recent-full{width:100%;min-width:0}.data-table-compact{font-size:var(--fs-sm);width:100%}.data-table-compact th,.data-table-compact td{padding:.35rem .4rem!important;white-space:nowrap}.data-table-compact .col-crc-name{max-width:4.5rem;overflow:hidden;text-overflow:ellipsis}.data-table-compact th:nth-child(2),.data-table-compact td:nth-child(2),.data-table-compact th:nth-child(3),.data-table-compact td:nth-child(3){width:3rem;text-align:center}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1rem}.muted{color:var(--muted)}.text-truncate-1{display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.text-truncate-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal}.form-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.form-tile{display:block;padding:1.25rem;border-radius:var(--radius-lg, 12px);background:var(--card-bg);box-shadow:var(--elev-1);border:1px solid transparent;transition:.15s}.form-tile:hover{border-color:var(--primary);transform:translateY(-2px);color:inherit}.form-tile h3{margin:0 0 .35rem;font-size:var(--fs-lg)}.form-tile p{margin:0;font-size:var(--fs-base);color:var(--muted)}@media(max-width:860px){body.nav-lock{overflow:hidden}body.is-app{overflow-x:hidden}.app-shell{min-height:100vh;max-width:100vw}.nav-toggle,.sidebar-close{display:inline-flex;align-items:center;justify-content:center}.sidebar{position:fixed;left:0;top:0;bottom:0;width:min(78vw,260px);height:100vh;z-index:320;transform:translate(-105%);transition:transform .22s ease;box-shadow:8px 0 28px #00000047}.app-shell.nav-open .sidebar{transform:translate(0)}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:310;background:#0f141e73}.sidebar-backdrop[hidden]{display:none!important}.sidebar .brand{font-size:var(--fs-md);padding:.7rem .75rem}.sidebar nav{display:flex;flex-direction:column;flex:1;overflow-y:auto;padding-bottom:.5rem}.sidebar nav a{border-left:3px solid transparent;border-bottom:none;padding:.55rem .75rem;font-size:var(--fs-base);font-weight:700;gap:.3rem}.sidebar nav a.active{border-left-color:var(--sidebar-active);border-bottom-color:transparent}.sidebar nav .nav-group-items a{font-size:var(--fs-sm)!important;padding:.36rem .7rem .36rem 1.2rem!important}.nav-group-toggle{padding:.55rem .75rem;font-size:var(--fs-base)}.nav-badge{font-size:var(--fs-xs);min-width:1rem;padding:0 .28rem}.main-area{width:100%;min-width:0}.content{padding:.65rem .55rem 1.1rem;max-width:100%;overflow-x:hidden}.card-panel{padding:.75rem .65rem;border-radius:var(--radius-lg, 12px)}.topbar{height:auto;min-height:2.7rem;max-height:none;padding:.4rem .55rem;gap:.35rem;flex-wrap:wrap;overflow:visible}.topbar h1{font-size:var(--fs-md);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-right{width:100%;justify-content:flex-end;flex-wrap:wrap}.topbar-actions{width:auto;flex:1 1 auto;justify-content:flex-start}.topbar-search{margin-left:auto}.topbar-actions .btn,.topbar-actions .btn.btn-sm{font-size:var(--fs-sm);padding:.18rem .6rem;min-height:1.55rem;height:1.55rem}.stat-grid{flex-wrap:wrap!important;gap:.45rem!important}.stat-card{flex:1 1 calc(50% - .3rem)!important;min-width:5rem!important;padding:.55rem .5rem!important}.stat-card .value{font-size:var(--fs-xl)!important}.stat-card .label{font-size:var(--fs-xs)!important}.btn-icon,.action-icons .btn{min-width:2rem;padding:.25rem .35rem;font-size:var(--fs-sm)}.avatar{width:36px;height:36px}.export-modal-panel{width:min(96vw,480px);padding:.75rem}.export-col-grid{grid-template-columns:1fr}.grid-2{grid-template-columns:1fr!important}.dash-layout{display:block}.dash-grid,.form-grid{grid-template-columns:1fr!important}.form-group.w-date,.form-group.w-short,.form-group.w-enrolled,.form-group.w-phone,.form-group.w-num,.form-group.w-name,.form-group.w-mid,.form-group.w-drug-name,.form-group.w-search{max-width:none!important;width:100%!important}.toolbar,.sticky-toolbar,.project-filter-bar{flex-wrap:wrap!important;gap:.45rem!important}.toolbar input,.toolbar select,.filter-panel input[type=search]{min-width:0!important;width:100%!important;flex:1 1 100%!important}.toolbar.recruit-filter-form input,.toolbar.recruit-filter-form select{width:auto!important;flex:1 1 auto!important}.toolbar.recruit-filter-form .recruit-filter-row-main input[type=search]{flex:1 1 0!important;min-width:0!important}.toolbar.recruit-filter-form .recruit-filter-row-main select{flex:0 0 auto!important;max-width:42%!important}.toolbar.recruit-filter-form .recruit-filter-row-sub select{flex:1 1 auto!important;min-width:0!important}.data-table{font-size:var(--fs-sm)}.data-table th,.data-table td{padding:.4rem .45rem!important}.form-actions{flex-wrap:wrap;gap:.45rem}.form-actions .btn{flex:1 1 auto;justify-content:center}.login-card{width:min(420px,96vw);padding:1.5rem 1.15rem}}@media(max-width:480px){.stat-card{flex:1 1 calc(50% - .3rem)!important}.side-user-name{font-size:var(--fs-base)}}.mobile-switch-bar{display:none;position:sticky;top:0;z-index:200;align-items:center;gap:.5rem;padding:.4rem .65rem;padding-top:calc(.4rem + env(safe-area-inset-top,0px));background:#0f172a;color:#e2e8f0;font-size:var(--fs-sm)}.mobile-switch-bar:not([hidden]){display:flex}.mobile-switch-bar a{color:color-mix(in srgb,var(--primary) 40%,#fff);font-weight:700;text-decoration:none}.mobile-switch-bar .muted{color:#94a3b8;flex:1}.mobile-switch-bar .btn{min-width:2rem;padding:.15rem .4rem;color:#e2e8f0;border-color:#475569;background:transparent}@media(max-width:720px){.content{padding:.65rem .55rem 1.25rem!important}.card-panel{padding:.75rem .7rem!important;border-radius:var(--radius-lg, 12px)!important}.btn,.btn-sm{min-height:2.15rem}input,select,textarea{font-size:var(--fs-lg)!important}.data-table th,.data-table td{font-size:var(--fs-sm)}table.recruit-grid td.col-enrolling{width:2.2rem}table.recruit-grid tr.row-enrolling-no td{color:var(--ink-faint, #5f6f85)!important}.ho-steps{flex-wrap:nowrap!important;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.25rem}.ho-steps li{white-space:nowrap;flex:none}}table.col-resizable th{position:sticky;overflow:visible}table.col-resizable th .col-resize-handle{position:absolute;top:0;right:0;width:7px;height:100%;cursor:col-resize;-webkit-user-select:none;user-select:none;z-index:8;touch-action:none}table.col-resizable th .col-resize-handle:after{content:"";position:absolute;top:20%;bottom:20%;right:2px;width:2px;border-radius:2px;background:transparent;transition:background .12s}table.col-resizable th:hover .col-resize-handle:after,table.col-resizable th .col-resize-handle:hover:after{background:color-mix(in srgb,var(--primary) 55%,#94a3b8)}body.col-resizing{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}body.col-resizing *{cursor:col-resize!important}.col-resize-reset{margin:0 0 .45rem}.toolbar .btn.col-resize-reset,.sticky-toolbar .btn.col-resize-reset{margin:0}table.col-resizable td,table.col-resizable th{overflow:hidden;text-overflow:ellipsis}@media print{html{scrollbar-gutter:auto;overflow:visible}body.is-app{height:auto!important;overflow:visible!important}body.is-app .app-shell,body.is-app .sidebar,body.is-app .main-area{height:auto!important;max-height:none!important;overflow:visible!important}.no-print,.sidebar,.sidebar-backdrop,.topbar,.nav-toggle,.mobile-switch-bar,.guest-topbar-actions,.side-footer{display:none!important}.app-shell{display:block!important}.main-area,.content{margin:0!important;padding:0!important;width:100%!important;max-width:none!important;overflow:visible!important}body,.main-area,.content,.card-panel{background:#fff!important;box-shadow:none!important}}.admin-switch-card{padding:.75rem .9rem;border:1px solid var(--border-metal, rgba(0,0,0,.08));border-radius:var(--radius-md, 8px);margin-bottom:1rem;background:#00000004}.admin-switch-row{display:flex;align-items:flex-start;gap:.55rem;cursor:pointer;margin:0}.geo-stat{padding:.55rem .7rem;border:1px solid var(--border-metal, rgba(0,0,0,.08));border-radius:var(--radius-md, 8px);background:var(--card-solid, #fff)}.ip-opt{display:flex;align-items:flex-start;gap:.55rem;margin:0;padding:.65rem .8rem;border:1px solid var(--border-metal, rgba(0,0,0,.08));border-radius:var(--radius-md, 8px);background:var(--card-solid, #fff);cursor:pointer}.ip-opt:hover{border-color:var(--primary, #6b7c93)}.ip-opt input{margin-top:.2rem;flex-shrink:0}.ip-opt strong{display:block;font-size:var(--fs-md)}.ip-opt .muted{display:block;font-size:var(--fs-sm);margin-top:.15rem;line-height:1.4}body{font-family:Segoe UI,PingFang SC,Microsoft YaHei,Source Han Sans SC,system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}[data-theme=soft-sky]{--sidebar-bg: linear-gradient(178deg, #336485 0%, #30618a 46%, #2d6290 100%);--sidebar-solid: #30618a}[data-theme=soft-teal]{--sidebar-bg: linear-gradient(178deg, #4faeA6 0%, #3b938b 46%, #2e7d76 100%);--sidebar-solid: #3b938b}.sidebar{width:178px;box-shadow:4px 0 18px #0f233c2e;border-right:1px solid rgba(255,255,255,.05)}.sidebar::-webkit-scrollbar{width:8px}.sidebar::-webkit-scrollbar-thumb{background:#ffffff38;border-radius:99px;border:2px solid transparent;background-clip:content-box}.sidebar::-webkit-scrollbar-track{background:transparent}.sidebar .brand{padding:.95rem .9rem .85rem;border-bottom:1px solid rgba(255,255,255,.12);letter-spacing:.05em}.sidebar nav{padding:.45rem 0 .6rem}.sidebar nav a,.sidebar nav .nav-group-toggle{position:relative;margin:.1rem .55rem;padding:.54rem .68rem;border-left:0;border-radius:var(--radius-md, 8px);font-size:var(--fs-md);letter-spacing:.01em;transition:background-color .15s ease,color .15s ease,transform .12s ease}.sidebar nav .nav-group-items a{margin:.05rem .55rem .05rem 1.1rem;padding:.34rem .6rem;border-radius:var(--radius-md, 8px)}.sidebar nav a:hover,.sidebar nav .nav-group-toggle:hover{background:#ffffff12;color:#fff}.sidebar nav a.active,.sidebar nav .nav-group-toggle.active{background:#ffffff1f;color:#fff;border-left:0;font-weight:700;box-shadow:0 2px 8px #0a1e3238,inset 0 1px #ffffff29}.sidebar nav a.active:before,.sidebar nav .nav-group-toggle.active:before{content:"";position:absolute;left:4px;top:50%;transform:translateY(-50%);width:3px;height:52%;border-radius:999px;background:var(--accent, var(--sidebar-active, #fff))}.sidebar nav .nav-group-items a.active:before{left:3px}.nav-badge{background:#ef4444;box-shadow:0 1px 4px #00000047;font-variant-numeric:tabular-nums}.sidebar .side-footer{border-top:1px solid rgba(255,255,255,.12);background:#0000001a}.side-theme-select{border-radius:var(--radius-md, 8px);background:#00000052;border:1px solid rgba(255,255,255,.24);padding:.36rem .4rem}.side-theme-select:focus-visible{outline:2px solid rgba(255,255,255,.55);outline-offset:1px}.topbar{box-shadow:0 1px #0f172a0a,0 4px 14px #0f172a0d}.topbar h1{font-weight:700;letter-spacing:.01em}:where(.card-panel) :is(.tool-card,.perm-module-card,.fc-collect-item,.crc-form-section,.contact-card){box-shadow:none}.card-panel{border-radius:var(--radius-lg, 12px);border:1px solid rgba(70,90,115,.1);box-shadow:var(--elev-1)}.stat-card{border-radius:var(--radius-lg, 12px);border:1px solid rgba(70,90,115,.1);border-top:3px solid var(--primary);box-shadow:var(--elev-1);transition:border-color .15s ease}a.stat-card:hover{border-left-color:color-mix(in srgb,var(--primary) 55%,rgba(70,90,115,.2));border-right-color:color-mix(in srgb,var(--primary) 55%,rgba(70,90,115,.2));border-bottom-color:color-mix(in srgb,var(--primary) 55%,rgba(70,90,115,.2))}.card-panel .stat-card,.card-panel .stat-card:hover{box-shadow:none}.stat-card .value{font-variant-numeric:tabular-nums;letter-spacing:.01em}.stat-card.warn{border-top-color:var(--warning)}.stat-card.danger{border-top-color:var(--danger)}.stat-card.ok{border-top-color:var(--accent)}.btn{border-radius:var(--radius-md, 8px);font-weight:700;letter-spacing:.01em;transition:background-color .15s ease,border-color .15s ease;box-shadow:none}.btn:hover,.btn:active{transform:none;box-shadow:none}.btn:focus-visible,.btn-outline:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.btn-outline{box-shadow:none;background:color-mix(in srgb,var(--primary) 5%,#fff)}.btn-outline:hover{box-shadow:none}table.data-table th{font-size:var(--fs-sm);font-weight:700;letter-spacing:.02em;color:var(--text-secondary, var(--muted));background:var(--table-head-bg, #f6f8fa)!important;box-shadow:0 1px color-mix(in srgb,var(--primary) 16%,#d8dee4)}table.data-table tbody tr:nth-child(2n) td{background:var(--table-stripe-bg, #fafbfc)!important}table.data-table tr:hover td{background:var(--table-hover-bg, #f1f6fd)!important}table.data-table th,table.data-table td{border-bottom:1px solid rgba(15,23,42,.05)}.role-tabs{gap:.6rem}.role-tab{border-radius:var(--radius-lg, 12px);border:1px solid rgba(70,90,115,.14);box-shadow:none;transition:background-color .16s ease,border-color .16s ease}.role-tab:hover{transform:none;box-shadow:none}.role-tab.active{background:color-mix(in srgb,var(--primary) 11%,#fff);border-color:color-mix(in srgb,var(--primary) 55%,transparent);box-shadow:inset 0 -3px 0 var(--primary)}.role-tabs-inline .role-tab{transition:background-color .16s ease,border-color .16s ease}.role-tabs-inline .role-tab:hover{transform:none}.content input:not([type=checkbox]):not([type=radio]):not([type=range]),.content select,.content textarea{border-radius:var(--radius-md, 8px);transition:border-color .15s ease,box-shadow .15s ease}.content input:not([type=checkbox]):not([type=radio]):not([type=range]):focus,.content select:focus,.content textarea:focus{outline:2px solid var(--primary);outline-offset:1px;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 22%,transparent)}.alert{border-radius:var(--radius-md, 8px);box-shadow:var(--elev-1)}.guest-topbar{box-shadow:0 1px #0f172a0a,0 4px 14px #0f172a0d}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.sidebar :focus-visible,.mobile-switch-bar :focus-visible{outline-color:#fff}[role=dialog][tabindex="-1"]:focus,dialog[tabindex="-1"]:focus{outline:none}@media(forced-colors:active){:focus-visible{outline-color:Highlight}}html:has(body.ctms-modal-open){overflow:hidden}body.ctms-modal-open{overflow:hidden;padding-right:var(--ctms-scrollbar, 0px)}.alert{position:relative}.alert{transition:opacity .25s ease,max-height .25s ease,padding .25s ease,margin .25s ease,border-width .25s ease}.alert.alert-has-close{padding-right:2.5rem}.alert.is-leaving{opacity:0;max-height:0!important;padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-width:0;overflow:hidden}.alert-close{position:absolute;top:.3rem;right:.4rem;width:1.8rem;height:1.8rem;border:0;border-radius:var(--radius-md, 8px);background:transparent;color:inherit;font-size:var(--fs-2xl);line-height:1;cursor:pointer;opacity:.75}.alert-close:hover{opacity:1;background:#00000014}.alert-close:focus-visible{outline-color:currentColor;opacity:1}.flash-stack{position:fixed;top:3.6rem;right:1rem;z-index:300;display:flex;flex-direction:column;gap:.5rem;width:min(26rem,calc(100vw - 2rem));pointer-events:none}body.is-guest .flash-stack{top:4.6rem}.flash-stack:empty{display:none}.flash-stack .alert{pointer-events:auto;margin:0;box-shadow:var(--elev-2);animation:ctms-toast-in .22s ease-out}@keyframes ctms-toast-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.alert,.alert.is-leaving{transition:none}.flash-stack .alert{animation:none}}.topbar-search{position:relative;display:inline-flex;align-items:center;gap:.3rem;flex:0 0 auto;width:16rem;max-width:min(16rem,42vw);height:1.65rem;padding:0 .4rem 0 .45rem;border:1px solid var(--border-strong, rgba(0, 0, 0, .2));border-radius:var(--radius-md, 8px);background:var(--card-solid, #fff);color:var(--text-secondary, var(--muted));font-size:var(--fs-sm)}.topbar-search:hover,.topbar-search.is-current,.topbar-search.is-open,.topbar-search:focus-within{background:color-mix(in srgb,var(--primary) 8%,#fff);color:var(--text);border-color:color-mix(in srgb,var(--primary) 40%,var(--border-strong, #cbd5e1))}.topbar-search-icon{flex:0 0 auto;line-height:1}.topbar-search-input{flex:1 1 auto;min-width:0;height:1.4rem;margin:0;padding:0;border:0;background:transparent;color:var(--text);font:inherit;outline:none}.topbar-search-input::placeholder{color:var(--muted)}.topbar-search .gs-kbd{font-size:var(--fs-xs);flex:0 0 auto}.topbar-search-drop{position:fixed;z-index:80;max-height:min(70vh,420px);overflow:auto;background:var(--card-solid, #fff);border:1px solid var(--border-strong, #cbd5e1);border-radius:var(--radius-md, 8px);box-shadow:var(--elev-2);color:var(--text)}.topbar-search-status{margin:0;padding:.4rem .7rem .2rem;font-size:var(--fs-xs);color:var(--muted)}.topbar-search-list{padding:.15rem .3rem .3rem}.topbar-search-group{padding:.4rem .5rem .1rem;font-size:var(--fs-xs);font-weight:700;color:var(--muted)}.topbar-search-drop .search-hit{padding:.4rem .5rem}.topbar-search-more{display:block;padding:.45rem .7rem;border-top:1px solid var(--border-metal, rgba(0, 0, 0, .08));font-size:var(--fs-xs);color:var(--primary-dark, var(--primary));text-decoration:none}.topbar-search-more:hover{background:color-mix(in srgb,var(--primary) 8%,#fff)}@media(max-width:720px){.topbar-search-label,.topbar-search .gs-kbd{display:none}.topbar-search{width:10rem;max-width:42vw}}.gs-modal{z-index:260;align-items:flex-start;padding:12vh 1rem 1rem}.gs-panel{max-height:min(70vh,560px);display:flex;flex-direction:column;overflow:hidden;padding:0;color:var(--text);box-shadow:var(--elev-2)}.gs-input-row{padding:.75rem .85rem .35rem}.gs-input{width:100%;padding:.55rem .7rem;font-size:var(--fs-lg);color:var(--text);background:var(--card-solid, #fff);border:1px solid var(--border-strong, #cbd5e1);border-radius:var(--radius-md, 8px)}.gs-status{padding:0 .95rem .4rem;font-size:var(--fs-sm);color:var(--muted);min-height:1.2rem}.gs-list{list-style:none;margin:0;padding:0 .4rem .4rem;overflow:auto;flex:1 1 auto}.gs-group{padding:.5rem .6rem .15rem;font-size:var(--fs-xs);font-weight:700;letter-spacing:.04em;color:var(--muted)}.gs-item{display:flex;flex-direction:column;gap:.1rem;padding:.45rem .6rem;border-radius:var(--radius-md, 8px);cursor:pointer}.gs-item.is-active{background:color-mix(in srgb,var(--primary) 14%,#fff);outline:2px solid var(--primary);outline-offset:-2px}.gs-item-title{font-size:var(--fs-md)}.gs-item-sub{font-size:var(--fs-xs);color:var(--muted)}.gs-foot{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .95rem;border-top:1px solid var(--border-metal, rgba(0, 0, 0, .08));font-size:var(--fs-xs);color:var(--muted)}.gs-help-btn{border:0;background:transparent;color:var(--primary-dark, var(--primary));font-size:var(--fs-xs);cursor:pointer;text-decoration:underline}.gs-kbd{display:inline-block;min-width:1.4rem;padding:.05rem .4rem;border:1px solid var(--border-strong, #cbd5e1);border-bottom-width:2px;border-radius:var(--radius-sm, 4px);background:color-mix(in srgb,var(--primary) 5%,#fff);color:var(--text);font:inherit;font-size:var(--fs-sm);text-align:center}.gs-help-panel{padding-bottom:.8rem}.gs-help-head{display:flex;align-items:center;justify-content:space-between;padding:.8rem 1rem .4rem}.gs-help-x{border:0;background:transparent;color:var(--muted);font-size:var(--fs-2xl);line-height:1;cursor:pointer;padding:.1rem .35rem}.gs-help-list{display:grid;grid-template-columns:max-content 1fr;gap:.5rem 1rem;margin:0;padding:.3rem 1rem;overflow:auto}.gs-help-list dt{margin:0}.gs-help-list dd{margin:0;align-self:center}.gs-help-note{margin:.4rem 1rem 0;font-size:var(--fs-xs);color:var(--muted)}.search-page{max-width:64rem}.search-page-box{padding:1rem 1.15rem .85rem;margin-bottom:1rem}.search-page-input{font-size:1.15rem;padding:.7rem .9rem;min-height:2.8rem}.search-page-hint{margin:.15rem 0 0;font-size:var(--fs-xs);color:var(--muted)}.search-page-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;align-items:start}.search-page-groups.is-single{grid-template-columns:minmax(0,1fr)}.search-group{padding:.85rem 1rem 1rem;margin:0}.search-group-title{margin:0 0 .45rem;font-size:var(--fs-sm);font-weight:700;letter-spacing:.04em;color:var(--muted)}.search-group-list{list-style:none;margin:0;padding:0}.search-hit{display:flex;flex-direction:column;gap:.12rem;padding:.55rem .65rem;border-radius:var(--radius-md, 8px);text-decoration:none;color:inherit}.search-hit:hover,.search-hit.is-active{background:color-mix(in srgb,var(--primary) 12%,#fff)}.search-hit.is-active{outline:2px solid var(--primary);outline-offset:-2px}.search-hit .gs-item-title{font-size:var(--fs-md)}.search-hit .gs-item-sub{font-size:var(--fs-sm);color:var(--muted)}@media(max-width:720px){.search-page-groups,.search-page-groups.is-single{grid-template-columns:minmax(0,1fr)}}.form-group.form-group--flush{margin:0}.empty-state{margin:0;padding:1.1rem var(--sp-4, .8rem);text-align:center;color:var(--muted);font-size:var(--fs-sm, .8125rem);line-height:1.6}.empty-state-title{display:block;margin:0 0 .15rem;font-size:var(--fs-md, .9375rem);font-weight:700;color:var(--ink-soft, #5b6b80)}.empty-state-desc{display:block;color:var(--ink-faint, #5f6f85)}.empty-state-action{display:flex;justify-content:center;flex-wrap:wrap;gap:.5rem;margin-top:.7rem}:where(.content) :where(input:not([type=checkbox],[type=radio],[type=hidden],[type=file],[type=range],[type=color],[type=submit],[type=button],[type=reset],[type=image]),select,textarea):not(:where(.form-group,.toolbar,.sticky-toolbar,.change-log-toolbar,.ql-toolbar,.dash-trend-toolbar) *):not(:where(.searchable-select-native,.dash-mon-month)){box-sizing:border-box;min-height:var(--ctl-min-h);border:var(--ctl-border-w) solid var(--ctl-border-color);border-radius:var(--ctl-radius);padding:var(--ctl-pad-y) var(--ctl-pad-x);font-family:inherit;font-size:var(--ctl-fs);line-height:var(--ctl-lh);background-color:var(--ctl-bg);color:var(--ctl-color)}:where(.content) :where(td,th,.mini-table,#emr-form) :where(input:not([type=checkbox],[type=radio],[type=hidden],[type=file],[type=range],[type=color],[type=submit],[type=button],[type=reset],[type=image]),select,textarea):not(:where(.form-group,.toolbar,.sticky-toolbar,.change-log-toolbar,.ql-toolbar,.dash-trend-toolbar) *):not(:where(.searchable-select-native,.dash-mon-month)),:where(.content) :where(input:not([type=checkbox],[type=radio],[type=hidden],[type=file],[type=range],[type=color],[type=submit],[type=button],[type=reset],[type=image]),select,textarea):where(.slot-control,.ctl-sm):not(:where(.form-group,.toolbar,.sticky-toolbar,.change-log-toolbar,.ql-toolbar,.dash-trend-toolbar) *):not(:where(.searchable-select-native,.dash-mon-month)){min-height:var(--ctl-sm-min-h);padding:var(--ctl-sm-pad-y) var(--ctl-sm-pad-x);font-size:var(--ctl-sm-fs)}:where(.content) :where(input:not([type=checkbox],[type=radio],[type=hidden],[type=file],[type=range],[type=color],[type=submit],[type=button],[type=reset],[type=image]),select,textarea):has(+:where(.btn-sm)):not(:where(.form-group,.toolbar,.sticky-toolbar,.change-log-toolbar,.ql-toolbar,.dash-trend-toolbar) *):not(:where(.searchable-select-native,.dash-mon-month)){min-height:var(--ctl-sm-min-h);padding:var(--ctl-sm-pad-y) var(--ctl-sm-pad-x);font-size:var(--ctl-sm-fs)}:where(.content) :where(input:not([type=checkbox],[type=radio],[type=hidden],[type=file],[type=range],[type=color],[type=submit],[type=button],[type=reset],[type=image]):disabled,select:disabled,textarea:disabled,input:not([type=checkbox],[type=radio],[type=hidden],[type=file],[type=range],[type=color],[type=submit],[type=button],[type=reset],[type=image])[readonly],textarea[readonly]):not(:where(.form-group,.toolbar,.sticky-toolbar,.change-log-toolbar,.ql-toolbar,.dash-trend-toolbar) *):not(:where(.searchable-select-native,.dash-mon-month)){background-color:var(--ctl-disabled-bg);color:var(--ctl-disabled-color);border-color:var(--ctl-border-color)}.d-inline{display:inline!important}.fs-12-5px{font-size:var(--fs-sm)!important}.fs-72,.fs-78{font-size:var(--fs-xs)!important}.fs-80,.fs-82,.fs-84{font-size:var(--fs-sm)!important}.m-0{margin:0!important}.maxw-14{max-width:14rem!important}.mb-1{margin-bottom:1rem!important}.mb-r55{margin-bottom:.55rem!important}.mb-r75{margin-bottom:.75rem!important}.mb-r85{margin-bottom:.85rem!important}.ml-r35{margin-left:.35rem!important}.mt-0{margin-top:0!important}.mt-1{margin-top:1rem!important}.mt-r35{margin-top:.35rem!important}.mt-r50{margin-top:.5rem!important}.mt-r55{margin-top:.55rem!important}.mt-r65{margin-top:.65rem!important}.mt-r75{margin-top:.75rem!important}.mt-r85{margin-top:.85rem!important}.text-right{text-align:right!important}.u-fw500-fs-85{font-weight:400!important;font-size:var(--fs-base)!important}.u-inline-flex-center-gap-r30{display:inline-flex!important;gap:.3rem!important;align-items:center!important}.u-m-r125-0-r50{margin:1.25rem 0 .5rem!important}.u-m-r25-0-0-fs-78{margin:.25rem 0 0!important;font-size:var(--fs-xs)!important}.u-m-r40-0-r45-fs-84{margin:.4rem 0 .45rem!important;font-size:var(--fs-sm)!important}.u-m0-mb-1{margin:0 0 1rem!important}.u-m0-mb-r45{margin:0 0 .45rem!important}.u-m0-mb-r45-fs-105{margin:0 0 .45rem!important;font-size:var(--fs-lg)!important}.u-m0-mb-r55{margin:0 0 .55rem!important}.u-m0-mb-r65{margin:0 0 .65rem!important}.u-m0-mb-r75{margin:0 0 .75rem!important}.u-m0-mb-r85{margin:0 0 .85rem!important}.u-nowrap{white-space:nowrap!important}.w-5{width:5rem!important}.w-7{width:7rem!important}:where(button,input,select,textarea){font-family:inherit}.btn:disabled,.btn[disabled],.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed;filter:saturate(.7)}.btn:disabled:hover,.btn[disabled]:hover,.btn[aria-disabled=true]:hover{transform:none;box-shadow:none}.btn:not(:disabled):not([disabled]):not([aria-disabled=true]):active{filter:brightness(.94)}.btn.is-loading,.btn[aria-busy=true]{cursor:progress;pointer-events:none;opacity:.85}.btn.is-loading:after,.btn[aria-busy=true]:after{content:"";flex:0 0 auto;width:.85em;height:.85em;box-sizing:border-box;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:ctms-spin .7s linear infinite}@keyframes ctms-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.btn.is-loading:after,.btn[aria-busy=true]:after{animation:none;border-right-color:currentColor;opacity:.6}}:where(.content) :where(h3){font-size:var(--fs-lg)}:where(input[type=checkbox],input[type=radio],input[type=range],progress,meter){accent-color:var(--primary)}.info-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(max(16rem,calc((100% - 2rem) / 3)),1fr));gap:.65rem 1rem;margin:0}.info-field{min-width:0;padding:.45rem .65rem;border:1px solid var(--line, #e6e8ee);border-radius:var(--radius-md, 10px);background:color-mix(in srgb,var(--primary, #2563eb) 4%,var(--card-solid, #fff))}.info-field.is-wide{grid-column:1 / -1}.info-field dt{margin:0 0 .1rem;font-size:var(--fs-sm);font-weight:400;color:color-mix(in srgb,var(--muted, #667085) 90%,#000);line-height:1.4}.info-field dd{margin:0;font-weight:400;line-height:1.55;overflow-wrap:anywhere}@media(max-width:600px){.info-fields{grid-template-columns:1fr}}.topbar-search:focus-within{outline:2px solid var(--primary, #2563eb);outline-offset:2px}@media(forced-colors:active){.topbar-search-input:focus{outline:2px solid CanvasText}}dialog.ctms-dialog{border:1px solid var(--border, #e2e8f0);border-radius:12px;padding:0;width:min(92vw,420px);box-shadow:0 20px 50px #0f172a40;color:var(--text, #0f172a);background:#fff}dialog.ctms-dialog::backdrop{background:#0f172a73}dialog.ctms-dialog[open]:not(:modal){position:fixed;top:0;right:0;bottom:0;left:0;margin:auto;z-index:1000;height:fit-content}.ctms-dialog-form{margin:0;padding:1.1rem 1.2rem 1rem}.ctms-dialog-msg{margin:0 0 1rem;white-space:pre-wrap;line-height:1.6;word-break:break-word}.ctms-dialog-input{width:100%;box-sizing:border-box;margin:0 0 1rem}.ctms-dialog-actions{display:flex;justify-content:flex-end;gap:.5rem}@media(prefers-reduced-motion:no-preference){dialog.ctms-dialog[open]{animation:ctmsDlgIn .14s ease-out}}@keyframes ctmsDlgIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media(max-width:640px){table.table-mobile-cards,table.table-mobile-cards tbody,table.table-mobile-cards tr,table.table-mobile-cards td{display:block;width:100%;box-sizing:border-box}table.table-mobile-cards{min-width:0!important}table.table-mobile-cards thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}table.table-mobile-cards tr{margin:0 0 .6rem;border:1px solid var(--border, #e2e8f0);border-radius:10px;background:#fff;padding:.35rem .6rem}table.table-mobile-cards td{border:0!important;padding:.25rem 0!important;text-align:left!important;white-space:normal!important;display:grid;grid-template-columns:6.5em 1fr;gap:.5rem}table.table-mobile-cards td[data-label]:before{content:attr(data-label);color:var(--muted, #64748b);font-size:var(--fs-xs, .78rem)}table.table-mobile-cards td:not([data-label]){grid-template-columns:1fr}table.table-mobile-cards td[colspan]{grid-template-columns:1fr}table.table-mobile-cards td[colspan]:before{content:none}}.stage-panel{margin:0 0 var(--sp-3);padding:var(--sp-3) var(--sp-4)}.stage-head{display:flex;align-items:baseline;gap:var(--sp-2);flex-wrap:wrap;margin:0 0 var(--sp-2)}.stage-head h3{margin:0;font-size:var(--fs-lg);font-weight:var(--fw-strong)}.stage-bar{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:var(--sp-1)}.stage-cell{border-radius:var(--radius-md);padding:var(--sp-2) var(--sp-1);text-align:center;font-size:var(--fs-sm);line-height:1.3;border:1px solid var(--border);min-width:0;overflow-wrap:anywhere}.stage-cell .n{display:block;font-size:var(--fs-xs)}.stage-cell.done{background:var(--success);color:var(--text-on-action);border-color:var(--success)}.stage-cell.now{background:var(--warning-bg);color:var(--warning-text);border:2px solid var(--warning);font-weight:var(--fw-strong)}.stage-cell.todo{background:var(--neutral-bg);color:var(--neutral-text);border-color:var(--neutral)}.stage-cell.history{color:var(--neutral-text);border:1px dashed var(--neutral);background:repeating-linear-gradient(135deg,var(--neutral-bg) 0 6px,var(--panel-muted-bg) 6px 8px)}.stage-cell.dropped{background:var(--danger-bg);color:var(--danger-text);border-color:var(--danger);font-weight:var(--fw-strong)}.stage-tail{margin:var(--sp-2) 0 0;font-size:var(--fs-sm)}.stage-tail .end{display:inline-block;padding:0 var(--sp-2);border-radius:var(--radius-pill);background:var(--neutral-bg);color:var(--neutral-text)}.stage-now-line{margin:var(--sp-2) 0 0;color:var(--warning-text);font-size:var(--fs-base)}.stage-card{margin:var(--sp-3) 0 0;border:1px solid var(--warning-soft-border);background:var(--warning-soft-bg);border-radius:var(--radius-lg);padding:var(--sp-2) var(--sp-3)}.stage-card h4{margin:0 0 var(--sp-2);font-size:var(--fs-lg)}.stage-todo{list-style:none;margin:0;padding:0}.stage-todo li{display:flex;gap:var(--sp-2);align-items:baseline;padding:2px 0;font-size:var(--fs-base)}.stage-todo li>span:nth-child(2){flex:1 1 auto;min-width:0}.stage-todo .mark{flex:0 0 auto;font-weight:var(--fw-strong)}.stage-todo .mark.ok{color:var(--success-text)}.stage-todo .mark.no{color:var(--warning-text)}.stage-todo .mark.na{color:var(--text-secondary)}.stage-todo .who{color:var(--text-secondary);font-size:var(--fs-sm);margin-left:auto;white-space:nowrap}.stage-actions{display:flex;gap:var(--sp-2);flex-wrap:wrap;margin:var(--sp-2) 0 0;align-items:flex-start}.stage-actions form{margin:0;display:flex;gap:var(--sp-1);align-items:center;flex-wrap:wrap}.stage-actions input[type=text]{min-width:14rem}.stage-actions .btn-approve{background:var(--success);color:var(--text-on-action);border-color:var(--success)}.stage-actions .btn-reject{background:var(--danger);color:var(--text-on-action);border-color:var(--danger)}.stage-note{margin:var(--sp-2) 0 0;padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-md);background:var(--danger-bg);color:var(--danger-text);font-size:var(--fs-base)}.stage-hint{margin:var(--sp-1) 0 0;color:var(--text-secondary);font-size:var(--fs-sm)}.stage-badge{display:inline-block;padding:0 var(--sp-2);border-radius:var(--radius-pill);font-size:var(--fs-xs);white-space:nowrap;background:var(--warning-bg);color:var(--warning-text);border:1px solid var(--warning-border)}.stage-badge.active{background:var(--success-bg);color:var(--success-text);border-color:var(--success-border)}.stage-badge.wait{background:var(--warning-soft-bg);color:var(--warning-soft-text);border-color:var(--warning-soft-border)}.stage-badge.end{background:var(--neutral-bg);color:var(--neutral-text);border-color:var(--neutral)}.stage-timeline{margin:var(--sp-2) 0 0;font-size:var(--fs-sm)}.stage-timeline summary{cursor:pointer;color:var(--action)}.stage-timeline table{width:100%;margin-top:var(--sp-1)}.stage-timeline td{padding:2px var(--sp-1);vertical-align:top;border-top:1px solid var(--line)}.stage-timeline td.rej{color:var(--danger-text)}@media(max-width:760px){.stage-bar{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:600px){.stage-head .stage-owner{flex-basis:100%}.stage-actions form,.stage-actions input[type=text]{width:100%;min-width:0}}.su-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--sp-2);padding:var(--sp-2) 0;border-top:1px solid var(--line)}.su-row:target{background:var(--warning-soft-bg)}.su-title{font-size:var(--fs-base)}.su-meta{font-size:var(--fs-sm);color:var(--text-secondary)}.su-row form{display:flex;gap:var(--sp-1);align-items:center;flex-wrap:wrap;margin:0}.su-must{display:inline-block;padding:0 var(--sp-1);border-radius:var(--radius-pill);font-size:var(--fs-xs);background:var(--warning-bg);color:var(--warning-text);border:1px solid var(--warning-border)}.su-state{font-size:var(--fs-sm);font-weight:var(--fw-strong)}.su-state.ok{color:var(--success-text)}.su-state.no{color:var(--warning-text)}.su-must-form{columns:2;font-size:var(--fs-sm)}@media(max-width:760px){.su-row{grid-template-columns:1fr}.su-must-form{columns:1}}@media(max-width:600px){.panorama-meta-inline{flex-wrap:wrap;overflow-x:visible}.panorama-meta-inline>div{white-space:normal;flex:0 1 auto;min-width:0}.panorama-grid{grid-template-columns:minmax(0,1fr)}.panorama-grid>.panorama-section{min-width:0;max-width:100%;overflow:hidden}.panorama-section h3{overflow-wrap:anywhere}.panorama-section .table-wrap{max-width:100%;overflow-x:auto}}.su-list-link{display:block;width:max-content;margin:0 auto 2px;padding:0 var(--sp-1);border-radius:var(--radius-pill);font-size:var(--fs-xs);color:var(--primary);border:1px solid var(--primary);white-space:nowrap;text-decoration:none;line-height:1.6}.su-list-link:hover,.su-list-link:focus-visible{background:var(--action-hover, var(--primary));color:var(--text-on-action, #fff)}.stage-count-row{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-2);margin-top:var(--sp-1)}.stage-count{font-size:var(--fs-sm);padding:0 var(--sp-2);border-radius:var(--radius-pill);border:1px solid var(--border-strong, var(--border-metal));color:var(--text);text-decoration:none;line-height:1.8}.stage-count b{color:var(--primary)}.stage-count:hover,.stage-count.is-on{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 10%,transparent)}.ac-tabs{display:flex;flex-wrap:wrap;gap:var(--sp-1);margin:0 0 var(--sp-2)}.ac-tab{font-size:var(--fs-base);padding:var(--sp-1) var(--sp-3);border-radius:var(--radius-pill);border:1px solid var(--border-strong, var(--border-metal));color:var(--text);text-decoration:none}.ac-tab b{margin-left:.25rem;color:var(--primary)}.ac-tab.is-on{background:var(--primary);border-color:var(--primary);color:var(--text-on-action, #fff)}.ac-tab.is-on b{color:inherit}.ac-table td{vertical-align:top;font-size:var(--fs-base)}.ac-kind{font-size:var(--fs-xs);padding:0 var(--sp-1);border-radius:var(--radius-pill);border:1px solid var(--primary);color:var(--primary);white-space:nowrap}.ac-actions{display:flex;flex-wrap:wrap;gap:var(--sp-1);align-items:flex-start}.ac-actions form{display:flex;gap:var(--sp-1);align-items:center;margin:0}.ac-actions input[type=text]{min-width:10rem;font-size:var(--fs-sm)}.ro-money-note{font-size:var(--fs-sm);color:var(--muted)}.lite-stage-bar{display:flex;gap:2px;margin:var(--sp-1) 0}.lite-stage-bar span{flex:1;height:6px;border-radius:3px;background:var(--border-strong, var(--border-metal))}.lite-stage-bar span.done{background:var(--success, var(--primary))}.lite-stage-bar span.cur{background:var(--primary)}.missing-docs{color:var(--danger-text, var(--danger));font-weight:600}@media(max-width:768px){:where(div,section,article,main,form,details,dialog):not(.table-wrap):not(.table-scroll):not(.table-scroll-shell)>table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}}.prep-steps{list-style:none;padding:0;margin:0}.prep-steps li{display:flex;gap:.6rem;align-items:baseline;padding:.45rem 0;border-bottom:1px solid var(--border, #e5e7eb)}.prep-steps li:last-child{border-bottom:0}.prep-steps .st{min-width:3.5rem;font-size:var(--fs-sm);padding:.05rem .45rem;border-radius:999px;background:var(--warning-bg);color:var(--warning-text);text-align:center}.prep-steps .st.done{background:var(--success-bg);color:var(--success-text)}.prep-steps .owner{margin-left:auto;white-space:nowrap}.projects-list-table .col-monitor-flag{width:6.2rem;min-width:6.2rem;max-width:6.2rem;text-align:center;white-space:nowrap}
