:root{--primary-50:#eff6ff;--primary-100:#dbeafe;--primary-200:#bfdbfe;--primary-300:#93c5fd;--primary-400:#60a5fa;--primary-500:#3b82f6;--primary-600:#1a56db;--primary-700:#1e40af;--primary-800:#1e3a8a;--primary-900:#1e3a70;--primary:var(--primary-600);--primary-hover:var(--primary-700);--primary-subtle:var(--primary-50);--primary-ring:#1a56db1f;--bg:#f8fafc;--sidebar-bg:#0f172a;--sidebar-text:#94a3b8;--sidebar-active-bg:#1e293b;--sidebar-width:280px;--card-bg:#fff;--text-primary:#0f172a;--text-secondary:#57677d;--text-tertiary:#57677d;--border:#e2e8f0;--border-light:#f1f5f9;--shadow-xs:0 1px 2px #0000000d;--shadow-sm:0 2px 4px #0000000f, 0 1px 2px #0000000a;--shadow-md:0 4px 8px #00000014, 0 2px 4px #0000000f, 0 1px 2px #0000000a;--shadow-lg:0 12px 24px #0000001f, 0 6px 12px #00000014, 0 2px 4px #0000000a;--shadow-xl:0 20px 40px #00000026, 0 10px 20px #0000001a, 0 4px 8px #0000000f;--shadow-2xl:0 30px 60px #0003, 0 15px 30px #0000001f;--glass-bg:#ffffffb3;--glass-border:#ffffff2e;--glass-shadow:0 8px 32px #00000014;--transition-fast:.15s ease;--transition:.2s ease;--transition-slow:.3s ease;--radius-sm:6px;--radius:8px;--radius-lg:12px;--radius-xl:16px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-2xl:48px;--content-max-width:1120px;--content-wide-width:1560px;--page-gutter:40px;--card-pad-y:30px;--card-pad-x:34px;--field-min-height:44px;--surface-radius:8px;--glow-primary:0 0 20px #3b82f626;--glow-primary-strong:0 0 30px #3b82f640, 0 0 60px #3b82f61a;--label-color:#475569;--input-border:#cbd5e1;--input-bg:#fff;--upload-bg:#f8fafc;--upload-border:#cbd5e1;--upload-hover-bg:var(--primary-50);--upload-hover-border:var(--primary);--upload-dragover-bg:var(--primary-100);--upload-hint:#57677d;--error-bg:#fef2f2;--error-border:#fecaca;--error-text:#991b1b;--success-bg:#f0fdf4;--success-border:#bbf7d0;--success-text:#166534;--cmt-hover:#f8fafc;--cmt-reply-bg:#f0f7ff;--toast-success:#22c55e;--toast-error:#ef4444;--spinner-border:#e2e8f0}*,:before,:after{box-sizing:border-box}#root,[data-react-frontstage]{width:100%;min-height:100vh}body{background:radial-gradient(ellipse 800px 600px at 20% 40%, #3b82f614 0%, transparent 50%), radial-gradient(ellipse 600px 800px at 80% 60%, #8b5cf60f 0%, transparent 50%), radial-gradient(circle at 50% 50%, #3b82f605 0%, transparent 100%), var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;margin:0;font-family:Inter,Segoe UI,Microsoft YaHei,system-ui,-apple-system,sans-serif;line-height:1.6;display:flex;position:relative}[data-lucide]{vertical-align:middle;flex-shrink:0;display:inline-block}.menu-icon{stroke-width:2px;flex-shrink:0;width:16px;height:16px;margin-right:10px;display:inline-block}.section-icon{vertical-align:middle;stroke-width:2px;width:20px;height:20px;margin-right:8px;display:inline-block}.btn-icon{stroke-width:2px;width:16px;height:16px;margin-right:6px;display:inline-block}.panel-icon,.check-icon{stroke-width:2px;width:18px;height:18px;display:inline-block}.copy-icon{stroke-width:2px;width:14px;height:14px;display:inline-block}.upload-icon{stroke-width:2px;width:16px;height:16px;margin-right:6px;display:inline-block}.alert-icon{stroke-width:2px;width:18px;height:18px;display:inline-block}.sidebar{width:var(--sidebar-width);z-index:100;transition:transform var(--transition);background:linear-gradient(#020617 0%,#0a0f1e 100%);border-right:1px solid #3b82f61a;flex-direction:column;padding:20px 0 0;display:flex;position:fixed;top:0;bottom:0;left:0;box-shadow:4px 0 24px #0000004d}.sidebar-menu{scrollbar-width:thin;scrollbar-color:#334155 transparent;flex:1;min-height:0;padding-bottom:20px;overflow-y:auto}.sidebar-menu::-webkit-scrollbar{width:5px}.sidebar-menu::-webkit-scrollbar-track{background:0 0}.sidebar-menu::-webkit-scrollbar-thumb{background:#334155;border-radius:3px}.sidebar-menu::-webkit-scrollbar-thumb:hover{background:#475569}.sidebar-header{color:#f1f5f9;letter-spacing:0;border-bottom:1px solid #3b82f626;align-items:center;gap:10px;margin-bottom:10px;padding:0 20px 20px;font-size:17px;font-weight:700;display:flex;position:relative}.sidebar-header:after{content:"";background:linear-gradient(90deg,#0000,#3b82f680,#0000);height:1px;position:absolute;bottom:-1px;left:20px;right:20px}.sidebar-header svg{stroke:#f1f5f9;flex-shrink:0}.sidebar-version{color:#ffffff40;white-space:nowrap;letter-spacing:.8px;border:1px solid #ffffff1a;border-radius:3px;margin-left:auto;padding:1px 5px;font-size:9px;font-weight:400;line-height:1.5}.menu-item{cursor:pointer;color:var(--sidebar-text);text-align:left;background:0 0;border:none;border-left:3px solid #0000;outline:none;flex-shrink:0;justify-content:flex-start;align-items:center;width:100%;min-height:42px;padding:11px 20px;font-size:14px;font-weight:600;line-height:1.5;text-decoration:none;transition:background-color .18s,color .18s,border-left-color .18s,box-shadow .18s;display:flex;position:relative;transform:none}.menu-item:hover,.menu-item:focus-visible{color:#e2e8f0;background:#ffffff0f;transform:none}.menu-item.active{color:#f1f5f9;border-left-color:var(--primary);background:linear-gradient(90deg,#3b82f626 0%,#3b82f60d 100%);box-shadow:inset 0 0 20px #3b82f61a}.menu-item.disabled{color:#ffffff40;cursor:not-allowed}.badge{color:var(--sidebar-text);white-space:nowrap;background:#ffffff1a;border-radius:10px;margin-left:auto;padding:2px 8px;font-size:10px}.menu-toggle{z-index:200;background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:10px 14px;font-size:20px;display:none;position:fixed;top:10px;left:10px}.sidebar-overlay{z-index:99;background:#0006;display:none;position:fixed;inset:0}.menu-group-label{color:#ffffff4d;text-transform:uppercase;letter-spacing:1px;cursor:default;-webkit-user-select:none;user-select:none;pointer-events:none;background:0 0;flex-shrink:0;justify-content:flex-start;align-items:center;min-height:38px;padding:20px 20px 6px;font-size:10px;font-weight:600;line-height:1.2;display:flex;transform:none}.menu-group-label:first-of-type{padding-top:16px}.menu-item.sub{padding-left:20px;font-size:13px}.menu-item-section-start{margin-top:16px}.skeleton{background:linear-gradient(90deg, var(--border) 25%, var(--bg) 50%, var(--border) 75%);background-size:200% 100%;border-radius:6px;height:20px;margin:6px 0;animation:1.5s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-grid{grid-template-columns:1fr 1fr;gap:8px 16px;padding:10px 0;display:grid}.skeleton-row{align-items:center;gap:10px;display:flex}.skeleton-label{flex-shrink:0;width:60px;height:14px}.skeleton-value{flex:1;height:18px}.main-content{margin-left:var(--sidebar-width);padding:var(--page-gutter);flex:1;min-height:100vh;padding-bottom:32px;overflow-y:auto}.view-section{width:min(100%, var(--content-max-width));max-width:min(var(--content-max-width), calc(100vw - var(--sidebar-width) - 80px));margin:0 auto;animation:none;display:none}.view-section.traffic-view{width:min(100%, var(--content-wide-width));max-width:min(var(--content-wide-width), calc(100vw - var(--sidebar-width) - 72px))}.view-section.active{opacity:1;animation:.5s cubic-bezier(.16,1,.3,1) both viewIn;display:block}.view-section.active.gate-view-section{animation:none}.sdwan-poc-view{width:100%;max-width:none}.sdwan-poc-shell{border:1px solid var(--glass-border);border-radius:var(--radius-xl);background:var(--glass-bg);min-height:calc(100vh - 120px);box-shadow:var(--shadow-md);overflow:hidden}.sdwan-poc-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:18px 22px;display:flex}.sdwan-poc-header h2{margin:0;font-size:20px}.sdwan-poc-header p{color:var(--text-secondary);margin:5px 0 0;font-size:13px}.sdwan-poc-frame{background:#07101f;border:0;width:100%;height:calc(100vh - 194px);min-height:760px;display:block}@keyframes viewIn{0%{opacity:0;filter:blur(4px);transform:translateY(20px)}to{opacity:1;filter:blur();transform:translateY(0)}}.card{background:var(--card-bg);-webkit-backdrop-filter:blur(20px);padding:var(--card-pad-y) var(--card-pad-x);border-radius:var(--surface-radius);box-shadow:var(--shadow-sm);border:1px solid var(--glass-border);margin-bottom:28px;transition:box-shadow .2s,border-color .3s cubic-bezier(.16,1,.3,1);animation:.5s cubic-bezier(.16,1,.3,1) both fadeIn;position:relative;overflow:hidden}.card:hover{box-shadow:var(--shadow-md);border-color:#3b82f633}@keyframes fadeIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}h2{color:var(--text-primary);text-align:left;border-left:4px solid var(--primary);letter-spacing:0;align-items:center;margin:0 0 24px;padding-left:16px;font-size:22px;font-weight:700;line-height:1.3;display:flex;position:relative}h2:before{content:"";background:linear-gradient(180deg, var(--primary) 0%, #3b82f64d 100%);border-radius:2px;width:4px;height:100%;position:absolute;top:50%;left:0;transform:translateY(-50%)}.input-grid{grid-template-columns:1fr 1fr;gap:16px 20px;margin-bottom:20px;display:grid}.topology-input-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:14px}.input-group{align-items:center;margin-bottom:12px;display:flex}.topology-input-grid .input-group{flex-direction:column;align-items:stretch;min-width:0;margin-bottom:0}label{width:96px;color:var(--label-color);flex-shrink:0;font-size:13px;font-weight:700}.topology-input-grid label{white-space:nowrap;width:auto;margin-bottom:6px;font-size:12px}input:not([type=checkbox]):not([type=radio]):not([type=file]),textarea,select{min-height:var(--field-min-height);border:1.5px solid var(--input-border);border-radius:var(--radius);background:var(--input-bg);color:var(--text-primary);outline:none;flex:1;padding:11px 14px;font-size:14px;transition:all .25s cubic-bezier(.16,1,.3,1)}.topology-input-grid input{box-sizing:border-box;width:100%;min-width:0}input:not([type=checkbox]):not([type=radio]):not([type=file]):hover,textarea:hover,select:hover{border-color:var(--primary-400)}input:not([type=checkbox]):not([type=radio]):not([type=file]):focus,textarea:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-ring)}button{border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);border:none;justify-content:center;align-items:center;font-size:14px;font-weight:600;display:inline-flex}button:disabled{opacity:.5;cursor:not-allowed}button:active:not(:disabled){transform:none}.btn-primary{background:var(--primary);color:#fff;box-shadow:var(--shadow-sm), 0 1px 0 #ffffff1a inset;z-index:1;padding:11px 24px;position:relative;overflow:hidden}.btn-primary:before{display:none}.btn-primary:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.btn-primary:hover:not(:disabled){background:var(--primary-hover);box-shadow:var(--shadow-md)}.btn-primary:active:not(:disabled){box-shadow:var(--shadow-sm);transform:none}.btn{box-shadow:var(--shadow-xs);padding:10px 24px}.btn-outline{-webkit-backdrop-filter:blur(10px);color:var(--primary);border:1.5px solid var(--primary-200);cursor:pointer;z-index:1;background:#ffffff80;justify-content:center;align-items:center;padding:11px 24px;text-decoration:none;transition:all .25s cubic-bezier(.16,1,.3,1);display:inline-flex;position:relative;overflow:hidden}.btn-outline:before{content:"";background:linear-gradient(135deg, var(--primary-50), var(--primary-100));opacity:0;z-index:-1;pointer-events:none;transition:opacity .25s;position:absolute;inset:0}.btn-outline:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.btn-outline:hover:not(:disabled){border-color:var(--primary);box-shadow:var(--shadow-sm)}.btn-outline:hover:not(:disabled):before{opacity:1}.btn-outline:active:not(:disabled){transform:none}.btn-group{flex-wrap:wrap;align-items:center;gap:10px;margin-top:15px;display:flex}.btn-group .btn-primary,.btn-group .btn-outline{border-radius:6px;justify-content:center;align-items:center;padding:10px 24px;font-size:14px;display:inline-flex}.btn-group .action-bar{flex-direction:row;gap:10px;display:none}.result-container{text-align:center;margin-top:30px}.result-container img{border-radius:var(--radius-lg);max-width:100%;box-shadow:var(--shadow-xl);border:1px solid var(--glass-border);background:var(--card-bg);transition:all .3s cubic-bezier(.16,1,.3,1);display:none}.result-container.has-result img{display:block}.result-container img:hover{box-shadow:var(--shadow-xl)}.result-placeholder{min-height:280px;color:var(--text-secondary);border:2px dashed var(--border);border-radius:var(--radius-lg);background:linear-gradient(135deg, var(--bg) 0%, #f8fafc80 100%);-webkit-backdrop-filter:blur(10px);justify-content:center;align-items:center;padding:48px 24px;font-size:14px;transition:all .3s cubic-bezier(.16,1,.3,1);display:flex}.result-placeholder:hover{border-color:var(--primary-300);background:linear-gradient(135deg, var(--bg) 0%, var(--primary-50) 100%)}.result-container.has-result .result-placeholder{display:none}.spinner{border:4px solid var(--spinner-border);border-top-color:var(--primary);border-right-color:var(--primary-400);border-radius:50%;width:40px;height:40px;margin:20px auto;animation:.7s cubic-bezier(.68,-.55,.265,1.55) infinite spin;display:none;box-shadow:0 0 20px #3b82f633}@keyframes spin{to{transform:rotate(360deg)}}.toast{border-radius:var(--radius-lg);color:#fff;z-index:999;-webkit-backdrop-filter:blur(20px);box-shadow:var(--shadow-xl);background:#000000e6;border-left:4px solid #0000;padding:14px 28px;font-size:14px;font-weight:600;animation:.4s cubic-bezier(.16,1,.3,1) slideIn,.4s 2.6s forwards fadeOut;position:fixed;top:20px;right:20px}.toast.success{border-left-color:var(--toast-success);box-shadow:var(--shadow-xl), 0 0 20px #22c55e4d}.toast.error{border-left-color:var(--toast-error);box-shadow:var(--shadow-xl), 0 0 20px #ef44444d}@keyframes slideIn{0%{opacity:0;transform:translate(120%)scale(.9)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes fadeOut{to{opacity:0;transform:translateY(-12px)scale(.95)}}.error-alert{background:linear-gradient(135deg, var(--error-bg) 0%, #fef2f2cc 100%);-webkit-backdrop-filter:blur(10px);border:1.5px solid var(--error-border);color:var(--error-text);border-radius:var(--radius-lg);text-align:left;word-break:break-all;margin-top:16px;padding:14px 18px;font-size:14px;display:none;box-shadow:0 4px 12px #dc262626}.cmt-item{border-bottom:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:6px;padding:16px 14px;transition:all .25s cubic-bezier(.16,1,.3,1);position:relative}.cmt-item:before{content:"";background:var(--cmt-hover);opacity:0;border-radius:var(--radius-lg);transition:opacity .25s;position:absolute;inset:0}.cmt-item:hover:before{opacity:1}.cmt-item:hover{border-color:var(--primary-200)}.cmt-item>*{z-index:1;position:relative}.cmt-user{color:var(--primary);font-size:14px;font-weight:600}.cmt-time{color:var(--text-secondary);margin-left:10px;font-size:11px}.cmt-ip{color:#94a3b8;margin-left:10px;font-family:Consolas,Monaco,monospace;font-size:11px}.cmt-content{color:var(--text-primary);margin-top:5px;font-size:14px;line-height:1.6}.cmt-reply{background:var(--cmt-reply-bg);border-left:3px solid var(--primary);color:var(--text-secondary);border-radius:4px;margin-top:8px;padding:8px 12px;font-size:13px;line-height:1.5}.cmt-reply-label{color:var(--primary);margin-bottom:2px;font-size:12px;font-weight:600;display:block}.cmt-counter{color:var(--text-secondary);text-align:right;margin:5px 0 0;font-size:12px}.cmt-submit{width:100%}.cmt-load-more{text-align:center;margin-top:12px}.cmt-load-more .btn-outline{padding:8px 24px}.btn-group .action-bar.inline-action-bar{display:flex}.is-visible-spinner,.is-visible-alert{display:block}.topology-static-result{margin-top:10px}.footer-beian{margin-left:var(--sidebar-width);-webkit-backdrop-filter:blur(20px);text-align:center;color:var(--text-secondary);border-top:1px solid var(--glass-border);z-index:1;background:#fffc;padding:12px 0;font-size:12px;position:relative;box-shadow:0 -4px 16px #0000000a}.footer-beian span{font-family:Consolas,Monaco,monospace;font-size:11px}.footer-beian a{color:var(--text-secondary);margin:0 10px;text-decoration:none;transition:color .15s}.footer-beian a:hover{color:var(--primary);text-decoration:underline}.beian-icon{vertical-align:middle;margin-right:3px;position:relative;top:-1px}#view-empty{text-align:center;color:#888;padding:100px}.tool-empty-state{border:1px dashed var(--border);border-radius:var(--surface-radius);min-height:180px;color:var(--text-secondary);text-align:center;background:color-mix(in srgb, var(--card-bg) 82%, var(--bg));place-items:center;padding:28px;display:grid}.tool-empty-state svg{width:28px;height:28px;color:var(--primary);margin-bottom:10px}.async-message[role=alert]{scroll-margin-top:80px}.privacy-ai-notice{background:color-mix(in srgb, #fef3c7 55%, var(--card-bg));color:var(--text-secondary);border-left:3px solid #d97706;margin:0 0 20px;padding:12px 14px;font-size:13px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.modal-open{overflow:hidden}.modal-backdrop{z-index:10000;background:#0f172a8a;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-dialog{border:1px solid var(--border);border-radius:var(--surface-radius);background:var(--card-bg);width:min(100%,440px);max-height:min(720px,100vh - 40px);box-shadow:var(--shadow-xl);outline:none;overflow:auto}.modal-dialog>h3{margin-top:0}.error-boundary{text-align:center;place-items:center;min-height:280px;padding:28px;display:grid}.error-boundary-panel{border:1px solid var(--error-border);border-radius:var(--surface-radius);background:var(--card-bg);width:min(100%,520px);box-shadow:var(--shadow-md);padding:24px}.error-boundary-panel>svg{width:32px;height:32px;color:var(--error-text)}.error-boundary-panel h2{text-align:center;border:0;margin:12px 0 8px;padding:0;display:block}.error-boundary-panel h2:before{display:none}.error-boundary-panel p{color:var(--text-secondary);margin:0 0 18px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.view-section.active,.card,.ip-panel,.ip-item{opacity:1;transform:none}}.report-section-title{color:var(--primary);border-bottom:1px solid var(--border);margin:20px 0 12px;padding-bottom:6px;font-size:14px;font-weight:700}.report-section-title:first-of-type{margin-top:0}.report-intro{margin-bottom:20px}.report-workflow-nav{border:1px solid var(--border);border-radius:var(--surface-radius);background:color-mix(in srgb, var(--bg) 76%, var(--card-bg));grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 20px;padding:8px;display:grid}.report-workflow-nav a{min-height:44px;color:var(--text-secondary);border-radius:6px;align-items:center;gap:8px;padding:7px 10px;font-size:12px;font-weight:700;text-decoration:none;display:flex}.report-workflow-nav a:hover,.report-workflow-nav a:focus-visible{background:var(--primary-subtle);color:var(--primary);outline:none}.report-workflow-nav span{border:1px solid var(--primary-200);background:var(--card-bg);width:24px;height:24px;color:var(--primary);border-radius:50%;place-items:center;display:inline-grid}.report-grid{grid-template-columns:1fr 1fr;gap:12px 20px;display:grid}.report-field{flex-direction:column;display:flex}.report-select{border:1px solid var(--border);background:var(--card-bg);min-height:44px;color:var(--text-primary);cursor:pointer;border-radius:6px;padding:0 10px;font-size:14px}.report-purpose-field{margin-top:12px}.smart-screenshot-card{border:1px solid var(--upload-border);border-radius:var(--radius);background:var(--upload-bg);cursor:default;outline:none;margin-bottom:16px;padding:16px;transition:box-shadow .15s,transform .15s,filter .15s}.smart-screenshot-picker{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:block}.smart-screenshot-picker:focus-visible{outline:2px solid var(--primary);outline-offset:6px;border-radius:var(--radius-sm)}.smart-screenshot-card:hover,.smart-screenshot-card:focus-within,.smart-screenshot-card.dragover{border-color:var(--upload-hover-border)}.smart-screenshot-card.dragover{transform:translateY(-1px)}.smart-screenshot-head{justify-content:space-between;align-items:center;gap:16px;display:flex}.smart-screenshot-head strong{color:var(--text-primary);align-items:center;gap:6px;font-size:14px;display:flex}.smart-screenshot-head p{color:var(--text-secondary);margin:4px 0 0;font-size:12px;line-height:1.5}.smart-hidden-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.smart-drop-hint{border-radius:var(--radius-sm);min-height:42px;color:var(--primary);text-align:center;background:#ffffff9e;border:1.5px dashed #2563eb75;justify-content:center;align-items:center;gap:8px;margin-top:12px;font-size:12px;font-weight:700;display:flex}.smart-screenshot-card.dragover .smart-drop-hint{background:#2563eb1f;border-color:#2563ebe6}.smart-screenshot-error{border-radius:var(--radius-sm);background:var(--error-bg);color:var(--error-text);margin-top:12px;padding:9px 10px;font-size:12px}.smart-screenshot-results{flex-direction:column;gap:8px;margin-top:14px;display:flex}.smart-screenshot-row{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card-bg);cursor:default;grid-template-columns:minmax(150px,1.3fr) minmax(140px,170px) 58px minmax(150px,1fr) 42px;align-items:center;gap:8px;padding:10px;display:grid}.smart-screenshot-row-head{min-height:34px;color:var(--primary);background:#2563eb14;border-color:#2563eb2e;padding:8px 10px;font-size:12px;font-weight:800}.smart-file-name,.smart-reason{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-secondary);font-size:12px;overflow:hidden}.smart-file-name{color:var(--text-primary);font-weight:700}.smart-screenshot-row select{border:1px solid var(--border);background:var(--input-bg);min-height:34px;color:var(--text-primary);border-radius:6px;padding:0 8px;font-size:12px}.smart-confidence{background:var(--primary-subtle);min-height:26px;color:var(--primary);border-radius:999px;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:inline-flex}.smart-delete-btn{border:1px solid var(--border);background:var(--card-bg);width:34px;height:34px;min-height:34px;color:var(--text-secondary);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;padding:0;transition:color .15s,border-color .15s,background .15s;display:inline-flex}.smart-delete-btn:hover,.smart-delete-btn:focus-visible{color:var(--error-text);background:var(--error-bg);border-color:#dc262659}.smart-apply-btn{align-self:flex-start;margin-top:4px}.report-field label{width:auto;color:var(--text-primary);margin-bottom:4px;font-size:13px;font-weight:600}.report-field label .req{color:#dc2626}.report-field input,.report-field textarea{border:1.5px solid var(--border);background:var(--card-bg);color:var(--text-primary);border-radius:6px;outline:none;padding:9px 12px;font-size:14px;transition:border-color .15s,box-shadow .15s}.report-field input:focus,.report-field textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring)}.report-date-picker{position:relative}.report-date-picker label{cursor:pointer}.report-date-trigger{border:1.5px solid var(--border);background:var(--card-bg);width:100%;min-height:44px;color:var(--text-primary);cursor:pointer;text-align:left;border-radius:6px;align-items:center;gap:10px;padding:9px 12px;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex}.report-date-trigger:hover,.report-date-trigger:focus-visible,.report-date-trigger[aria-expanded=true]{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring);outline:none}.report-date-trigger:active{transform:translateY(1px)}.report-date-icon{width:18px;height:18px;color:var(--primary);flex-shrink:0}.report-date-text{flex:1;min-width:0;font-size:14px;font-weight:600}.report-date-caret{color:var(--text-secondary);font-size:12px;font-weight:700}.report-calendar-popover{left:calc(var(--sidebar-width) + (100vw - var(--sidebar-width)) / 2);z-index:300;width:min(420px, calc(100vw - var(--sidebar-width) - 64px));border:1px solid var(--border);background:var(--card-bg);border-radius:8px;max-height:calc(100vh - 96px);padding:16px;position:fixed;top:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 20px 44px #0f172a2e,0 8px 18px #0f172a14}.report-calendar-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.report-calendar-head strong{color:var(--text-primary);font-size:16px}.report-calendar-nav{border:1px solid var(--border);background:var(--bg);width:38px;height:38px;color:var(--text-primary);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;font-size:24px;line-height:1;display:inline-flex}.report-calendar-nav:hover,.report-calendar-nav:focus-visible{border-color:var(--primary);color:var(--primary);outline:none}.report-calendar-weekdays,.report-calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.report-calendar-weekdays{color:var(--text-secondary);text-align:center;margin-bottom:8px;font-size:12px;font-weight:700}.report-calendar-day{height:40px;color:var(--text-primary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;font-size:14px;font-weight:700;transition:background .12s,border-color .12s,color .12s,transform .12s}.report-calendar-day:hover,.report-calendar-day:focus-visible{border-color:var(--primary);background:var(--primary-subtle);color:var(--primary);outline:none}.report-calendar-day.is-muted{color:var(--text-tertiary);opacity:.7}.report-calendar-day.is-today{border-color:#1a56db47}.report-calendar-day.is-selected{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 8px 18px #1a56db38}.report-calendar-actions{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.report-calendar-actions .btn-outline{min-height:34px;padding:7px 12px;font-size:13px}.view-section[aria-label=UAT生成器] .card{margin-bottom:96px}.report-upload-grid{grid-template-columns:1fr 1fr;gap:12px 20px;display:grid}.report-upload-item{border:1px dashed var(--border);border-radius:8px;flex-direction:column;padding:12px;transition:border-color .15s,background .15s;display:flex}.report-upload-item:hover{border-color:var(--primary);background:var(--primary-subtle)}.report-upload-item label{color:var(--text-primary);white-space:nowrap;margin-bottom:4px;font-size:13px;font-weight:600}.report-upload-heading{flex-wrap:wrap;align-items:center;column-gap:8px;margin-bottom:6px;display:flex}.report-upload-heading label{margin-bottom:0}.report-generate-actions{margin-top:24px}.report-status{display:block}.report-status span{color:var(--text-secondary);font-size:14px}.upload-links{flex-wrap:wrap;gap:4px 8px;display:inline-flex}.upload-links a{color:var(--primary);border:1px solid var(--primary);white-space:nowrap;border-radius:4px;padding:0 6px;font-size:11px;line-height:1.8;text-decoration:none;transition:background .15s}.upload-links a:hover{background:var(--primary-subtle)}.file-input-wrap{background:var(--upload-bg);-webkit-backdrop-filter:blur(10px);border:2px dashed var(--upload-border);border-radius:var(--radius-lg);text-align:center;cursor:pointer;width:100%;color:inherit;font:inherit;flex-direction:column;gap:6px;padding:20px;transition:all .3s cubic-bezier(.16,1,.3,1);display:flex;position:relative;overflow:hidden}.file-input-wrap:before{content:"";background:linear-gradient(135deg, var(--primary-50), transparent);opacity:0;pointer-events:none;transition:opacity .3s;position:absolute;inset:0}.file-input-wrap input[type=file]{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.file-input-wrap:hover{background:var(--upload-hover-bg);border-color:var(--primary);box-shadow:var(--shadow-sm)}.file-input-wrap:hover:before{opacity:1}.file-input-wrap.dragover{background:var(--upload-dragover-bg);border-color:var(--primary);box-shadow:var(--shadow-md)}.file-input-wrap.dragover:before{opacity:1}.file-input-wrap.has-file{border-color:var(--primary);background:var(--primary-subtle)}.file-hint{z-index:1;text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--text-primary);font-size:13px;font-weight:700;display:block;position:relative;overflow:hidden}.drag-hint{z-index:1;color:var(--upload-hint);margin-top:4px;font-size:11px;display:block;position:relative}.file-input-wrap.has-file .drag-hint{color:var(--primary);font-weight:600}@media (width<=768px){.report-workflow-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.report-grid,.report-upload-grid{grid-template-columns:1fr}.report-calendar-popover{width:auto;max-height:calc(100vh - 112px);padding:14px;position:fixed;top:72px;left:16px;right:16px;transform:none}.report-calendar-day{height:38px}}.report-field-error{color:var(--error-text);font-size:13px;line-height:1.5}.report-field input[aria-invalid=true]{border-color:var(--error-text)}.report-section-title,.report-generate-actions,.report-field input{scroll-margin-top:100px}.invoice-layout{grid-template-columns:minmax(0,1fr) minmax(300px,.85fr);align-items:stretch;gap:20px;display:grid}.invoice-intro{margin-bottom:20px}.invoice-actions{margin-top:18px}.invoice-panel,.invoice-result-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--card-bg);padding:18px}.invoice-dropzone{border:2px dashed var(--upload-border);border-radius:var(--radius);background:var(--upload-bg);text-align:center;cursor:pointer;min-height:220px;transition:border-color var(--transition), background var(--transition), box-shadow var(--transition);outline:none;flex-direction:column;justify-content:center;align-items:center;gap:8px;margin-top:16px;display:flex}.invoice-dropzone:hover,.invoice-dropzone:focus-visible,.invoice-dropzone.dragover{border-color:var(--primary);background:var(--upload-hover-bg);box-shadow:0 0 0 3px var(--primary-ring)}.invoice-dropzone.has-files{border-color:var(--primary);background:var(--primary-subtle)}.invoice-dropzone input[type=file]{display:none}.invoice-drop-icon{width:48px;height:48px;color:var(--primary);background:var(--primary-subtle);border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.invoice-drop-icon svg{width:26px;height:26px}.invoice-drop-title{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;max-width:90%;font-size:15px;font-weight:700;overflow:hidden}.invoice-drop-subtitle{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:90%;font-size:12px;overflow:hidden}.invoice-error{border-radius:var(--radius-sm);border:1px solid var(--error-border);background:var(--error-bg);color:var(--error-text);margin-top:12px;padding:10px 12px;font-size:13px;display:none}.invoice-error.active{display:block}.invoice-result-card{flex-direction:column;justify-content:center;min-height:312px;display:flex}.invoice-result-empty{min-height:230px;color:var(--text-secondary);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:14px;display:flex}.invoice-result-empty svg{width:36px;height:36px;color:var(--text-tertiary)}.invoice-result-header{color:var(--text-primary);margin-bottom:16px;font-weight:700}.invoice-result-list{flex-direction:column;gap:14px;display:flex}.invoice-result-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--card-bg);padding:14px}.invoice-item-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.invoice-item-name{min-width:0;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;overflow:hidden}.invoice-result-status{background:var(--upload-bg);color:var(--text-secondary);border-radius:999px;flex:none;padding:4px 9px;font-size:12px;font-weight:700}.invoice-result-status.is-loading{color:var(--primary);background:#2563eb1f}.invoice-result-status.is-done{color:#16a34a;background:#16a34a1f}.invoice-result-status.is-error{background:var(--error-bg);color:var(--error-text)}.invoice-result-grid{grid-template-columns:1fr 1fr;align-items:stretch;gap:14px;display:grid}.invoice-meta{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--upload-bg);flex-direction:column;justify-content:center;padding:9px 12px;display:flex}.invoice-meta-label{color:var(--text-secondary);font-size:12px;font-weight:600}.invoice-meta-value{color:var(--text-primary);margin-top:3px;font-size:16px;font-weight:700}.invoice-checkbox-box{border:1.5px solid var(--border);background:var(--card-bg);min-height:42px;color:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;align-items:center;gap:9px;padding:9px 12px;font-size:14px;font-weight:600;display:flex}.invoice-checkbox-box input{width:16px;height:16px;accent-color:var(--primary);cursor:pointer;flex:none}.invoice-filename-box{border-radius:var(--radius);color:#cbd5e1;background:#0f172a;margin:18px 0;padding:12px;overflow:hidden}.invoice-filename-box span{color:#94a3b8;margin-bottom:5px;font-size:12px;display:block}.invoice-filename-box strong{color:#86efac;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px;display:block;overflow:hidden}.invoice-item-error{border-radius:var(--radius-sm);background:var(--error-bg);color:var(--error-text);margin:-6px 0 12px;padding:9px 10px;font-size:12px}.invoice-result-actions{justify-content:flex-start;display:flex}@media (width<=900px){.invoice-layout,.invoice-result-grid{grid-template-columns:1fr}}.mobile-header{display:none}.dns-check-card{will-change:transform;transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s cubic-bezier(.16,1,.3,1)}.dns-check-card:hover{box-shadow:var(--shadow-lg)}.ipv6-check-card{will-change:transform;transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s cubic-bezier(.16,1,.3,1)}.ipv6-check-card:hover{box-shadow:var(--shadow-lg)}.speedtest-card{will-change:transform;transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s cubic-bezier(.16,1,.3,1)}.speedtest-card:hover{box-shadow:var(--shadow-lg)}.dual-ip-container{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:20px;margin-top:24px;display:grid}.dual-ip-container.single-mode{grid-template-columns:minmax(0,1fr);max-width:760px;margin-inline:auto}.ip-panel{--ip-accent:#2455c5;--ip-accent-bg:#edf3ff;--ip-detail-bg:#f8fafc;background:var(--card-bg);border:1px solid var(--border);border-top:3px solid var(--ip-accent);border-radius:var(--surface-radius);width:100%;min-width:0;animation:.28s ease-out ip-result-enter;overflow:hidden;box-shadow:0 3px 12px #0f172a0d;container-type:inline-size}.ip-panel-foreign{--ip-accent:#087969;--ip-accent-bg:#e9f7f3}.ip-panel-ipv6{--ip-accent:#526278;--ip-accent-bg:#f0f3f8}.ip-panel-header{color:var(--text-primary);background:var(--card-bg);align-items:center;gap:10px;padding:18px 22px 0;display:flex}.ip-panel-icon{width:36px;height:36px;color:var(--ip-accent);background:var(--ip-accent-bg);border-radius:8px;flex:0 0 36px;place-items:center;display:grid}.ip-panel-title{margin:0;font-size:14px;font-weight:650;line-height:1.5}.ip-panel-badge{color:var(--text-secondary);text-align:right;margin-left:auto;font-size:11px;line-height:1.5}.ip-panel .ip-result{margin:0;display:block}.ip-panel dl{margin:0}.ip-panel .ip-item{flex-direction:column;gap:3px;min-width:0;display:flex}.ip-panel .ip-label{color:var(--text-secondary);font-size:12px;font-weight:400;line-height:1.5}.ip-panel .ip-value{min-width:0;color:var(--text-primary);overflow-wrap:anywhere;margin:0;font-size:14px;font-weight:500;line-height:1.6}.ip-panel .ip-identity{padding:16px 22px 18px}.ip-panel .ip-address{padding-top:4px;position:relative}.ip-panel .ip-address .ip-value{padding-right:48px}.ip-panel .ip-address-text{font-variant-numeric:tabular-nums;letter-spacing:0;font-size:30px;font-weight:650;line-height:1.4;display:block}.ip-panel .ip-address-text.is-ipv6{font-size:24px}.ip-panel .ip-location{margin-top:9px}.ip-panel .ip-location .ip-label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.ip-panel .ip-location .ip-value{color:var(--text-secondary);align-items:baseline;gap:6px;font-weight:400;display:flex}.ip-location svg{color:var(--ip-accent);flex:0 0 15px;align-self:center}.ip-info-section{border-top:1px solid var(--border);margin:0 22px;padding:13px 0}.ip-panel .ip-section-title{color:var(--text-secondary);align-items:center;gap:7px;margin:0 0 10px;font-size:12px;font-weight:600;display:flex}.ip-network-grid,.ip-geo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px;display:grid}.ip-field-wide{grid-column:1/-1}.ip-panel .ip-operator .ip-value{font-size:15px;font-weight:600}.ip-panel .ip-type-badge{max-width:100%;color:var(--text-primary);background:var(--ip-detail-bg);border:1px solid var(--border);vertical-align:top;border-radius:4px;align-items:center;gap:5px;padding:2px 7px;font-size:12px;font-weight:500;line-height:1.5;display:inline-flex}.ip-type-badge svg{flex:0 0 14px}.ip-type-code{color:var(--text-secondary)}.ip-panel .ip-type-isp{background:var(--success-bg);color:var(--success-text);border-color:var(--success-border)}.ip-panel .ip-type-isp .ip-type-code{color:inherit}.ip-panel .ip-hostname{background:var(--ip-detail-bg);border-top:1px solid var(--border);padding:11px 22px}.ip-panel .ip-hostname .ip-value{font-size:12px;font-weight:400}.ip-panel .ip-coordinate-link{min-height:44px;color:var(--ip-accent);align-items:center;gap:4px;margin:-10px 0;font-size:13px;text-decoration:none;display:inline-flex}.ip-coordinate-link svg{flex:0 0 15px}.ip-coordinate-link:hover span{text-underline-offset:3px;text-decoration:underline}.ip-panel .ip-copy-btn{width:44px;height:44px;min-height:44px;color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;place-items:center;padding:0;transition:color .16s,background .16s,border-color .16s;display:grid;position:absolute;top:24px;right:-3px}.ip-panel .ip-copy-btn:hover{background:var(--ip-accent-bg);border-color:var(--border);color:var(--ip-accent)}.ip-panel .ip-copy-btn.copied{background:var(--success-bg);color:var(--success-text)}.ip-panel .ip-copy-btn:disabled{opacity:.45;cursor:default}.ip-panel :is(.ip-copy-btn,.ip-coordinate-link):focus-visible{outline:2px solid var(--ip-accent);outline-offset:2px}.ip-foreign-error{color:#92400e;background:#fefce8;border:1px solid #fde68a;border-radius:8px;align-items:center;gap:8px;margin-top:12px;padding:10px 14px;font-size:13px;display:flex}html.dark .ip-panel{--ip-accent:#9abbff;--ip-accent-bg:#223450;--ip-detail-bg:#172334}html.dark .ip-panel-foreign{--ip-accent:#78d9bc;--ip-accent-bg:#173c36}html.dark .ip-panel-ipv6{--ip-accent:#b8c8dd;--ip-accent-bg:#283346}@container (width<=340px){.ip-panel-header{flex-wrap:wrap;gap:8px;padding:16px 16px 0}.ip-panel-badge{text-align:left;flex-basis:100%;margin:-4px 0 0 44px}.ip-panel .ip-identity{padding:16px}.ip-panel .ip-address-text{font-size:26px}.ip-panel .ip-address-text.is-ipv6{font-size:21px}.ip-panel .ip-address .ip-value{padding-right:0}.ip-panel .ip-address{padding-top:12px}.ip-panel .ip-copy-btn{top:-12px;right:-6px}.ip-panel .ip-info-section{margin:0 16px}.ip-network-grid,.ip-geo-grid{gap:13px 16px}.ip-panel [data-field=timezone],.ip-panel [data-field=loc]{grid-column:1/-1}.ip-panel .ip-hostname{padding:13px 16px}}@media (width<=1100px) and (width>=769px){.dual-ip-container{grid-template-columns:minmax(0,1fr)}}@keyframes ip-result-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.ip-panel{animation:none}.ip-panel .ip-copy-btn{transition:none}}.ip-lookup-form{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.ip-lookup-form input{border:1.5px solid var(--border);border-radius:var(--radius);-webkit-backdrop-filter:blur(10px);background:#f8fafccc;outline:none;min-width:200px;padding:11px 16px;font-family:Consolas,Monaco,monospace;font-size:14px;transition:all .25s cubic-bezier(.16,1,.3,1)}.ip-lookup-form input:hover{border-color:var(--primary-400);transform:translateY(-1px)}.ip-lookup-form input:focus{border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-ring), var(--glow-primary);transform:translateY(-1px)}.ip-lookup-form .btn-primary{white-space:nowrap;padding:10px 24px;font-size:14px}.ip-loading{text-align:center;color:var(--text-secondary);margin-top:20px;font-size:14px;display:none}.ip-loading.active{display:block}.ip-error{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error-text);border-radius:8px;margin-top:20px;padding:12px 16px;font-size:14px;display:none}.ip-error.active{display:block}.ip-intro{color:var(--text-secondary);margin:-8px 0 20px;font-size:13px;line-height:1.6}.ip-history-wrap{flex:1;min-width:200px;position:relative}.ip-history-wrap input{box-sizing:border-box;width:100%}.ip-history-dropdown{background:var(--card-bg);border:1px solid var(--border);box-shadow:var(--shadow-lg);z-index:50;border-radius:0 0 8px 8px;max-height:200px;display:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.ip-history-dropdown.active{display:block}.ip-history-item{cursor:pointer;color:var(--text-primary);border-bottom:1px solid var(--border);padding:8px 14px;font-family:Consolas,Monaco,monospace;font-size:13px;transition:background .1s}.ip-history-item:last-child{border-bottom:none}.ip-history-item:hover{background:var(--primary-subtle)}.ip-history-item .clear-btn{float:right;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:2px 6px;font-size:11px}.ip-history-item .clear-btn:hover{color:#dc2626}.empty-state{text-align:center;color:var(--text-secondary);padding:40px 20px}.empty-state svg{width:48px;height:48px;stroke:var(--text-secondary);opacity:.4;margin-bottom:12px}.empty-state p{margin:0;font-size:14px}html.dark{--bg:#0a0f1e;--card-bg:#172033;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--border:#334155;--sidebar-bg:#020617;--sidebar-text:#94a3b8;--sidebar-active-bg:#1e293b;--primary-subtle:#3b82f626;--shadow-sm:0 2px 8px #0006;--shadow-md:0 4px 16px #00000080, 0 2px 8px #0000004d;--shadow-lg:0 12px 32px #0009, 0 6px 16px #0006;--label-color:#94a3b8;--input-border:#475569;--input-bg:#1e293bcc;--upload-bg:#1e293b99;--upload-border:#334155;--upload-hover-bg:#3b82f61a;--upload-dragover-bg:#3b82f626;--upload-hint:#a5b4c8;--error-bg:#3b111199;--error-border:#581c1c;--error-text:#fca5a5;--cmt-hover:#1e293b80;--cmt-reply-bg:#1e293b99;--spinner-border:#475569;--glass-bg:#1e293b66;--glass-border:#94a3b81a;--glass-shadow:0 8px 32px #0006;--glow-primary:0 0 24px #3b82f633;--glow-primary-strong:0 0 40px #3b82f64d, 0 0 80px #3b82f626}html.dark body{background:radial-gradient(ellipse 800px 600px at 20% 40%, #3b82f626 0%, transparent 50%), radial-gradient(ellipse 600px 800px at 80% 60%, #8b5cf61f 0%, transparent 50%), radial-gradient(circle 400px at 50% 100%, #10b98114 0%, transparent 50%), var(--bg)}html.dark input,html.dark textarea{color:#f1f5f9;background:#1e293b;border-color:#334155}html.dark .btn-outline{color:#93c5fd;background:#1e293b}html.dark .report-section-title,html.dark .report-workflow-nav span,html.dark .upload-links a,html.dark .drag-hint,html.dark .software-icon,html.dark .st-metric-value,html.dark .traffic-kicker,html.dark .customer-traffic-customer span,html.dark .dns-check-value,html.dark .ip-coordinate-link{color:#93c5fd}html.dark .privacy-ai-notice{color:#fde68a;background:#3d321d}html.dark input:hover,html.dark textarea:hover{border-color:#475569}html.dark input:focus,html.dark textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #3b82f633}html.dark .cmt-item:hover{background:var(--cmt-hover)}html.dark .cmt-reply{background:var(--cmt-reply-bg)}html.dark .ip-lookup-form input{-webkit-backdrop-filter:blur(10px);background:#1e293b99}html.dark .file-input-wrap input[type=file]::file-selector-button{color:#f1f5f9;background:#1e293b;border-color:#334155}html.dark .file-input-wrap input[type=file]::file-selector-button:hover{background:#334155}html.dark .footer-beian{-webkit-backdrop-filter:blur(20px);background:#0a0f1ecc;box-shadow:0 -4px 16px #0009}html.dark .ip-foreign-error{color:#fde68a;background:#422006;border-color:#78350f}html.dark .report-field input,html.dark .report-field textarea,html.dark .report-field select,html.dark .report-date-trigger,html.dark .report-calendar-popover{color:#f1f5f9;background:#1e293b;border-color:#334155}html.dark .report-calendar-nav{color:#f1f5f9;background:#0f172a;border-color:#334155}html.dark .report-calendar-day{color:#e2e8f0}html.dark .report-calendar-day.is-muted{color:#a5b4c8}html.dark .report-calendar-day:hover,html.dark .report-calendar-day:focus-visible{background:#60a5fa29}html.dark .report-calendar-day.is-selected{color:#fff}html.dark .smart-screenshot-card{background:#1e293b}html.dark .smart-screenshot-card:hover,html.dark .smart-screenshot-card:focus-within,html.dark .smart-screenshot-card.dragover{border-color:#93c5fd}html.dark .smart-drop-hint{color:#93c5fd;background:#172033}html.dark .smart-screenshot-row-head{background:#3b82f624}html.dark .skeleton{background:linear-gradient(90deg,#334155 25%,#475569 50%,#334155 75%) 0 0/200% 100%}.theme-toggle{opacity:.8;border-top:1px solid #ffffff14;margin-top:auto;padding:12px 25px;font-size:13px}.theme-toggle:hover{opacity:1}.theme-toggle:focus-visible{box-shadow:0 0 0 3px var(--primary-ring);outline:none}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}html.dark ::-webkit-scrollbar-thumb{background:#475569}html.dark ::-webkit-scrollbar-thumb:hover{background:#64748b}.changelog-list{flex-direction:column;gap:16px;display:flex}.changelog-intro{color:var(--text-secondary);margin:0 0 16px;font-size:13px}.changelog-entry{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card-bg);box-shadow:var(--shadow-xs);overflow:hidden}.changelog-entry-header{background:linear-gradient(135deg, var(--primary-50), #ffffff8c);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.changelog-version{background:var(--primary);color:#fff;letter-spacing:0;border-radius:999px;align-items:center;padding:4px 10px;font-size:13px;font-weight:800;line-height:1.2;display:inline-flex}.changelog-date{color:var(--text-secondary);white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;font-weight:700}.changelog-changes{color:var(--text-primary);margin:0;padding:14px 18px 16px 34px}.changelog-changes li{margin-bottom:8px;font-size:13px;line-height:1.65}.changelog-changes li:last-child{margin-bottom:0}html.dark .changelog-entry-header{background:linear-gradient(135deg,#2563eb2e,#0f172abf)}#changelog-container table{border-collapse:collapse;width:100%}#changelog-container th{text-align:left;color:var(--text-secondary);border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.5px;padding:0 12px 8px;font-size:12px;font-weight:600}#changelog-container td{vertical-align:top;border-bottom:1px solid var(--border);color:var(--text-primary);padding:12px}#changelog-container tr:last-child td{border-bottom:none}#changelog-container .spinner{margin:40px auto}.changelog-gate-overlay{z-index:300;-webkit-backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:center;animation:.16s ease-out gateOverlayFade;display:none;position:fixed;inset:0}.changelog-gate-dialog{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow-lg);text-align:center;width:90%;max-width:360px;padding:32px 28px;animation:.16s ease-out gateDialogIn}@keyframes gateOverlayFade{0%{opacity:0}to{opacity:1}}@keyframes gateDialogIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.changelog-gate-icon{color:var(--primary);margin-bottom:8px}.changelog-gate-icon svg{width:48px;height:48px}.changelog-gate-dialog h3{color:var(--text-primary);margin:0 0 8px;font-size:16px}.changelog-gate-question{color:var(--text-secondary);margin:0 0 16px;font-size:13px}.changelog-gate-dialog input{border:1.5px solid var(--border);text-align:center;background:var(--input-bg);width:100%;color:var(--text-primary);border-radius:6px;outline:none;margin-bottom:8px;padding:10px 14px;font-size:14px}.changelog-gate-dialog input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring)}.changelog-gate-error{color:#dc2626;margin-bottom:8px;font-size:13px}.changelog-gate-buttons{justify-content:center;gap:10px;margin-top:12px;display:flex}.changelog-gate-buttons .btn-primary,.changelog-gate-buttons .btn-outline{padding:10px 36px;font-size:14px}.dns-check-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-top:16px;overflow:hidden}.dns-check-header{border-bottom:1px solid var(--border);color:#854d0e;background:linear-gradient(135deg,#fefce8 0%,#fef3c7 100%);align-items:center;gap:8px;padding:14px 18px;font-size:13px;font-weight:700;display:flex;position:relative}.dns-check-header:before{content:"";background:linear-gradient(90deg,#0000,#fff9,#0000);height:1px;position:absolute;top:0;left:0;right:0}.dns-check-body{background:var(--card-bg);padding:14px 16px}.dns-check-target{align-items:center;gap:8px;margin-bottom:10px;font-size:13px;display:flex}.dns-check-label{color:var(--text-secondary)}.dns-check-value{color:var(--primary);font-family:Consolas,Monaco,monospace;font-weight:600}.dns-check-loading{color:var(--text-secondary);align-items:center;gap:8px;font-size:13px;display:flex}.dns-spinner{border:2px solid var(--spinner-border);border-top-color:var(--primary);border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.8s linear infinite spin;display:inline-block}.dns-check-result{align-items:center;gap:8px;font-size:13px;font-weight:600;display:none}.dns-check-result.is-visible{display:flex}.dns-ok{color:#166534}.dns-fail{color:var(--error-text)}html.dark .dns-ok{color:#86efac}html.dark .dns-check-card{background:var(--glass-bg);border-color:var(--glass-border)}html.dark .dns-check-header{color:#fde68a;background:linear-gradient(135deg,#1e293bcc 0%,#713f1299 100%)}html.dark .dns-check-header:before{background:linear-gradient(90deg,#0000,#fde68a4d,#0000)}.ipv6-check-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-top:16px;overflow:hidden}.ipv6-check-header{border-bottom:1px solid var(--border);color:#6b21a8;background:linear-gradient(135deg,#f5f3ff 0%,#e9d5ff 100%);align-items:center;gap:8px;padding:14px 18px;font-size:13px;font-weight:700;display:flex;position:relative}.ipv6-check-header:before{content:"";background:linear-gradient(90deg,#0000,#fff9,#0000);height:1px;position:absolute;top:0;left:0;right:0}.ipv6-check-body{padding:0}.ipv6-check-body .ip-panel{box-shadow:none;-webkit-backdrop-filter:none;will-change:auto;border:0;border-radius:0}html.dark .ipv6-check-card{background:var(--glass-bg);border-color:var(--glass-border)}html.dark .ipv6-check-header{color:#c4b5fd;background:linear-gradient(135deg,#1e293bcc 0%,#3b076499 100%)}html.dark .ipv6-check-header:before{background:linear-gradient(90deg,#0000,#c4b5fd4d,#0000)}.speedtest-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-top:16px;overflow:hidden}.speedtest-header{border-bottom:1px solid var(--border);color:#1e40af;background:linear-gradient(135deg,#eff6ff 0%,#dbeafe 100%);align-items:center;gap:8px;padding:14px 18px;font-size:13px;font-weight:700;display:flex;position:relative}.speedtest-header:before{content:"";background:linear-gradient(90deg,#0000,#fff9,#0000);height:1px;position:absolute;top:0;left:0;right:0}.speedtest-badge{white-space:nowrap;color:#3730a3;background:#3730a31a;border-radius:10px;margin-left:auto;padding:2px 8px;font-size:10px;font-weight:600}.speedtest-body{padding:14px 16px}.speedtest-note{color:var(--text-secondary);margin:0 0 14px;font-size:12px;line-height:1.5}.speedtest-controls{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:14px;display:flex}.speedtest-sizes{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.speedtest-sizes label{width:auto;color:var(--text-secondary);margin-right:2px;font-size:12px}.speedtest-sizes select{border:1px solid var(--border);background:var(--input-bg);min-height:44px;color:var(--text-primary);border-radius:4px;outline:none;padding:4px 8px;font-size:12px}.speedtest-sizes select:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-ring)}.speedtest-progress{background:var(--border);border-radius:3px;height:6px;margin-bottom:14px;overflow:hidden}.speedtest-stage{color:var(--text-primary);margin:0 0 12px;font-size:14px;line-height:1.5}.speedtest-results-region{min-height:360px}.speedtest-results-region .speedtest-empty-state{min-height:324px}.speedtest-progress-fill{background:var(--primary);border-radius:3px;width:0%;height:100%;transition:width .3s}.speedtest-progress-fill.is-error{background:#dc2626}.speedtest-progress-fill.is-finished{background:#16a34a}.speedtest-empty-state strong{color:var(--text-primary);margin-bottom:4px;display:block}.speedtest-empty-state p{color:var(--text-secondary);margin:0}.speedtest-metrics{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px;display:grid}.st-metric{text-align:center;padding:8px 4px}.st-metric-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:2px;font-size:10px;display:block}.st-metric-value{color:var(--primary);font-family:Consolas,Monaco,monospace;font-size:22px;font-weight:300;line-height:1.2;display:block}.st-metric-unit{color:var(--text-secondary);font-size:11px}.speedtest-charts{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px;display:grid}.st-chart-wrapper{height:110px;position:relative}.speedtest-result{color:#166534;word-break:break-all;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;padding:10px 14px;font-size:12px}html.dark .speedtest-card{background:var(--glass-bg);border-color:var(--glass-border)}html.dark .speedtest-header{color:#a5b4fc;background:linear-gradient(135deg,#1e293bcc 0%,#312e8199 100%)}html.dark .speedtest-header:before{background:linear-gradient(90deg,#0000,#a5b4fc4d,#0000)}html.dark .speedtest-badge{color:#a5b4fc;background:#a5b4fc26}html.dark .speedtest-progress{background:#334155}html.dark .speedtest-result{color:#86efac;background:#14532d;border-color:#166534}html.dark .speedtest-sizes select{color:#f1f5f9;background:#1e293b;border-color:#334155}@media (width<=768px){.speedtest-results-region{min-height:420px}.speedtest-results-region .speedtest-empty-state{min-height:384px}.speedtest-metrics{grid-template-columns:repeat(2,1fr)}.speedtest-charts{grid-template-columns:repeat(2,minmax(0,1fr))}.st-metric-value{font-size:18px}.st-chart-wrapper{height:100px}}.software-download-card{max-width:1120px;margin:0 auto}.software-loading,.software-empty{min-height:180px;color:var(--text-secondary);border:1px dashed var(--border);border-radius:var(--radius-lg);background:var(--upload-bg);justify-content:center;align-items:center;gap:10px;font-size:14px;display:flex}.software-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;display:grid}.software-filter-bar{border:1px solid var(--border);border-radius:var(--surface-radius);background:color-mix(in srgb, var(--bg) 72%, var(--card-bg));grid-template-columns:minmax(0,1fr) minmax(110px,auto) minmax(110px,auto) auto;align-items:end;gap:10px;margin-bottom:16px;padding:12px;display:grid}.software-filter-bar>label{width:auto;min-width:0;color:var(--text-secondary);gap:5px;font-size:12px;display:grid}.software-filter-bar input,.software-filter-bar select{width:100%;min-width:0;min-height:44px}.software-search-field{position:relative}.software-search-field>svg{width:17px;height:17px;color:var(--text-secondary);pointer-events:none;position:absolute;bottom:11px;left:12px}.software-filter-bar .software-search-field input[type=search]{padding-left:38px}.software-result-count{min-height:40px;color:var(--text-secondary);white-space:nowrap;justify-content:center;align-items:center;padding:0 10px;font-size:12px;display:inline-flex}.software-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--card-bg);min-height:220px;box-shadow:var(--shadow-xs);transition:transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast);flex-direction:column;gap:14px;padding:18px;display:flex}.software-item:hover{border-color:var(--primary-200);box-shadow:var(--shadow-sm)}.software-item-head{align-items:flex-start;gap:12px;display:flex}.software-icon{width:42px;height:42px;color:var(--primary);background:var(--primary-subtle);border-radius:10px;flex:0 0 42px;justify-content:center;align-items:center;display:inline-flex}.software-icon svg{width:22px;height:22px}.software-title-wrap{min-width:0}.software-title-wrap h3{overflow-wrap:anywhere;color:var(--text-primary);margin:0;font-size:16px;line-height:1.45}.software-meta{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.software-meta span{border:1px solid var(--border);background:var(--upload-bg);min-height:22px;color:var(--text-secondary);border-radius:999px;align-items:center;padding:2px 8px;font-size:12px;line-height:1.3;display:inline-flex}.software-description{color:var(--text-secondary);flex:1;margin:0;font-size:14px;line-height:1.65}.software-source-note{color:var(--text-secondary);margin:0 0 16px;font-size:12px;line-height:1.6}.software-file-details{color:var(--text-secondary);margin:0;font-size:12px;line-height:1.6}.software-file-details dd{overflow-wrap:anywhere;color:var(--text-primary);margin:2px 0 0;font-family:monospace}.software-actions{align-items:center;gap:10px;margin-top:auto;display:flex}.software-actions .btn-primary,.software-actions .btn-outline{min-height:44px;text-decoration:none}.software-actions button[disabled]{opacity:.55;cursor:not-allowed}html.dark .software-item{border-color:var(--glass-border);background:var(--card-bg)}html.dark .software-meta span,html.dark .software-loading,html.dark .software-empty{background:#1e293b99;border-color:#334155}@media (width<=768px){.software-filter-bar{grid-template-columns:1fr 1fr}.software-search-field,.software-result-count{grid-column:1/-1}.software-grid{grid-template-columns:1fr}.software-item{min-height:0;padding:16px}.software-actions .btn-primary,.software-actions .btn-outline{width:100%}.speedtest-controls,.speedtest-sizes{align-items:stretch}.speedtest-controls{flex-direction:column}.speedtest-sizes{grid-template-columns:auto minmax(0,1fr);width:100%;display:grid}.speedtest-controls>.btn-primary{width:100%;min-height:44px}}.pingtest-controls{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.pingtest-target-input{flex:260px;min-width:200px}.pingtest-controls select,.pingtest-controls input{border:1px solid var(--border);background:var(--input-bg);color:var(--text-primary);border-radius:6px;outline:none;padding:8px 12px;font-size:14px}.pingtest-controls select:focus,.pingtest-controls input:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-ring)}.pingtest-status{color:var(--text-secondary);align-items:center;gap:8px;margin-bottom:14px;font-size:13px;display:flex}.pingtest-error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;margin-bottom:14px;padding:8px 12px;font-size:13px}.pingtest-table-wrap{overflow-x:auto}.pingtest-table{border-collapse:collapse;width:100%;font-size:13px}.pingtest-table th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);border-bottom:2px solid var(--border);white-space:nowrap;padding:6px 10px;font-size:11px;font-weight:600}.pingtest-table td{border-bottom:1px solid var(--border);white-space:nowrap;padding:6px 10px;font-family:Consolas,Monaco,monospace}.pingtest-table td:first-child{font-family:inherit}.pingtest-table tbody tr:hover{background:var(--hover-bg)}.pt-green{color:#16a34a;font-weight:600}.pt-yellow{color:#d97706;font-weight:600}.pt-loss{color:#dc2626;font-weight:600}html.dark .pingtest-error{color:#fca5a5;background:#450a0a;border-color:#7f1d1d}html.dark .pt-green{color:#4ade80}html.dark .pt-yellow{color:#fbbf24}html.dark .pt-loss{color:#f87171}html.dark .pingtest-table tbody tr:hover{background:#1e293b}@media (width<=480px){.pingtest-target-input,.pingtest-controls .btn-primary{width:100%;min-width:0;min-height:44px}}.view-section.traffic-view{max-width:min(1560px, calc(100vw - var(--sidebar-width) - 72px));filter:none;opacity:1;animation:none;transform:none}.traffic-card{will-change:auto;max-width:none;margin:0 auto;padding:34px 38px;transition:border-color .18s,box-shadow .18s,background-color .18s;animation:none;overflow:visible;transform:none}.traffic-card:hover{transform:none}.view-section.traffic-view .traffic-card{will-change:auto;transition:border-color .18s,box-shadow .18s,background-color .18s;animation:none;transform:none}.view-section.traffic-view .traffic-card:hover{transform:none}.traffic-unavailable-note{color:var(--error-text);white-space:nowrap;margin-left:12px;font-weight:900}.traffic-query-panel{z-index:160;border:1px solid var(--border);border-radius:var(--radius);background:#f8fafcb8;margin-top:18px;padding:18px;animation:none;position:relative;transform:none}.traffic-query-grid{grid-template-columns:minmax(220px,1fr) minmax(260px,1.25fr) auto;align-items:end;gap:12px;display:grid}.traffic-search-box{min-width:0;position:relative}.traffic-field{width:auto;color:var(--label-color);flex-direction:column;gap:6px;font-size:12px;font-weight:700;display:flex}.traffic-field span{line-height:1.2}.traffic-field input,.traffic-field select{border:1.5px solid var(--input-border);border-radius:var(--radius);background:var(--input-bg);width:100%;min-width:0;height:42px;color:var(--text-primary);outline:none;padding:9px 12px;font-size:14px;transition:border-color .2s,box-shadow .2s,background-color .2s,color .2s;transform:none}.traffic-field select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--text-secondary) 50%), linear-gradient(135deg, var(--text-secondary) 50%, transparent 50%);background-position:calc(100% - 18px) 18px,calc(100% - 13px) 18px;background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:34px}.traffic-field input:focus,.traffic-field select:focus{border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-ring);transform:none}.traffic-field input:hover,.traffic-field select:hover{transform:none}.traffic-submit{white-space:nowrap;min-width:148px;height:42px}.traffic-submit .loader-circle{animation:1s linear infinite spin}.traffic-range-area{border-top:1px solid var(--border-light);margin-top:14px;padding-top:14px;position:relative}.traffic-range-title{color:var(--label-color);margin-bottom:8px;font-size:12px;font-weight:800}.traffic-range-buttons{flex-wrap:wrap;gap:8px;display:flex}.traffic-range-buttons button,.traffic-range-preset-grid button{border:1px solid var(--border);background:var(--card-bg);min-height:34px;color:var(--text-secondary);cursor:pointer;border-radius:8px;padding:7px 11px;font-size:12px;font-weight:800;transition:border-color .18s,box-shadow .18s,background-color .18s,color .18s;transform:none}.traffic-range-buttons button:hover,.traffic-range-preset-grid button:hover{border-color:var(--primary);color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring);transform:none}.traffic-range-buttons button.is-active{border-color:var(--primary);color:#fff;background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 8px 18px #2563eb2e}.traffic-custom-range-button{text-overflow:ellipsis;white-space:nowrap;max-width:360px;overflow:hidden}.traffic-range-popover{z-index:520;border:1px solid var(--border);background:var(--card-bg);border-radius:10px;grid-template-columns:minmax(260px,.42fr) minmax(360px,1fr);gap:18px;padding:16px;display:grid;position:absolute;top:calc(100% + 8px);left:0;right:0;box-shadow:0 22px 60px #0f172a2e}.traffic-custom-range-form{border-right:1px solid var(--border-light);grid-template-columns:1fr;gap:10px;padding-right:18px;display:grid}.traffic-custom-range-form label{width:100%;color:var(--label-color);grid-template-columns:48px 1fr;align-items:center;gap:8px;font-size:12px;font-weight:800;display:grid}.traffic-custom-range-form input{border:1.5px solid var(--input-border);background:var(--input-bg);width:100%;min-width:0;height:38px;color:var(--text-primary);border-radius:8px;padding:7px 10px;font-size:13px}.traffic-custom-range-form .btn-primary{justify-self:end;min-width:88px;height:38px}.traffic-range-preset-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.traffic-options-row{flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:12px;display:flex}.traffic-toggle-option,.traffic-domestic-option{width:auto;min-width:0;max-width:100%;min-height:44px;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;font-weight:700;line-height:1.2;transition:color .15s;display:inline-flex;transform:none}.traffic-toggle-option input,.traffic-domestic-option input{width:16px;height:16px;accent-color:var(--primary);cursor:pointer;flex:none;transition:none;transform:none}.traffic-toggle-option input:hover,.traffic-toggle-option input:focus,.traffic-domestic-option input:hover,.traffic-domestic-option input:focus{box-shadow:none;transform:none}.traffic-toggle-option span,.traffic-domestic-option span{white-space:normal;overflow-wrap:anywhere;min-width:0;line-height:1.5}.traffic-suggestions{z-index:1000;overscroll-behavior:contain;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch;border:1px solid var(--border);border-radius:var(--radius);background:var(--card-bg);max-height:min(420px,100vh - 96px);box-shadow:var(--shadow-md);gap:6px;padding:8px;display:grid;position:fixed;overflow-y:auto}.traffic-suggestions::-webkit-scrollbar{width:8px}.traffic-suggestions::-webkit-scrollbar-thumb{background:#64748b6b;border-radius:999px}.traffic-suggestions button,.traffic-match-list button{border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg);width:100%;color:var(--text-primary);text-align:left;cursor:pointer;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.traffic-suggestions button:hover,.traffic-match-list button:hover{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring);transform:none}.traffic-suggestions strong,.traffic-match-list strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.traffic-suggestions span,.traffic-match-list span{color:var(--text-secondary);flex-shrink:0;font-family:Consolas,Monaco,monospace;font-size:12px}.traffic-error{border:1px solid var(--error-border);border-radius:var(--radius);background:var(--error-bg);color:var(--error-text);align-items:center;gap:8px;margin-top:12px;padding:10px 12px;font-size:13px;display:flex}.traffic-view button,.traffic-view button:hover,.traffic-view button:active,.traffic-view .btn-primary,.traffic-view .btn-primary:hover,.traffic-view .btn-primary:active,.traffic-view .btn-outline,.traffic-view .btn-outline:hover,.traffic-view .btn-outline:active{transform:none}.traffic-results,.traffic-result-header,.traffic-match-list,.traffic-customer-editor,.traffic-interface-card,.traffic-chart-wrap,.traffic-zabbix-stats{will-change:auto;animation:none;transform:none}.traffic-results{grid-template-columns:minmax(0,1fr);gap:14px;margin-top:18px;display:grid}.traffic-match-list{border:1px solid var(--border);border-radius:var(--radius);background:#f8fafcb8;gap:8px;margin-top:18px;padding:14px;display:grid}.traffic-result-header{border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(135deg,#eef6ff 0%,#f8fafc 68%,#f4fbff 100%);justify-content:space-between;align-items:flex-end;gap:12px;padding:14px 16px;display:flex}.traffic-kicker{color:var(--primary);margin-bottom:3px;font-size:12px;font-weight:700;display:block}.traffic-result-header h3,.traffic-interface-header h3{color:var(--text-primary);margin:0;font-size:18px;line-height:1.3}.traffic-host-id{color:var(--text-secondary);flex-shrink:0;font-family:Consolas,Monaco,monospace;font-size:12px}.traffic-result-meta{color:var(--text-secondary);flex-wrap:wrap;gap:8px 12px;margin-top:6px;font-size:12px;display:flex}.traffic-customer-editor{border:1px solid var(--border);border-radius:var(--radius);background:#f8fafcb8;grid-template-columns:minmax(220px,1fr) auto;align-items:end;gap:10px;padding:14px;display:grid}.traffic-customer-editor .btn-outline{white-space:nowrap;height:42px}.traffic-interface-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--card-bg);min-width:0;box-shadow:var(--shadow-sm);overflow:hidden}.traffic-interface-header{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;gap:14px;padding:13px 16px;display:flex}.traffic-interface-header p{overflow-wrap:anywhere;color:var(--text-secondary);margin:4px 0 0;font-size:12px}.traffic-legend-strip{color:var(--text-primary);flex-wrap:wrap;justify-content:flex-end;gap:14px;font-size:12px;font-weight:700;display:inline-flex}.traffic-legend-strip span{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.traffic-legend-strip i{border-radius:2px;width:18px;height:7px;display:inline-block;box-shadow:inset 0 0 0 1px #0f172a1f}.traffic-legend-strip i.is-outage{background:#dc2626;height:8px;box-shadow:inset 0 0 0 1px #7f1d1d2e,0 0 0 2px #f871712e}.traffic-chart-wrap{background:repeating-linear-gradient(90deg,#0000 0 19px,#94a3b812 20px),linear-gradient(#fff 0%,#fbfdff 100%);height:304px;padding:26px 18px 10px;position:relative}.traffic-chart-title{color:#334155;text-align:center;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;font-family:Consolas,Monaco,monospace;font-size:11px;font-weight:700;position:absolute;top:7px;left:18px;right:18px;overflow:hidden}.traffic-chart-wrap canvas{image-rendering:auto}.traffic-outage-note{color:#b91c1c;background:linear-gradient(90deg,#fee2e2eb,#fef2f2b8);border-top:1px solid #dc262647;border-bottom:1px solid #dc262629;padding:10px 16px;font-size:12px;font-weight:800}.traffic-zabbix-stats{border-top:1px solid var(--border-light);background:#fff;max-width:100%;padding:10px 16px 14px;overflow-x:auto}.traffic-zabbix-stats table{border-collapse:collapse;width:100%;min-width:720px;color:var(--text-secondary);font-family:Consolas,Monaco,monospace;font-size:11px}.traffic-zabbix-stats:focus-visible{outline:2px solid var(--text-primary);outline-offset:-3px}.traffic-zabbix-stats th{color:#64748b;text-align:right;border-bottom:1px solid #cbd5e1b3;padding:3px 8px 6px;font-weight:700}.traffic-zabbix-stats th:first-child,.traffic-zabbix-stats td:first-child{text-align:left}.traffic-zabbix-stats td{color:#334155;text-align:right;white-space:nowrap;padding:5px 8px}.traffic-zabbix-stats td:first-child{text-overflow:ellipsis;max-width:460px;overflow:hidden}.traffic-stat-swatch{vertical-align:-1px;border-radius:1px;width:9px;height:9px;margin-right:6px;display:inline-block;box-shadow:inset 0 0 0 1px #0f172a2e}html.dark .traffic-query-panel,html.dark .traffic-match-list,html.dark .traffic-customer-editor,html.dark .traffic-interface-card{background:#0f172ab8;border-color:#334155}html.dark .traffic-suggestions,html.dark .traffic-range-popover,html.dark .traffic-range-buttons button,html.dark .traffic-range-preset-grid button{background:#0f172a;border-color:#334155}html.dark .traffic-range-buttons button.is-active{color:#fff;background:linear-gradient(135deg,#2563eb,#1d4ed8);border-color:#60a5fa}html.dark .traffic-custom-range-form{border-right-color:#334155}html.dark .traffic-custom-range-form input{color:#f1f5f9;background:#1e293b;border-color:#334155}html.dark .traffic-suggestions button,html.dark .traffic-match-list button{background:#111827;border-color:#334155}html.dark .traffic-field input,html.dark .traffic-field select{color:#f1f5f9;background:#1e293b;border-color:#334155}html.dark .traffic-result-header{background:linear-gradient(135deg,#1e293be6 0%,#0f172ae6 72%);border-color:#334155}html.dark .traffic-chart-wrap{background:repeating-linear-gradient(90deg,#0000 0 19px,#94a3b814 20px),linear-gradient(#0f172a 0%,#111827 100%)}html.dark .traffic-chart-title{color:#cbd5e1}html.dark .traffic-outage-note{color:#fecaca;background:#7f1d1d38;border-top-color:#f871714d}html.dark .traffic-zabbix-stats{background:#0f172a;border-top-color:#334155}html.dark .traffic-zabbix-stats th{color:#94a3b8;border-bottom-color:#334155}html.dark .traffic-zabbix-stats td{color:#cbd5e1}html.dark .traffic-interface-header{border-bottom-color:#334155}@media (width<=980px){.view-section.traffic-view{max-width:100%}.traffic-query-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.traffic-range-popover{grid-template-columns:1fr}.traffic-custom-range-form{border-right:0;border-bottom:1px solid var(--border-light);padding-bottom:14px;padding-right:0}.traffic-submit{width:100%}.traffic-interface-header{flex-direction:column;align-items:flex-start}}@media (width<=640px){.traffic-query-grid{grid-template-columns:1fr}.traffic-range-preset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.traffic-toggle-option span,.traffic-domestic-option span{white-space:normal}.traffic-result-header{flex-direction:column;align-items:flex-start}.traffic-customer-editor{grid-template-columns:1fr}.traffic-chart-wrap{height:300px;padding-left:10px;padding-right:10px}.traffic-chart-title{left:10px;right:10px}}.customer-traffic-page{background:linear-gradient(#eff6ffe6,#f8fafcf5),radial-gradient(circle at 0 0,#2563eb1f,#0000 34%);min-height:100vh;padding:36px clamp(16px,4vw,54px)}.customer-traffic-shell{border:1px solid var(--border);background:#ffffffeb;border-radius:8px;width:min(1500px,100%);min-width:0;margin:0 auto;padding:28px;box-shadow:0 24px 70px #0f172a1f}.customer-traffic-header{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px;display:flex}.customer-traffic-header h1{color:var(--text-primary);align-items:center;gap:10px;margin:0 0 8px;font-size:28px;line-height:1.15;display:flex}.customer-traffic-header p{color:var(--text-secondary);margin:0;font-size:15px}.customer-traffic-brand{border:1px solid var(--border);color:var(--text-secondary);letter-spacing:0;background:#fff;border-radius:8px;flex-shrink:0;padding:8px 11px;font-size:12px;font-weight:800}.customer-traffic-customer{border-radius:var(--radius);background:linear-gradient(135deg,#eff6ff 0%,#f8fbff 100%);border:1px solid #bfdbfe;flex-wrap:wrap;align-items:center;gap:10px;margin:12px 0 16px;padding:14px 16px;display:flex}.customer-traffic-customer span{color:var(--primary);font-size:12px;font-weight:800}.customer-traffic-customer strong{color:var(--text-primary);font-size:18px}.customer-traffic-customer em{color:var(--text-secondary);font-size:12px;font-style:normal}.customer-traffic-form{margin-top:0}.customer-traffic-grid{grid-template-columns:minmax(260px,1fr) auto}.customer-traffic-results{margin-top:18px}html.dark .customer-traffic-page{background:linear-gradient(#020617,#0f172a)}html.dark .customer-traffic-shell,html.dark .customer-traffic-brand{background:#0f172aeb;border-color:#334155}html.dark .customer-traffic-customer{background:linear-gradient(135deg,#1e40af3d,#0f172ad1);border-color:#334155}@media (width<=760px){.customer-traffic-page{padding:16px}.customer-traffic-shell{padding:18px}.customer-traffic-header{flex-direction:column}.customer-traffic-grid{grid-template-columns:1fr}}.split-view,.split-dialog{--split-accent:var(--primary)}html.dark .split-view,html.dark .split-dialog{--split-accent:#8cbcff}.split-view{color:var(--text-primary);--split-success:#178445;--split-warning:#a15a08;--split-failure:#c92e34;--split-green-soft:#eaf8ef;--split-surface:#fff;--split-shadow:0 3px 6px #162b4310, 0 10px 28px #162b4307}html.dark .split-view{--split-success:#70e69a;--split-warning:#f7bf60;--split-failure:#ff979b;--split-green-soft:#16372a;--split-surface:var(--card-bg);--split-shadow:0 5px 20px #0003}.split-heading,.split-toolbar,.split-run-status,.split-group-heading,.split-group-heading>div{align-items:center;gap:12px;display:flex}.split-heading{flex-wrap:wrap;justify-content:space-between}.split-heading h2{align-items:center;gap:12px;margin:0;font-size:28px;line-height:1.4;display:flex}.split-heading h2>svg{width:30px;height:30px;color:var(--split-accent);flex:none}.split-heading p{color:var(--text-secondary);margin:8px 0 0;font-size:14px}.split-toolbar .btn-primary,.split-toolbar .btn-outline{border-radius:8px;align-items:center;gap:9px;min-height:46px;display:inline-flex;box-shadow:0 4px 12px #1a56db20}.split-toolbar svg{width:18px;height:18px}.split-view button{transition:color .18s,background-color .18s,border-color .18s,box-shadow .18s}.split-view button:hover,.split-view button:active{transform:none}.split-run-status{min-height:48px;color:var(--text-secondary);flex-wrap:wrap;justify-content:space-between;margin-top:22px;padding-bottom:12px;font-size:12px;position:relative}.split-run-status>span:first-child{align-items:center;gap:7px;display:flex}.split-run-status>span>svg{width:15px;height:15px;color:var(--split-success)}.split-run-status.is-running>span>svg{color:var(--split-accent)}.split-progress{background:var(--border);border-radius:3px;height:3px;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.split-progress>span{background:var(--split-success);transform-origin:0;width:100%;height:100%;transition:transform .32s,background-color .24s;display:block}.split-run-status.is-running .split-progress>span{background:var(--primary)}.split-group{margin-top:32px}.split-group+.split-group{margin-top:36px}.split-group-heading{gap:10px;min-height:48px;margin-bottom:16px}.split-group-heading>div{flex:1;min-width:0}.split-group-heading h3{margin:0 0 2px;font-size:22px;line-height:1.4}.split-group-heading span{color:var(--text-secondary);font-size:12px}.split-group-heading .split-group-icon{background:var(--split-green-soft);width:42px;height:42px;color:var(--split-success);border-radius:8px;flex:0 0 42px;place-items:center;display:grid}.split-group-icon>svg{width:23px;height:23px}.split-group-international .split-group-icon{color:var(--split-accent);background:var(--primary-subtle)}.split-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;display:grid}.split-card{background:var(--split-surface);border:1px solid var(--border);min-width:0;box-shadow:var(--split-shadow);animation:.28s both split-enter;animation-delay:var(--entry-delay);border-radius:8px;padding:14px 16px 5px;transition:border-color .24s,box-shadow .24s}.split-card:hover,.split-card:focus-within{border-color:var(--input-border);box-shadow:0 5px 12px #162b4314,0 14px 30px #162b430b}.split-card.split-tone-pending{border-color:var(--primary-300)}.split-card-title{align-items:center;gap:10px;min-height:48px;display:flex}.split-card-title img,.split-target-list img{object-fit:contain;background:#fff;border:1px solid #e8ecf0;border-radius:8px;flex:none;padding:4px}.split-card-title h4{overflow-wrap:anywhere;flex:1;min-width:0;margin:0;font-size:16px;font-weight:650;line-height:1.3}.split-icon-button{border:1px solid var(--border);width:44px;height:44px;color:var(--text-secondary);background:var(--card-bg);cursor:pointer;border-radius:8px;flex:0 0 44px;justify-content:center;align-items:center;padding:0;display:inline-flex}.split-icon-button svg{width:17px;height:17px}.split-card-title>.split-icon-button,.split-card-actions>.split-icon-button{background:0 0;border-color:#0000;margin-right:-8px}.split-card-title>.split-icon-button svg{width:15px;height:15px}.split-card-result{justify-content:space-between;align-items:center;gap:8px;min-height:58px;margin:10px 0 2px;display:flex}.split-card-status{color:var(--text-secondary);align-items:center;gap:6px;font-size:13px;line-height:1.5;display:inline-flex}.split-card-status svg{flex:none;width:18px;height:18px}.split-tone-success .split-card-status{color:var(--split-success)}.split-tone-warning .split-card-status{color:var(--split-warning)}.split-tone-failure .split-card-status{color:var(--split-failure)}.split-tone-pending .split-card-status{color:var(--split-accent)}.split-latency{text-align:right;flex:none}.split-latency>span:first-child{color:var(--text-secondary);font-size:10px;line-height:1.5;display:block}.split-ms{font-variant-numeric:tabular-nums;white-space:nowrap;justify-content:flex-end;align-items:baseline;min-width:84px;height:38px;display:inline-flex}.split-ms strong{font-size:30px;font-weight:650;line-height:38px;animation:.22s ease-out split-number-in;display:inline-block}.split-ms small{color:var(--text-secondary);margin-left:3px;font-size:12px;font-weight:400}.split-samples{align-items:flex-end;gap:5px;height:38px;margin-top:4px;display:flex}.split-sample{background:var(--border);width:9px;height:36px;transform:scaleY(var(--sample-scale));transform-origin:bottom;border-radius:3px;flex:0 9px;transition:transform .38s cubic-bezier(.22,1,.36,1),background-color .22s;display:block}.split-sample.split-tone-success{background:var(--split-success)}.split-sample.split-tone-warning{background:var(--split-warning)}.split-sample.split-tone-failure{background:var(--split-failure)}.split-sample.split-tone-pending{background:var(--primary);animation:1.4s ease-in-out infinite split-sample-wait}.split-card-meta{font-variant-numeric:tabular-nums;flex-wrap:wrap;flex:1;justify-content:space-between;align-items:center;gap:4px;min-width:0;display:flex}.split-card-meta>span{align-items:center;gap:4px;display:inline-flex}.split-card-actions{justify-content:space-between;align-items:center;margin-top:5px;display:flex}.split-card-actions>button:first-child{min-height:44px;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;padding:0;font-size:11px}.split-card-actions>button:first-child:hover{color:var(--split-accent)}.split-add{border:1px dashed var(--input-border);background:var(--card-bg);min-height:160px;color:var(--text-secondary);cursor:pointer;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:14px;display:flex}.split-add>svg{width:24px;height:24px}.split-icon-button:hover,.split-add:hover{border-color:var(--split-accent);color:var(--split-accent);background:var(--primary-subtle)}.split-view button:focus-visible,.split-dialog button:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.split-view button:disabled{cursor:not-allowed;opacity:.5}.split-privacy{color:var(--text-secondary);align-items:flex-start;gap:8px;margin:28px 0 0;font-size:12px;line-height:1.7;display:flex}.split-privacy>svg{flex:none;width:17px;height:17px;margin-top:2px}.split-spinning{animation:1.8s linear infinite split-spin}.split-dialog{color:var(--text-primary);padding:24px;font-size:14px;line-height:1.65;position:relative}.split-dialog>h3{padding-right:44px}.split-dialog-close{background:0 0;border-color:#0000;position:absolute;top:14px;right:18px}.split-endpoint{overflow-wrap:anywhere;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:10px 12px}.split-help p{color:var(--text-secondary)}.split-detail-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 0;display:grid}.split-detail-metrics span{color:var(--text-secondary);font-size:12px;display:block}.split-detail-metrics strong{font-variant-numeric:tabular-nums;font-size:21px;font-weight:600}.split-detail-metrics small{font-size:11px;font-weight:400}.split-detail-samples{padding:0;list-style:none}.split-detail-samples li{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;gap:8px;padding:8px 0;font-size:13px;display:flex}.split-detail-samples strong{font-weight:500}.split-dialog.split-picker{flex-direction:column;width:min(700px,100vw - 40px);max-height:min(760px,100dvh - 40px);display:flex;overflow:hidden}.split-picker>h3,.split-picker-toolbar{flex:none}.split-search{align-items:center;width:100%;margin:6px 0 12px;display:flex;position:relative}.split-search>svg{width:18px;height:18px;color:var(--text-secondary);pointer-events:none;position:absolute;left:12px}.split-dialog .split-search input[type=search]{width:100%;min-width:0;min-height:46px;color:var(--text-primary);background:var(--input-bg);border:1px solid var(--input-border);border-radius:8px;padding:10px 12px 10px 40px;font-size:14px}.split-search input:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.split-picker-toolbar>div{color:var(--text-secondary);align-items:center;gap:8px;font-size:12px;display:flex}.split-picker-toolbar>div>span{flex:1}.split-picker-toolbar button{min-height:44px;color:var(--split-accent);cursor:pointer;background:0 0;border:0;align-items:center;gap:5px;display:inline-flex}.split-picker-toolbar button svg{width:16px;height:16px}.split-target-list{overscroll-behavior:contain;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-height:0;margin:6px -4px 16px;padding:4px;display:grid;overflow:auto}.split-target-list label{width:auto;min-width:0;min-height:70px;color:var(--text-primary);border:1px solid var(--border);cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:10px;font-weight:600;transition:background-color .18s,border-color .18s;display:flex}.split-target-list label:hover,.split-target-list label.is-selected{background:var(--primary-subtle);border-color:var(--primary-300)}.split-target-list input{width:18px;height:18px;accent-color:var(--primary);flex:none}.split-target-list label>span{overflow-wrap:anywhere;flex:1;min-width:0;font-size:14px;line-height:1.4}.split-target-list small{color:var(--text-secondary);overflow-wrap:anywhere;margin-top:4px;font-size:10px;display:block}.split-search-empty{color:var(--text-secondary);text-align:center;grid-column:1/-1;padding:24px 0}.split-picker>.btn-primary{flex:none;min-height:44px}@keyframes split-enter{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes split-number-in{0%{opacity:.4;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@keyframes split-spin{to{transform:rotate(360deg)}}@keyframes split-sample-wait{50%{opacity:.45}}@media (width<=1250px){.split-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=480px){.split-grid{grid-template-columns:minmax(0,1fr);gap:14px}.split-heading h2{font-size:24px}.split-heading{align-items:flex-start}.split-toolbar{justify-content:flex-end;width:100%}.split-group-heading{flex-wrap:wrap;gap:6px}.split-group-heading>div{gap:8px}.split-group-heading>div>div>span,.split-group-heading>span{display:none}.split-group-heading h3{font-size:20px}.split-group-heading .split-group-icon{flex-basis:36px;width:36px;height:36px}.split-card{padding:12px 18px 4px}.split-card-title h4{font-size:18px}.split-detail-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.split-dialog{padding:16px}.split-target-list{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){.split-view *,.split-dialog *{transition:none!important;animation:none!important}}.cmi-report{--cmi-pending-text:#854d0e;--cmi-pending-border:#d6ac62;--cmi-pending-bg:#fffbeb}html.dark .cmi-report{--cmi-pending-text:#fcd34d;--cmi-pending-border:#9e8044;--cmi-pending-bg:#29271e}.cmi-report .cmi-report-panel{min-width:0}.cmi-report .cmi-template-scope{color:var(--text-secondary);margin-top:3px;font-size:12px;font-weight:400;display:block}.cmi-report :is(#cmi-intake,#cmi-details){scroll-margin-top:90px}.cmi-report :is(.cmi-review-toolbar,.cmi-workflow-tools){flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;min-width:0;display:flex}.cmi-report .cmi-workflow-tools{justify-content:flex-start}.cmi-report .cmi-workflow-tools button{white-space:normal;gap:8px;min-height:44px;display:inline-flex}.cmi-report .cmi-workflow-tools svg{flex-shrink:0;width:18px;height:18px}.cmi-report .cmi-review-toolbar h3{margin:0}.cmi-report .cmi-review-toolbar{margin-bottom:16px}.cmi-report .cmi-next-missing{align-items:center;gap:8px;min-height:44px;display:inline-flex}.cmi-report .cmi-next-missing svg{width:18px;height:18px}.cmi-report .cmi-review-modes{border:0;flex-wrap:wrap;gap:4px;min-width:0;margin:0;padding:0;display:flex}.cmi-report .cmi-review-modes label{border:1px solid var(--border);cursor:pointer;border-radius:4px;align-items:center;gap:8px;min-height:44px;padding:0 10px;display:flex}.cmi-report .cmi-review-modes .is-selected{border-color:var(--primary);background:var(--bg);color:var(--text-primary)}:is(.cmi-preview-dialog,.cmi-missing-dialog){box-sizing:border-box;color:var(--text-primary);background:var(--card-bg);border:1px solid var(--border);overflow-wrap:anywhere;border-radius:8px;padding:20px;position:relative}.cmi-preview-dialog{flex-direction:column;width:min(900px,100vw - 32px);max-width:900px;height:min(860px,100dvh - 40px);max-height:none;display:flex;overflow:hidden}.cmi-missing-dialog{width:min(720px,100vw - 32px);max-width:720px}.cmi-preview-dialog>h3{flex-shrink:0;min-height:32px;margin:0;padding-right:48px}.cmi-preview-note{color:var(--text-secondary);flex-shrink:0;margin:12px 0 0;font-size:13px;line-height:1.7}.cmi-preview-dialog>.btn-outline{flex-shrink:0;align-self:flex-start}.cmi-preview-scroll{overscroll-behavior:contain;flex:auto;min-height:0;margin:16px 0;overflow-y:auto}.cmi-preview-scroll section{border-top:1px solid var(--border);padding:16px 0}.cmi-preview-scroll :is(h4,dl){margin:0 0 12px}.cmi-preview-scroll dl>div{border-bottom:1px solid var(--border);grid-template-columns:minmax(110px,1fr) minmax(0,2fr) 44px;align-items:center;gap:12px;padding:6px 0;display:grid}.cmi-preview-scroll dt{color:var(--text-secondary);font-size:13px}.cmi-preview-scroll dd{white-space:pre-wrap;margin:0;font-size:14px}.cmi-preview-scroll img{object-fit:contain;background:#fff;width:100%;max-height:420px;display:block}.cmi-preview-scroll figure{margin:16px 0}.cmi-preview-scroll figcaption{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.cmi-preview-scroll button,.cmi-preview-close{min-width:44px;min-height:44px;color:var(--text-primary);background:var(--bg);border:1px solid var(--border);justify-content:center;align-items:center;gap:8px;padding:10px;display:inline-flex}.cmi-preview-scroll button svg,.cmi-preview-close svg{flex-shrink:0;width:18px;height:18px}.cmi-preview-close{position:absolute;top:12px;right:16px}.cmi-preview-pending{color:var(--text-secondary);padding:20px 0}.cmi-missing-list{overscroll-behavior:contain;max-height:28vh;padding:0;list-style:none;overflow:auto}.cmi-missing-list li{border-bottom:1px solid var(--border)}.cmi-missing-list button{text-align:left;background:var(--input-bg);width:100%;min-height:44px;color:var(--text-primary);white-space:normal;border:0;justify-content:space-between;align-items:center;gap:12px;padding:10px;display:flex}.cmi-missing-list small{color:var(--text-secondary);flex-shrink:0}.cmi-missing-dialog :is(label,textarea){box-sizing:border-box;width:100%;font-size:13px;display:block}.cmi-missing-dialog textarea{resize:vertical;color:var(--text-primary);background:var(--input-bg);line-height:1.7}.cmi-leave-actions{flex-wrap:wrap;gap:12px;margin-top:12px;display:flex}:is(.cmi-preview-dialog,.cmi-missing-dialog) button{white-space:normal;min-height:44px}.cmi-leave-actions svg{flex-shrink:0;width:18px;height:18px}:is(.cmi-preview-dialog,.cmi-missing-dialog) :is(button,textarea):focus-visible{outline:2px solid var(--primary);outline-offset:2px}@media (width<=768px){.cmi-preview-scroll dl>div{grid-template-columns:minmax(0,1fr) 44px;gap:4px 8px}.cmi-preview-scroll dt{grid-column:1}.cmi-preview-scroll dd{grid-area:2/1}.cmi-preview-scroll dd.cmi-preview-edit{grid-area:1/2/3}.cmi-missing-list button{flex-direction:column;align-items:flex-start;gap:3px}}.cmi-report .cmi-template-selector{border:0;min-width:0;margin:0 0 20px;padding:0}.cmi-report .cmi-template-selector legend{color:var(--text-primary);margin-bottom:10px;font-size:14px;font-weight:600}.cmi-report .cmi-template-options{flex-wrap:wrap;gap:8px;display:flex}.cmi-report .cmi-template-options label{box-sizing:border-box;border:1px solid var(--border);border-radius:var(--surface-radius);min-width:0;min-height:44px;color:var(--text-primary);background:var(--bg);cursor:pointer;flex:160px;align-items:center;gap:10px;padding:10px 14px;display:flex}.cmi-report .cmi-template-options .is-selected{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary);font-weight:600}.cmi-report .cmi-template-selector .cmi-note{margin:10px 0 0}.cmi-report .cmi-topology-note{margin:12px 0 0}.cmi-report .cmi-form-body{border:0;min-width:0;margin:20px 0 0;padding:0}.cmi-report .cmi-section{border-top:1px solid var(--border);padding:24px 0;scroll-margin-top:90px}.cmi-report h3{color:var(--text-primary);margin:0 0 16px;font-size:16px;line-height:1.5}.cmi-report .cmi-note{color:var(--text-secondary);margin:0 0 16px;font-size:13px;line-height:1.7}.cmi-report .cmi-field-grid,.cmi-report .cmi-evidence-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.cmi-report .cmi-field-grid{align-items:start}.cmi-report .cmi-field{flex-direction:column;gap:7px;min-width:0;display:flex}.cmi-report .cmi-field-full{grid-column:1/-1}.cmi-report .cmi-field-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 12px;display:flex}.cmi-report .cmi-field-heading label{margin:0}.cmi-report .cmi-missing-tag{background:var(--cmi-pending-bg);color:var(--cmi-pending-text);font-variant-numeric:tabular-nums;border-radius:4px;flex-shrink:0;align-items:center;padding:2px 6px;font-size:12px;font-weight:600;line-height:1.5;display:inline-flex}.cmi-report .cmi-field-missing :is(input,textarea):not(:focus),.cmi-report .cmi-evidence-missing .file-input-wrap:not(:focus):not(.dragover){border-color:var(--cmi-pending-border);box-shadow:inset 3px 0 0 var(--cmi-pending-border)}.cmi-report .cmi-evidence-error .file-input-wrap{border-color:var(--error-text);box-shadow:inset 3px 0 0 var(--error-text)}.cmi-report .cmi-advanced-count{vertical-align:middle;margin-left:10px}.cmi-report label{width:auto;color:var(--label-color);overflow-wrap:anywhere;font-size:13px;line-height:1.6}.cmi-report .cmi-field input,.cmi-report .cmi-field textarea,.cmi-report .cmi-field select{box-sizing:border-box;width:100%;min-width:0;min-height:44px;scroll-margin-top:100px;font-family:inherit}.cmi-report .cmi-field textarea{resize:vertical}.cmi-report .cmi-field-error,.cmi-report .cmi-required{color:var(--error-text)}.cmi-report .cmi-field-error{overflow-wrap:anywhere;margin:4px 0 0;font-size:13px;line-height:1.6}.cmi-report .async-message[role=alert]{background:var(--error-bg);border-radius:var(--surface-radius);display:block}.cmi-report .async-message[role=status]{color:var(--text-primary);margin-top:16px;font-size:14px}.cmi-report [aria-invalid=true]{border-color:var(--error-text)}.cmi-report .cmi-password{align-items:center;gap:4px;min-width:0;display:flex}.cmi-report .cmi-icon-button{background:var(--bg);width:44px;height:44px;color:var(--text-primary);border:1px solid var(--border);flex:0 0 44px;padding:10px}.cmi-report .cmi-icon-button svg,.cmi-report .cmi-actions svg{flex-shrink:0;width:18px;height:18px}.cmi-report .cmi-topology-preview{margin:20px 0 0}.cmi-report .cmi-topology-preview>img{border:1px solid var(--border);box-sizing:border-box;background:#fff;width:100%;height:auto;display:block}.cmi-report .cmi-topology-preview figcaption,.cmi-report .cmi-section-heading,.cmi-report .cmi-evidence-heading,.cmi-report .cmi-file-meta{color:var(--text-secondary);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;font-size:13px;line-height:1.6;display:flex}.cmi-report .cmi-topology-preview figcaption a{min-height:44px;color:var(--text-primary);align-items:center;text-decoration:underline;display:inline-flex}.cmi-report .cmi-advanced{border-top:1px solid var(--border)}.cmi-report .cmi-advanced summary{box-sizing:border-box;min-height:44px;color:var(--text-primary);cursor:pointer;padding:14px 0;font-size:15px;font-weight:600}.cmi-report .cmi-section-heading{margin-bottom:16px}.cmi-report .cmi-section-heading h3{margin:0}.cmi-report .cmi-evidence{border-bottom:1px solid var(--border);min-width:0;padding-bottom:16px}.cmi-report .cmi-evidence-heading{margin-bottom:8px}.cmi-report .cmi-evidence-heading h4{color:var(--text-primary);margin:0;font-size:14px}.cmi-report .file-input-wrap{border-radius:var(--surface-radius);min-height:96px;scroll-margin-top:100px}.cmi-report .file-input-wrap .drag-hint{color:var(--text-secondary)}.cmi-report .cmi-evidence-preview{aspect-ratio:16/9;background:var(--bg);margin-top:12px;display:flex}.cmi-report .cmi-evidence-preview img{object-fit:contain;width:100%;height:100%}.cmi-report .cmi-file-meta{margin-top:4px}.cmi-report .cmi-mode{border:0;gap:16px;min-width:0;margin:0 0 12px;padding:0;display:flex}.cmi-report .cmi-mode legend{color:var(--label-color);font-size:13px;font-weight:600}.cmi-report .cmi-mode label,.cmi-report .cmi-confirmation label{cursor:pointer;align-items:center;gap:10px;min-height:44px;display:flex}.cmi-report .cmi-confirmation label{align-items:flex-start}.cmi-report .cmi-confirmation input{margin-top:3px}.cmi-report input[type=radio],.cmi-report input[type=checkbox]{width:18px;height:18px;min-height:0;accent-color:var(--primary);flex:0 0 18px}.cmi-report .cmi-actions{flex-wrap:wrap;gap:12px;display:flex}.cmi-report .cmi-actions button{gap:8px;min-height:44px}.cmi-report :is(button,a,summary,input,textarea,select):focus-visible{outline:2px solid var(--primary);outline-offset:3px}.cmi-report .cmi-ai{border-top:2px solid var(--primary);min-width:0;color:var(--text-primary);overflow-wrap:anywhere;margin:0 0 28px;padding:24px 0}.cmi-report .cmi-ai :is(h4,p,blockquote,ul){max-width:100%}.cmi-report .cmi-ai h4{margin:0 0 10px;font-size:15px;line-height:1.6}.cmi-report .cmi-ai .cmi-field{margin-bottom:8px}.cmi-report .cmi-ai-upload label{align-items:center;gap:8px;display:flex}.cmi-report .cmi-ai-upload svg{width:18px;height:18px}.cmi-report .cmi-ai-dropzone{box-sizing:border-box;border:1px dashed var(--upload-border);border-radius:var(--surface-radius);background:var(--upload-bg);width:100%;min-height:210px;color:var(--text-primary);font:inherit;cursor:pointer;white-space:normal;overflow-wrap:anywhere;transition:border-color var(--transition-fast), background-color var(--transition-fast);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:24px 16px;display:flex}.cmi-report .cmi-ai-dropzone:hover:not(:disabled),.cmi-report .cmi-ai-dropzone:focus-visible{border-color:var(--primary);background:var(--upload-hover-bg)}.cmi-report .cmi-ai-dropzone.is-dragover{border-color:var(--primary);background:var(--upload-dragover-bg);box-shadow:inset 0 0 0 1px var(--primary);border-style:solid}.cmi-report .cmi-ai-drop-icon{width:44px;height:44px;color:var(--text-primary);background:var(--input-bg);border:1px solid var(--border);border-radius:var(--surface-radius);place-items:center;display:grid}.cmi-report .cmi-ai-drop-icon svg{width:24px;height:24px}.cmi-report .cmi-ai-dropzone strong{font-size:14px;line-height:1.6}.cmi-report .cmi-ai-drop-meta{color:var(--text-secondary);font-size:12px;line-height:1.6}.cmi-report .cmi-ai-materials{margin:8px 0;padding:0;list-style:none}.cmi-report .cmi-ai-materials li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:6px 0;font-size:13px;display:flex}.cmi-report .cmi-ai-materials span{flex:1;min-width:0}.cmi-report .cmi-ai-material-icon{width:20px;height:20px;color:var(--text-secondary);flex-shrink:0}.cmi-report .cmi-ai-check{box-sizing:border-box;cursor:pointer;align-items:flex-start;gap:8px;min-height:44px;padding:10px 0;display:flex}.cmi-report .cmi-ai-check input{margin:2px 0 0}.cmi-report .cmi-ai-status{color:var(--text-primary);margin:12px 0 0}.cmi-report .cmi-ai-review{min-width:0;margin-top:20px}.cmi-report .cmi-ai-row{border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr) minmax(0,1.5fr) minmax(0,1.3fr);align-items:start;gap:16px;padding:14px 0;font-size:13px;line-height:1.7;display:grid}.cmi-report .cmi-ai-row>*{min-width:0}.cmi-report .cmi-ai-value,.cmi-report .cmi-ai-source blockquote{white-space:pre-wrap}.cmi-report .cmi-ai-source{color:var(--text-secondary)}.cmi-report .cmi-ai-source :is(blockquote,p){margin:8px 0 0}.cmi-report .cmi-ai-source summary{box-sizing:border-box;cursor:pointer;min-height:44px;color:var(--text-primary);padding:10px 0}.cmi-report .cmi-ai-badge{background:var(--bg);color:var(--text-primary);border-left:3px solid var(--input-border);padding:2px 6px;font-weight:600;line-height:1.6;display:inline-block}.cmi-report .cmi-ai-state-conflict .cmi-ai-badge,.cmi-report .cmi-ai-warnings{color:var(--error-text);background:var(--error-bg)}.cmi-report .cmi-ai-state-conflict .cmi-ai-badge{border-color:var(--error-text)}.cmi-report .cmi-ai-state-review .cmi-ai-badge{border-color:var(--text-secondary)}.cmi-report .cmi-ai-warnings{padding:12px 12px 12px 28px;font-size:13px;line-height:1.7}.cmi-report .cmi-ai-image>img{aspect-ratio:4/3;object-fit:contain;background:var(--bg);width:100%}.cmi-report .cmi-ai select{flex:none;height:44px}.cmi-report .cmi-ai-undo{margin-top:12px}.cmi-report .cmi-ai .cmi-actions button{white-space:normal;overflow-wrap:anywhere;max-width:100%}@media (prefers-reduced-motion:reduce){.cmi-report .cmi-ai,.cmi-report .cmi-ai *{transition:none;animation:none}.cmi-report .cmi-ai :is(.cmi-ai-review,.cmi-ai-row,.cmi-field){opacity:1}}@media (width<=768px){.cmi-report .cmi-ai-row{grid-template-columns:minmax(0,1fr);gap:8px}.cmi-report .cmi-field-grid,.cmi-report .cmi-evidence-grid{grid-template-columns:minmax(0,1fr)}.cmi-report .cmi-actions button{width:100%}}.cmi-report .cmi-ai-intake,.cmi-report .cmi-ai-review-group{min-width:0}.cmi-report .cmi-ai-heading,.cmi-report .cmi-ai-title,.cmi-report .cmi-ai-submit-bar{align-items:center;gap:12px;min-width:0;display:flex}.cmi-report .cmi-ai-heading{flex-wrap:wrap;justify-content:space-between;margin-bottom:22px}.cmi-report .cmi-ai-title>div{min-width:0}.cmi-report .cmi-ai-title h3{margin:0 0 4px;font-size:20px;line-height:1.4}.cmi-report .cmi-ai-model{color:var(--text-secondary);font-size:12px}.cmi-report .cmi-ai-title-icon{background:var(--primary);color:#fff;border-radius:8px;flex:0 0 44px;place-items:center;height:44px;display:grid}.cmi-report .cmi-ai-title-icon svg{width:24px;height:24px}.cmi-report .cmi-ai-heading>a{min-height:44px;color:var(--text-secondary);align-items:center;font-size:13px;text-decoration:none;display:inline-flex}.cmi-report .cmi-ai-heading>a:hover{color:var(--text-primary);text-decoration:underline}.cmi-report .cmi-ai-input-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:20px;display:grid}.cmi-report .cmi-ai-input-grid .cmi-field{flex-direction:column;gap:8px;min-width:0;margin:0;display:flex}.cmi-report .cmi-ai-input-grid label{margin:0}.cmi-report .cmi-ai-text-input textarea{box-sizing:border-box;resize:vertical;flex:1;width:100%;min-height:210px;font-size:14px;line-height:1.8}.cmi-report .cmi-ai-input-meta{color:var(--text-secondary);margin:0;font-size:12px;line-height:1.6}.cmi-report .cmi-ai-submit-bar{flex-wrap:wrap;justify-content:space-between;gap:12px 20px;padding-top:18px}.cmi-report .cmi-ai-submit-bar>label{flex:320px;font-size:12px}.cmi-report .cmi-ai-submit-bar .cmi-actions{margin:0}.cmi-report .cmi-ai-submit-bar .btn-primary{background:var(--primary);color:#fff;min-width:160px;min-height:46px}.cmi-report .cmi-ai-status:empty{min-height:0;margin:0}@media (width<=768px){.cmi-report .cmi-ai-input-grid{grid-template-columns:minmax(0,1fr);gap:16px}.cmi-report .cmi-ai-heading{gap:8px}.cmi-report .cmi-ai-title h3{font-size:18px}.cmi-report .cmi-ai-text-input textarea{min-height:160px}.cmi-report .cmi-ai-dropzone{min-height:140px}.cmi-report .cmi-ai-submit-bar .cmi-actions{width:100%}}.cmi-report .cmi-ai-group-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;min-height:44px;margin-top:16px;display:flex}.cmi-report .cmi-ai-group-heading h5{color:var(--text-primary);margin:0;font-size:14px;line-height:1.6}.cmi-report .cmi-ai-image-preview{aspect-ratio:4/3;border:1px solid var(--border);border-radius:var(--surface-radius);background:var(--bg);cursor:zoom-in;width:100%;min-height:44px;padding:0;display:block;overflow:hidden}.cmi-report .cmi-ai-image-preview img{object-fit:contain;width:100%;height:100%;display:block}.cmi-ai-preview-dialog,.cmi-ai-replace-dialog{overflow-wrap:anywhere;color:var(--text-primary)}.cmi-ai-preview-dialog h3,.cmi-ai-replace-dialog h3{color:var(--text-primary);font-size:16px;line-height:1.6}.cmi-ai-replace-dialog .cmi-actions{flex-wrap:wrap;gap:12px;margin-top:16px;display:flex}.cmi-ai-replace-dialog .cmi-actions button{white-space:normal;overflow-wrap:anywhere;max-width:100%;min-height:44px}.cmi-ai-preview-dialog .cmi-icon-button{border:1px solid var(--border);border-radius:var(--surface-radius);background:var(--input-bg);width:44px;height:44px;color:var(--text-primary);cursor:pointer;place-items:center;display:grid}.cmi-ai-preview-dialog .cmi-icon-button:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.cmi-ai-preview-image{object-fit:contain;width:100%;max-height:70vh;margin-top:12px;display:block}.cmi-report .handover-evidence-board{min-width:0;color:var(--text-primary);letter-spacing:0}.cmi-report .handover-evidence-board *{box-sizing:border-box}.cmi-report .handover-evidence-board :is(button,input,select),.handover-evidence-lightbox button{transition:border-color var(--transition-fast)}.cmi-report .handover-evidence-board :is(h3,h4,p){margin:0}.cmi-report .handover-evidence-board h3{font-size:18px}.cmi-report .handover-evidence-board h4{font-size:15px}.cmi-report .handover-evidence-board :is(h3,h4,strong,span,p,label){overflow-wrap:anywhere}.cmi-report .he-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;display:flex}.cmi-report .he-heading>span{color:var(--text-secondary);font-size:13px}.cmi-report .he-pool{border-block:1px solid var(--border);margin-top:16px;padding:16px 0}.cmi-report .he-pool.is-dragover{outline:2px solid var(--primary);outline-offset:4px;background:var(--upload-hover-bg)}.cmi-report .handover-evidence-board .he-note{color:var(--text-secondary);font-size:13px;line-height:1.6}.cmi-report .he-upload{border:1px dashed var(--input-border);background:var(--upload-bg);width:100%;min-height:64px;color:var(--text-primary);font:inherit;cursor:pointer;border-radius:6px;justify-content:center;align-items:center;gap:8px;margin:12px 0;padding:12px;font-size:14px;display:flex}.cmi-report .he-upload:hover:not(:disabled){border-color:var(--primary);background:var(--upload-hover-bg)}.cmi-report .he-upload>svg{flex-shrink:0;width:20px;height:20px}.cmi-report .he-pool-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,210px),1fr));gap:12px;margin:16px 0 0;padding:0;list-style:none;display:grid}.cmi-report .he-pool-item{border:1px solid var(--border);background:var(--card-bg);border-radius:6px;flex-direction:column;gap:6px;min-width:0;padding:10px;display:flex}.cmi-report .he-pool-item strong{font-size:13px;line-height:1.5}.cmi-report .he-preview{border:1px solid var(--border);background:var(--upload-bg);width:100%;min-width:0;height:170px;color:var(--text-secondary);cursor:zoom-in;border-radius:4px;place-items:center;padding:8px;display:grid;position:relative}.cmi-report .he-preview img{object-fit:contain;width:100%;height:100%;min-height:0;display:block}.cmi-report .he-preview>svg{background:var(--card-bg);width:28px;height:28px;color:var(--text-primary);border-radius:4px;padding:4px;position:absolute;bottom:8px;right:8px}.cmi-report .he-file-line{justify-content:space-between;align-items:center;gap:8px;min-width:0;font-size:13px;display:flex}.cmi-report .he-file-line>span{min-width:0}.cmi-report .he-check{cursor:pointer;align-items:center;gap:8px;min-height:44px;font-size:13px;display:flex}.cmi-report .he-check input[type=checkbox]{width:18px;height:18px;min-height:18px;accent-color:var(--primary);flex-shrink:0;margin:0}.cmi-report .he-icon,.cmi-report .he-button{border:1px solid var(--input-border);background:var(--card-bg);min-height:44px;color:var(--text-primary);font:inherit;cursor:pointer;white-space:normal;overflow-wrap:anywhere;border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:8px 12px;font-size:14px;line-height:1.4;display:inline-flex}.cmi-report .he-icon{flex:0 0 44px;width:44px;height:44px;padding:10px}.cmi-report :is(.he-icon,.he-button) svg{flex-shrink:0;width:20px;height:20px}.cmi-report :is(.he-icon,.he-button):hover:not(:disabled){border-color:var(--primary);background:var(--upload-hover-bg)}.cmi-report .handover-evidence-board :disabled{opacity:.55;cursor:not-allowed}.cmi-report .he-composer{border-bottom:1px solid var(--border);gap:12px;padding-block:16px;display:grid}.cmi-report .he-order{gap:6px;margin:0;padding:0;list-style:none;display:grid}.cmi-report .he-order li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;min-width:0;padding-block:4px;font-size:14px;display:flex}.cmi-report .he-order li>span{min-width:0}.cmi-report .he-order-actions{flex-shrink:0;gap:4px;display:flex}.cmi-report .he-composer-actions{flex-wrap:wrap;gap:8px;display:flex}.cmi-report .he-slots{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:20px;display:grid}.cmi-report .he-slot{border-top:2px solid var(--border);flex-direction:column;gap:10px;min-width:0;padding-block:12px;scroll-margin-top:100px;display:flex}.cmi-report .he-slot.is-missing{border-color:var(--cmi-pending-border,#d6ac62)}.cmi-report .he-slot.is-missing .he-state{color:var(--cmi-pending-text,#854d0e)}.cmi-report .he-slot.has-error{border-color:var(--error-text)}.cmi-report .he-empty{min-height:100px;color:var(--text-secondary);background:var(--upload-bg);place-items:center;padding:16px;font-size:14px;display:grid}.cmi-report .he-assign{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.cmi-report .he-assign select,.cmi-report .handover-evidence-board input[type=file]{border:1px solid var(--input-border);background:var(--input-bg);width:100%;min-width:0;max-width:100%;min-height:44px;color:var(--text-primary);font:inherit;border-radius:6px;padding:8px;font-size:14px}.cmi-report .handover-evidence-board input[type=file]{padding:0;line-height:44px}.cmi-report .handover-evidence-board input[type=file]::file-selector-button{border:0;border-right:1px solid var(--input-border);background:var(--upload-bg);max-width:100%;min-height:44px;color:var(--text-primary);font:inherit;cursor:pointer;margin-right:8px;padding:8px 12px}.cmi-report .he-slot-upload{border:1px dashed var(--input-border);background:var(--upload-bg);width:100%;min-height:44px;color:var(--text-primary);font:inherit;cursor:pointer;border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:10px;font-size:14px;display:flex}.cmi-report .he-slot-upload svg{width:20px;height:20px}.cmi-report .he-slot-upload.is-dragover{outline:2px solid var(--primary);background:var(--upload-hover-bg)}.cmi-report .handover-evidence-board .he-error{border:1px solid var(--error-border);background:var(--error-bg);color:var(--error-text);border-radius:4px;padding:10px;font-size:14px;line-height:1.6}.cmi-report .handover-evidence-board [aria-invalid=true]{border-color:var(--error-text)}.cmi-report .handover-evidence-board:focus-visible,.cmi-report .handover-evidence-board :focus-visible{outline:2px solid var(--primary);outline-offset:3px}.cmi-report .he-sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.modal-dialog.handover-evidence-lightbox{background:var(--card-bg);width:min(100%,1100px);max-height:calc(100dvh - 40px);color:var(--text-primary);letter-spacing:0;padding:20px;position:relative}.handover-evidence-lightbox>h3{overflow-wrap:anywhere;margin:0 52px 16px 0;font-size:16px}.handover-evidence-lightbox .he-lightbox-close{border:1px solid var(--border);background:var(--card-bg);width:44px;height:44px;color:var(--text-primary);cursor:pointer;border-radius:6px;place-items:center;display:grid;position:absolute;top:10px;right:10px}.handover-evidence-lightbox .he-lightbox-close svg{width:22px;height:22px}.handover-evidence-lightbox .he-lightbox-close:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.handover-evidence-lightbox .he-full-image{background:var(--upload-bg);place-items:center;min-height:120px;display:grid}.handover-evidence-lightbox .he-full-image img{object-fit:contain;width:100%;height:auto;max-height:calc(100dvh - 180px);display:block}.handover-evidence-lightbox p{color:var(--text-secondary);overflow-wrap:anywhere;margin:12px 0 0;font-size:13px}html.dark .cmi-report .he-slot.is-missing .he-state{color:var(--cmi-pending-text,#fcd34d)}html.dark .cmi-report .he-slot.is-missing{border-color:var(--cmi-pending-border,#9e8044)}@media (width<=768px){.cmi-report .he-slots{grid-template-columns:minmax(0,1fr)}.cmi-report .he-pool-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr))}.cmi-report .he-order li{flex-wrap:wrap}.cmi-report .he-order-actions{margin-left:auto}.cmi-report .he-assign select{font-size:16px}.modal-dialog.handover-evidence-lightbox{padding:16px}}@media (prefers-reduced-motion:reduce){.cmi-report .handover-evidence-board *,.handover-evidence-lightbox *{transition:none;animation:none}}.view-section.image-generator,.image-generator .card{opacity:1;animation:none}.image-generator .imagegen-panel{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title quota""intro quota""notice notice""workspace workspace";gap:8px 24px;padding:24px;display:grid}.imagegen-panel>h2{grid-area:title;align-self:end;margin:0}.imagegen-panel>.ip-intro{grid-area:intro;margin:0;font-size:.8125rem;line-height:1.7}.imagegen-quota{border:1px solid var(--border);border-radius:var(--surface-radius);background:var(--bg);grid-area:quota;align-self:start;min-width:0;padding:0 12px 8px}.imagegen-quota-summary{min-height:44px;color:var(--text-secondary);align-items:center;gap:12px;font-size:.8125rem;display:flex}.imagegen-quota-summary>span{margin-right:auto}.imagegen-quota-number{color:var(--text-secondary);white-space:nowrap;align-items:baseline;gap:4px;display:flex}.imagegen-quota-number strong{color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:1.125rem;font-weight:650;line-height:1.4}.imagegen-quota-number span{font-size:.8125rem}.imagegen-quota-summary>button{flex:none}.imagegen-limit-note{background:var(--bg);border-left:3px solid var(--primary);color:var(--text-secondary);border-radius:0 6px 6px 0;grid-area:notice;align-items:flex-start;gap:8px;margin:4px 0 8px;padding:8px 12px;font-size:.8125rem;line-height:1.75;display:flex}.imagegen-limit-note>svg{width:18px;height:18px;color:var(--text-primary);flex:none;margin-top:3px}.imagegen-limit-note strong{color:var(--text-primary);font-weight:600}.imagegen-workspace{grid-area:workspace;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:start;gap:20px;min-width:0;display:grid}.imagegen-form{border:1px solid var(--border);border-radius:var(--surface-radius);background:var(--card-bg);flex-direction:column;gap:12px;min-width:0;padding:20px;display:flex}.imagegen-panel-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;margin-bottom:4px;padding-bottom:16px;display:flex}.imagegen-panel-heading h3{color:var(--text-primary);margin:0;font-size:1rem}.imagegen-mode,.imagegen-result-status{color:var(--text-secondary);background:var(--bg);white-space:nowrap;border-radius:4px;padding:4px 8px;font-size:.75rem}.imagegen-form label{color:var(--text-primary);font-size:.9375rem;font-weight:600}.imagegen-form textarea,.imagegen-form select{border:1px solid var(--input-border);border-radius:var(--surface-radius);background:var(--input-bg);width:100%;min-height:44px;color:var(--text-primary);font:inherit;flex:none;padding:12px}.imagegen-form textarea{resize:vertical;line-height:1.7}.imagegen-form textarea:focus-visible,.imagegen-form select:focus-visible,.image-generator a:focus-visible,.image-generator button:focus-visible,.image-generator summary:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.imagegen-hint{color:var(--text-secondary);margin:0;font-size:.8125rem;line-height:1.7}.image-generator .btn-primary{justify-content:center;align-items:center;gap:8px;min-height:44px;text-decoration:none;display:inline-flex}.image-generator button{transition:background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast)}.image-generator .imagegen-generate-button{min-height:50px}.imagegen-result{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--surface-radius);min-width:0;padding:20px;position:sticky;top:24px}.imagegen-result>img{object-fit:contain;background:var(--bg);border-radius:4px;width:100%;max-height:580px;margin:18px 0 12px;display:block}.imagegen-caption{color:var(--text-secondary);overflow-wrap:anywhere;white-space:pre-wrap;font-size:.875rem;line-height:1.65}.imagegen-empty{text-align:center;min-height:480px;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:24px 12px;display:flex}.imagegen-empty p{color:var(--text-primary);margin:0;font-size:1rem;font-weight:500}.imagegen-empty>span{max-width:260px;font-size:.875rem;line-height:1.8}.imagegen-empty-art{border:1px solid var(--input-border);background:var(--bg);border-radius:8px;place-items:center;width:134px;height:112px;margin-bottom:16px;display:grid;position:relative}.imagegen-empty-art>div{border:1px dashed var(--input-border);border-radius:4px;position:absolute;inset:12px}.imagegen-empty-art>svg{width:34px;height:34px;color:var(--text-secondary);position:relative}.imagegen-empty-steps{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:18px;font-size:.75rem;display:flex}.image-generator .async-message[role=alert]{background:var(--error-bg);border-radius:var(--surface-radius);display:block}.image-generator .async-message[role=status]{color:var(--text-primary);font-size:.875rem;line-height:1.65}.imagegen-label-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.imagegen-label,.imagegen-form .imagegen-label-row label{color:var(--text-primary);margin:0;font-size:.9375rem;font-weight:600}.imagegen-optional{color:var(--text-secondary);font-size:.8125rem;font-weight:400}.image-generator .imagegen-text-button{min-height:44px;color:var(--text-primary);box-shadow:none;background:0 0;border:0;border-radius:4px;align-items:center;gap:6px;padding:6px 4px;font-size:.8125rem;display:inline-flex}.imagegen-text-button svg{width:16px;height:16px}.imagegen-reference{flex-direction:column;gap:8px;display:flex}.image-generator .imagegen-dropzone{border:1px dashed var(--input-border);background:var(--bg);width:100%;min-height:110px;color:var(--text-secondary);border-radius:var(--surface-radius);box-shadow:none;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:14px;font-size:.8125rem;line-height:1.6;display:flex}.imagegen-dropzone strong{color:var(--text-primary);font-weight:500}.image-generator .imagegen-dropzone.is-dragover{border-color:var(--primary)}.imagegen-dropzone img{object-fit:contain;width:100%;height:130px}.imagegen-reference-name{overflow-wrap:anywhere;max-width:100%}.imagegen-suggestion{border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:var(--surface-radius);background:var(--bg);flex-direction:column;gap:12px;padding:16px;display:flex}.imagegen-suggestion h3{color:var(--text-primary);margin:0;font-size:1rem}.imagegen-actions{flex-wrap:wrap;align-items:center;gap:10px;margin:12px 0;display:flex}.image-generator .imagegen-secondary{border:1px solid var(--input-border);border-radius:var(--surface-radius);background:var(--card-bg);min-height:44px;color:var(--text-primary);box-shadow:none;justify-content:center;align-items:center;gap:6px;padding:10px 16px;font-size:.875rem;display:inline-flex}.imagegen-examples{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:.75rem;display:flex}.imagegen-examples>span{width:100%}.imagegen-examples button{border:1px solid var(--border);background:var(--bg);min-height:44px;color:var(--text-primary);box-shadow:none;border-radius:4px;padding:6px 10px;font-size:.8125rem}.imagegen-result{scroll-margin-top:96px}.imagegen-result.is-generating{border-color:var(--primary)}.imagegen-waiting{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:480px;padding:28px 12px 16px;display:flex}.imagegen-waiting-art{flex:none;width:148px;height:148px;margin-bottom:24px;position:relative}.imagegen-waiting-art svg{width:100%;height:100%;display:block;position:relative;overflow:visible}.imagegen-waiting-wash{background:radial-gradient(ellipse at 38% 38%, var(--primary), transparent 70%);opacity:.13;filter:blur(10px);border-radius:50%;position:absolute;inset:12%}.imagegen-waiting-orbit{stroke:var(--primary);stroke-width:1.2px;opacity:.65;transform-origin:80px 80px;animation:16s linear infinite imagegenOrbit}.imagegen-waiting-orbit.inner{stroke:var(--text-secondary);opacity:.4;animation-duration:12s;animation-direction:reverse}.imagegen-waiting-stroke{stroke:var(--primary);stroke-width:3px;stroke-linecap:round;stroke-dasharray:100;animation:5s ease-in-out infinite imagegenBrush}.imagegen-waiting-ink{fill:var(--primary);opacity:.7}.imagegen-waiting-copy{width:100%;min-width:0;max-width:330px}.imagegen-waiting-copy h4{color:var(--text-primary);margin:0 0 8px;font-size:1.125rem;font-weight:600}.imagegen-reflection{margin-top:28px}.imagegen-reflection-label{letter-spacing:.15em;color:var(--text-secondary);font-size:.75rem}.imagegen-reflection-text{min-height:3.6em;color:var(--text-primary);overflow-wrap:anywhere;margin:12px 0 10px;font-family:Songti SC,Noto Serif CJK SC,SimSun,serif;font-size:1.125rem;line-height:1.8;animation:.65s ease-out imagegenReflectionIn}.imagegen-reflection-controls{justify-content:center;align-items:center;gap:22px;min-height:44px;display:flex}.imagegen-reflection-index{color:var(--text-primary);font-variant-numeric:tabular-nums;letter-spacing:.06em;font-size:.75rem}.imagegen-reflection-index>span{color:var(--text-secondary)}.imagegen-waiting.is-paused .imagegen-waiting-orbit,.imagegen-waiting.is-paused .imagegen-waiting-stroke{animation-play-state:paused}.imagegen-waiting.is-paused .imagegen-reflection-text{animation:none}.imagegen-waiting.is-compact{background:var(--bg);border-radius:var(--surface-radius);flex-direction:row;gap:12px;min-height:0;margin:16px 0;padding:16px 12px}.imagegen-waiting.is-compact .imagegen-waiting-art{width:76px;height:76px;margin:0}.imagegen-waiting.is-compact .imagegen-reflection{margin-top:16px}.imagegen-waiting.is-compact .imagegen-reflection-text{font-size:1rem}@keyframes imagegenOrbit{to{transform:rotate(360deg)}}@keyframes imagegenBrush{0%{stroke-dashoffset:100px}50%{stroke-dashoffset:0}to{stroke-dashoffset:-100px}}@keyframes imagegenReflectionIn{0%{transform:translateY(5px)}to{transform:translateY(0)}}@media (width<=480px){.imagegen-waiting{min-height:430px;padding:24px 4px 12px}.imagegen-waiting.is-compact .imagegen-waiting-art{display:none}.imagegen-waiting.is-compact .imagegen-reflection-text{min-height:3.6em}}@media (prefers-reduced-motion:reduce){.imagegen-waiting-orbit,.imagegen-waiting-stroke,.imagegen-reflection-text{animation:none}.imagegen-waiting-stroke{stroke-dashoffset:0}}@media (width>=769px) and (width<=1100px),(width<=600px){.image-generator .imagegen-panel{grid-template-columns:minmax(0,1fr);grid-template-areas:"title""intro""quota""notice""workspace"}.imagegen-quota{margin-top:4px}}@media (width<=768px){.image-generator .imagegen-panel{padding:16px}.imagegen-workspace{grid-template-columns:minmax(0,1fr);gap:20px}.imagegen-result{position:static}.imagegen-empty{min-height:260px}.imagegen-form,.imagegen-result{padding:16px}}@media (width<=360px){.imagegen-quota-summary{gap:6px}.imagegen-quota{padding-inline:8px}}.imagegen-elapsed{color:var(--text-secondary);font-variant-numeric:tabular-nums;margin:6px 0 0;font-size:.8125rem}.imagegen-complete-notice{border-left:3px solid var(--primary);color:var(--text-primary);background:var(--bg);border-radius:4px;margin:14px 0;padding:10px 12px;font-size:.875rem;line-height:1.7}.imagegen-ratios,.imagegen-compare-options{border:0;gap:8px;min-width:0;margin:0;padding:0;display:flex}.imagegen-ratios legend,.imagegen-compare-options legend{color:var(--text-primary);margin-bottom:10px;font-size:.9375rem;font-weight:600}.imagegen-ratios label,.imagegen-compare-options label{flex:1;min-width:0;position:relative}.imagegen-ratios input,.imagegen-compare-options input{opacity:0;width:1px;height:1px;position:absolute}.imagegen-ratios label>span,.imagegen-compare-options label>span{border:1px solid var(--input-border);background:var(--card-bg);border-radius:var(--surface-radius);min-height:44px;color:var(--text-primary);cursor:pointer;justify-content:center;align-items:center;gap:6px;padding:8px 4px;font-size:.8125rem;display:flex}.imagegen-ratios label>span{flex-direction:column;min-height:90px}.imagegen-ratios input:checked+span,.imagegen-compare-options input:checked+span{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary);background:var(--bg)}.imagegen-ratios input:focus-visible+span,.imagegen-compare-options input:focus-visible+span{outline:2px solid var(--primary);outline-offset:3px}.imagegen-ratios input:disabled+span{cursor:default;opacity:.6}.imagegen-ratios strong{font-size:.8125rem;font-weight:500}.imagegen-ratios small{color:var(--text-secondary);font-size:.75rem}.imagegen-ratio-shape{border:1.5px solid;border-radius:3px;width:22px;height:22px;display:block}.imagegen-ratio-shape.landscape{width:30px;height:20px;margin-block:1px}.imagegen-ratio-shape.portrait{width:15px}.imagegen-submit-bar{align-items:center;gap:12px;display:flex}.imagegen-submit-bar .imagegen-generate-button{flex:1}.imagegen-mobile-quota{display:none}.image-generator .imagegen-preview-button{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text-secondary);box-shadow:none;cursor:zoom-in;border-radius:6px;margin:16px 0 12px;padding:0;display:block}.imagegen-preview-button img{object-fit:contain;width:100%;min-height:140px;max-height:580px;display:block}.imagegen-preview-button>span{padding:8px;font-size:.75rem;display:block}.imagegen-comparison{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:10px;margin-top:16px;display:grid}.imagegen-comparison figure,.imagegen-original{text-align:center;min-width:0;color:var(--text-secondary);margin:0;font-size:.8125rem}.imagegen-comparison figure>img{object-fit:contain;background:var(--bg);border-radius:4px;width:100%;height:180px;display:block}.imagegen-comparison .imagegen-preview-button{margin:0}.imagegen-comparison .imagegen-preview-button img{height:180px}.imagegen-comparison figcaption,.imagegen-original figcaption{margin:8px 0}.imagegen-original{margin:16px 0}.imagegen-original img{object-fit:contain;background:var(--bg);width:100%;min-height:140px;max-height:580px;display:block}.imagegen-history{border-top:1px solid var(--border);margin-top:20px;padding-top:16px}.imagegen-history h4{color:var(--text-primary);margin:0;font-size:.875rem}.imagegen-history-list{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:12px 0;display:grid}.image-generator .imagegen-history-list button{aspect-ratio:1;border:1px solid var(--input-border);min-width:0;min-height:44px;box-shadow:none;background:var(--bg);border-radius:6px;padding:3px;display:block;position:relative}.imagegen-history-list button.is-selected{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.imagegen-history-list img{object-fit:contain;width:100%;height:100%}.imagegen-history-list button>span{background:var(--card-bg);min-width:18px;color:var(--text-primary);border-radius:3px;font-size:.6875rem;line-height:18px;position:absolute;bottom:2px;right:2px}.imagegen-copy-status{color:var(--text-primary);margin:6px 0;font-size:.8125rem;line-height:1.7}.imagegen-copy-status.is-error{color:var(--error-text)}.imagegen-preview-modal.modal-dialog{flex-direction:column;gap:12px;width:min(1400px,100vw - 40px);max-width:none;height:calc(100dvh - 40px);max-height:calc(100dvh - 40px);padding:24px;display:flex;overflow:hidden}.imagegen-preview-modal>h3{color:var(--text-primary);flex:none;margin-bottom:0}.imagegen-preview-toolbar{color:var(--text-primary);flex-wrap:wrap;flex:none;align-items:center;gap:8px;font-size:.8125rem;display:flex}.imagegen-preview-toolbar button,.imagegen-preview-toolbar a{border:1px solid var(--input-border);background:var(--card-bg);min-width:44px;min-height:44px;color:var(--text-primary);box-shadow:none;border-radius:6px;justify-content:center;align-items:center;padding:8px 12px;text-decoration:none;display:inline-flex}.imagegen-preview-toolbar .imagegen-close-preview{margin-left:auto}.imagegen-preview-toolbar button:focus-visible,.imagegen-preview-toolbar a:focus-visible,.imagegen-zoom-viewport:focus-visible{outline:2px solid var(--primary);outline-offset:-3px}.imagegen-zoom-viewport{border:1px solid var(--border);background:var(--bg);border-radius:6px;flex:1;min-width:0;min-height:0;overflow:auto}.imagegen-zoom-content{justify-content:center;align-items:center;min-height:100%;margin-inline:auto;display:flex}.imagegen-zoom-content img{object-fit:contain;width:100%;height:auto;display:block}@media (width<=768px){.imagegen-submit-bar{z-index:70;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--card-bg);border-top:1px solid var(--border);position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 18px #0000000f}.imagegen-submit-bar.is-keyboard-open{box-shadow:none;border:0;padding:0;position:static}.imagegen-mobile-quota{color:var(--text-secondary);flex:none;font-size:.75rem;display:block}.main-content:has(.image-generator)+.footer-beian{padding-bottom:calc(90px + env(safe-area-inset-bottom))}.image-generator :is(button,textarea,input,a,fieldset),.imagegen-recovery,#imagegen-error{scroll-margin-top:90px;scroll-margin-bottom:110px}.imagegen-history-list{gap:5px}.imagegen-preview-modal.modal-dialog{gap:8px;padding:16px}}@media (width<=360px){.imagegen-history-list{grid-template-columns:repeat(4,minmax(0,1fr))}.imagegen-compare-options{gap:4px}}.view-section.ai-video-canvas-view{width:100%;min-width:0;max-width:none}.ai-video-canvas-shell{border:1px solid var(--border);border-radius:var(--surface-radius);background:var(--card-bg);flex-direction:column;height:calc(100dvh - 112px);min-height:560px;display:flex;overflow:hidden}.ai-video-canvas-header{border-bottom:1px solid var(--border);flex:none;justify-content:space-between;align-items:center;gap:12px 24px;padding:12px 16px;display:flex}.ai-video-canvas-heading{min-width:0}.ai-video-canvas-heading h2{color:var(--text-primary);align-items:center;gap:8px;margin:0;font-size:18px;line-height:1.5;display:flex}.ai-video-canvas-heading h2 svg{flex:none;width:20px;height:20px}.ai-video-canvas-heading p{color:var(--text-secondary);overflow-wrap:anywhere;margin:4px 0 0;font-size:12px;line-height:1.6}.ai-video-canvas-open,.ai-video-canvas-retry{border:1px solid var(--border);border-radius:var(--surface-radius);background:var(--card-bg);min-height:44px;color:var(--text-primary);font:inherit;cursor:pointer;flex:none;justify-content:center;align-items:center;padding:8px 12px;font-size:13px;line-height:1.5;text-decoration:none;display:inline-flex}.ai-video-canvas-open:hover,.ai-video-canvas-retry:hover{border-color:var(--primary);background:var(--bg)}.ai-video-canvas-open:focus-visible,.ai-video-canvas-retry:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.ai-video-canvas-status{border-bottom:1px solid var(--border);background:var(--bg);color:var(--text-secondary);flex-wrap:wrap;flex:none;justify-content:space-between;align-items:center;gap:8px 12px;padding:8px 16px;font-size:13px;line-height:1.6;display:flex}.ai-video-canvas-status-error{background:var(--error-bg);color:var(--error-text)}.ai-video-canvas-workspace{flex:1;min-width:0;min-height:0}.ai-video-canvas-frame{background:var(--bg);border:0;width:100%;height:100%;display:block}@media (width<=768px){.ai-video-canvas-shell{height:calc(100dvh - 104px)}.ai-video-canvas-header{flex-wrap:wrap;gap:8px;padding:12px}.ai-video-canvas-heading h2{font-size:17px}.ai-video-canvas-status{padding:8px 12px}}.model-guide-embed{background:#f7f8f2;width:100%;height:100dvh;position:fixed;inset:0;overflow:hidden}.model-guide-frame{background:#f7f8f2;border:0;width:100%;height:100%;margin:0;display:block}@media (width<=768px){:root{--page-gutter:16px}.menu-toggle{display:none}.mobile-header{top:max(8px, env(safe-area-inset-top));z-index:120;-webkit-backdrop-filter:blur(16px);width:calc(100% - 24px);min-height:52px;transition:opacity var(--transition), transform var(--transition);background:#ffffffe0;border:1px solid #e2e8f0d9;border-radius:14px;align-items:center;margin:10px auto 12px;padding:7px 10px;display:flex;position:sticky;box-shadow:0 8px 22px #0f172a14}html.dark .mobile-header{background:#0f172ae0;border-color:#334155d9;box-shadow:0 10px 26px #00000047}html.dark .mobile-header .mobile-header-btn{color:#f1f5f9}.mobile-header-btn{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:10px;flex-shrink:0;width:44px;min-width:44px;height:44px;min-height:44px;margin-right:11px;padding:0;font-size:19px;line-height:1;box-shadow:0 6px 14px #1a56db47}.mobile-header-btn:active{transform:scale(.95)}.mobile-header-title{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;letter-spacing:0;font-size:17px;font-weight:700;overflow:hidden}.sidebar{z-index:240;width:min(84vw,320px);padding-top:max(16px, env(safe-area-inset-top));transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-overlay{z-index:220;-webkit-backdrop-filter:blur(2px);background:#02061775}.sidebar-overlay.active{display:block}body.sidebar-open .mobile-header{opacity:0;pointer-events:none;transform:translateY(-8px)}body.sidebar-open{overflow:hidden}.main-content{padding:0 var(--page-gutter) 72px;margin-left:0}.view-section,.view-section.traffic-view,.sdwan-poc-view{width:100%;min-width:0;max-width:100%;margin:0}.input-grid,.topology-input-grid{grid-template-columns:1fr}.input-group{flex-direction:column;align-items:stretch}.input-group label{width:auto;margin-bottom:4px}.card{width:100%;min-width:0;padding:20px 18px}.btn-group{gap:8px}.btn-group .btn-primary,.btn-group .btn-outline{padding:8px 18px;font-size:13px}.btn-primary,.btn-outline,.gate-actions button,.modal-actions button{min-height:44px}.dual-ip-container{flex-direction:column;gap:20px;margin-top:24px;display:flex}.dual-ip-container.single-mode{flex-direction:column;max-width:100%;display:flex}.ip-lookup-form input{width:100%;min-width:0}.ip-history-wrap{width:100%}.file-input-wrap{text-align:left;cursor:pointer;align-items:center;gap:8px;padding:10px 14px;display:flex}.file-input-wrap input[type=file]{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.file-input-wrap:before{display:none}.drag-hint{color:var(--primary);white-space:normal;margin-top:0;font-size:12px;display:inline}.file-hint{flex:1;min-width:0;display:block}.footer-beian{letter-spacing:.5px;margin-left:0;padding:12px 15px;font-size:12px}.footer-beian a{margin:2px 5px;display:inline-block}.footer-beian span{letter-spacing:1.5px;font-size:12px}.cmt-item{padding:12px 10px}.cmt-user,.cmt-content{font-size:13px}.report-field{margin-bottom:6px}.report-field label{margin-bottom:3px;font-size:12px}.report-field input,.report-field textarea,.report-field select{padding:8px 10px;font-size:13px}.sdwan-poc-shell{border-radius:14px;min-height:calc(100vh - 92px)}.sdwan-poc-header{padding:14px 16px}.sdwan-poc-header h2{font-size:17px}.sdwan-poc-frame{height:calc(100vh - 160px);min-height:680px}.report-section-title{margin:16px 0 10px;padding-bottom:4px;font-size:13px}.smart-screenshot-head{flex-direction:column;align-items:stretch}.smart-apply-btn{width:100%}.smart-screenshot-row{grid-template-columns:1fr;align-items:stretch}.smart-reason{white-space:normal;line-height:1.5}.report-upload-item{padding:8px 10px}.report-upload-item label{margin-bottom:2px;font-size:12px}.report-upload-heading{flex-wrap:wrap;gap:4px}.upload-links a{align-items:center;min-height:44px;padding:0 5px;font-size:12px;line-height:1.6;display:inline-flex}.upload-links{gap:3px 6px}#rpt_purpose{padding:8px 10px;font-size:13px}#view-report .btn-group{flex-direction:column;margin-top:16px}#view-report .btn-group .btn-primary{width:100%;padding:12px 20px;font-size:15px}}@media (width<=480px){.card{padding:15px}h2{font-size:16px}.btn-row{flex-direction:column;align-items:stretch}}
