/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer theme{:host,:root{--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.block{display:block}}:root{--bg:#f7f8fa;--panel:#fff;--line:#e8eaed;--text:#1a1d21;--muted:#6b7280;--brand:#2563eb;--brand-hover:#1d4ed8;--sidebar:#0f1419;--sidebar-text:#9aa3af;--danger:#b91c1c}*{box-sizing:border-box}body,html{background:var(--bg);height:100%;color:var(--text);margin:0;font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:16px}button,input,select,textarea{font:inherit;color:inherit}.app-shell{min-width:960px;height:100vh;display:flex}.sidebar{background:var(--sidebar);width:220px;color:var(--sidebar-text);flex-direction:column;flex-shrink:0;display:flex}.brand{border-bottom:1px solid #1c242c;padding:18px 16px 14px}.brand strong{color:#f3f4f6;font-size:16px;font-weight:650}.brand span,.brand strong{letter-spacing:.04em;display:block}.brand span{color:#d1d5db;margin-top:4px;font-size:14px;font-weight:600}.side-nav{flex:1;padding:10px 0 16px;overflow:auto}.nav-link{color:#c5cdd6;align-items:center;gap:10px;padding:8px 16px;font-size:14px;text-decoration:none;display:flex}.nav-icon{opacity:.8;flex-shrink:0;width:16px;height:16px}.nav-link.active,.nav-link:hover{color:#fff;background:#171e26}.nav-link.active{box-shadow:inset 2px 0 0 var(--brand)}.nav-link.active .nav-icon{color:#60a5fa;opacity:1}.nav-branch{padding:4px 0 8px}.nav-search{color:#e5e7eb;background:#171e26;border:1px solid #2a333c;outline:none;width:calc(100% - 24px);margin:4px 12px 8px;padding:6px 8px;font-size:13px;display:block}.nav-search::placeholder{color:#6b7280}.nav-scroll{max-height:300px;overflow-y:auto}.nav-back,.nav-leaf{color:#8b95a1;align-items:center;gap:8px;padding:6px 16px 6px 28px;font-size:14px;text-decoration:none;display:flex}.nav-back .nav-icon,.nav-leaf .nav-icon{width:14px;height:14px}.nav-back:hover,.nav-leaf:hover{color:#fff;background:#171e26}.nav-leaf.active{color:#fff;background:#1d2833}.nav-back{color:#6b7280;margin-bottom:2px;font-size:13px}.nav-class-row{align-items:center;display:flex;position:relative}.nav-class-row .nav-back,.nav-class-row .nav-leaf{flex:1;min-width:0;padding-right:4px}.nav-class-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.nav-more{color:#8b95a1;cursor:pointer;background:0 0;border:0;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;margin-right:10px;display:flex}.nav-more.open,.nav-more:hover{color:#fff;background:#24303b}.nav-more-icon{width:12px;height:12px}.nav-more-menu{z-index:40;position:fixed}.nav-more-menu button{border:1px solid var(--line);color:#4b5563;cursor:pointer;white-space:nowrap;background:#fff;border-radius:8px;align-items:center;gap:4px;padding:5px 10px;font-size:13px;display:inline-flex;box-shadow:0 6px 16px #0f141929}.nav-more-menu button:hover{color:#1d4ed8;background:#dbeafe;border-color:#93c5fd}.nav-empty{color:#4b5563;padding:6px 16px 6px 28px;font-size:13px;display:block}.sidebar-user{border-top:1px solid #1c242c;justify-content:space-between;align-items:center;gap:8px;padding:12px 14px;display:flex}.sidebar-user b{color:#e5e7eb;font-size:14px;font-weight:600;display:block}.sidebar-user span{color:#6b7280;font-size:12px}.main{background:var(--bg);flex-direction:column;min-width:0;overflow:hidden}.empty-main,.main{flex:1;display:flex}.empty-main{color:#9ca3af;justify-content:center;align-items:center;font-size:14px}.class-workspace{flex-direction:column;flex:1;min-height:0;display:flex}.class-workspace-bar{justify-content:space-between;align-items:center;gap:12px;padding:12px 18px 0;display:flex}.class-workspace-bar strong{font-size:16px}.class-workspace .archive{padding-top:12px}.rollcall-list{flex-wrap:wrap;gap:6px;min-height:36px;display:flex}.rollcall-name{border:1px solid var(--line);color:#4b5563;cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:4px;padding:5px 10px;font-size:13px;display:inline-flex}.rollcall-name span{color:#9aa3af;font-size:12px}.rollcall-name.on{color:#1d4ed8;background:#dbeafe;border-color:#93c5fd}.rollcall-name.on span{color:#2563eb}.archive{flex-direction:column;flex:1;gap:12px;min-height:0;padding:16px 18px 18px;display:flex;overflow:auto}.profile{border:1px solid var(--line);background:#fff;border-radius:12px;align-items:center;gap:14px;padding:14px 18px;display:flex;box-shadow:0 8px 24px #0f14190a}.person-avatar{border-radius:50%;flex-shrink:0;width:52px;height:52px;overflow:hidden;box-shadow:0 0 0 3px #fff,0 0 0 4px #bfdbfe}.person-avatar svg{width:100%;height:100%;display:block}.profile-main{flex:1;min-width:0}.profile-name{align-items:center;gap:8px;display:flex}.profile h1{letter-spacing:.04em;white-space:nowrap;margin:0;font-size:22px;font-weight:650}.enroll-tag{color:#15803d;background:#dcfce7;border:1px solid #86efac;border-radius:99px;padding:1px 8px;font-size:12px}.profile-meta{color:#4b5563;flex-wrap:wrap;gap:0;margin:6px 0 0;font-size:13px;display:flex}.profile-meta span{border-left:1px solid var(--line);padding:0 10px}.profile-meta span:first-child{border-left:0;padding-left:0}.profile-actions{flex-shrink:0;align-items:center;gap:8px;margin-left:auto;display:flex}.readonly-tag{color:#9ca3af;padding:2px 8px;font-size:12px}.ledger-block,.readonly-tag{border:1px solid var(--line)}.ledger-block{background:#fff;border-radius:12px;flex-direction:column;flex:1;min-height:320px;display:flex;overflow:hidden;box-shadow:0 8px 24px #0f14190a}.ledger-toolbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:48px;padding:8px 12px 8px 14px;display:flex}.view-switch{gap:6px;display:flex}.view-switch button{border:1px solid var(--line);color:#4b5563;cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:4px;padding:5px 10px;font-size:13px;display:inline-flex}.view-switch button.active{color:#1d4ed8;background:#dbeafe;border-color:#93c5fd}.ledger-toolbar>span{color:#9ca3af;font-size:13px}.archive-actions{gap:6px;margin-left:auto;display:flex}.ledger-wrap{flex:1;position:relative;overflow:auto}.ledger{border-collapse:separate;border-spacing:0;table-layout:fixed;width:max-content}.ledger td,.ledger th{border-bottom:1px solid var(--line);border-right:1px solid var(--line);text-align:center;vertical-align:middle;white-space:nowrap;text-overflow:ellipsis;background:#fff;width:64px;min-width:64px;max-width:64px;height:36px;padding:0 2px;font-size:13px;overflow:hidden}.ledger thead th{z-index:4;color:#4b5563;white-space:normal;background:#fff;height:40px;font-size:12px;font-weight:600;line-height:1.15;position:sticky;top:0}.ledger thead th .date-md,.ledger thead th .date-w{display:block}.ledger thead th .date-w{color:#9ca3af;font-size:11px;font-weight:500}.ledger thead th.selected .date-w{color:#2563eb}.ledger .row-head{z-index:5;text-align:left;color:#374151;width:132px;min-width:132px;max-width:132px;box-shadow:2px 0 0 var(--line);background:#fff;padding:0 10px;font-weight:600;position:sticky;left:0}.ledger .row-head .row-icon{vertical-align:-3px;width:15px;height:15px;margin-right:6px}.ledger .row-attendance .row-icon,.ledger .row-lessonFeedback .row-icon{color:#16a34a}.ledger .row-course .row-icon,.ledger .row-hours .row-icon,.ledger .row-lessonKind .row-icon,.ledger .row-monthlyFeedback .row-icon,.ledger .row-parentMeeting .row-icon,.ledger .row-teacher .row-icon{color:#2563eb}.ledger .row-competition .row-icon{color:#ea580c}.ledger thead .row-head{z-index:6;background:#fff}.ledger tbody .row-head{align-items:center;display:flex}.ledger .cycle-a,.ledger .cycle-b,.ledger thead th.cycle-a,.ledger thead th.cycle-b{background:#fff}.ledger thead th.needs-confirm{background:#fee2e2}.ledger td.needs-confirm{background:#fff1f2}.ledger .cycle-start{border-left:2px solid #94a3b8}.ledger thead th.cycle-start{border-left-color:#64748b}.ledger .cycle-miss{color:#be123c;background:#fde8ea}.ledger .feedback-miss{color:#b91c1c;background:#fee2e2;font-weight:600}.cycle-miss-label{font-size:10px;font-weight:650}.kind-tag{border-radius:99px;min-width:44px;padding:1px 6px;font-size:11px;font-weight:650;display:inline-block}.kind-REGULAR{color:#1d4ed8;background:#dbeafe}.kind-MAKEUP{color:#15803d;background:#dcfce7}.kind-CAMP{color:#c2410c;background:#ffedd5}.kind-VIP{color:#7c3aed;background:#ede9fe}.kind-ONLINE{color:#0f766e;background:#ccfbf1}.ledger .locked{color:#6b7280}.ledger .ledger-pad{cursor:default;background:#fff}.ledger thead th.selected{color:#1d4ed8;background:#dbeafe;box-shadow:inset 0 -3px #2563eb}.ledger td.selected{box-shadow:inset 2px 0 #93c5fd,inset -2px 0 #93c5fd}.ledger thead th.needs-confirm.selected{color:#1d4ed8;background:#fecaca;box-shadow:inset 0 -3px #2563eb}.ledger td.needs-confirm.selected{background:#fee2e2}.ledger .has-detail{text-underline-offset:3px;cursor:context-menu;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.empty-ledger,.workspace-empty{color:#9ca3af;padding:32px 20px;font-size:14px}.archive-foot{flex-shrink:0;grid-template-columns:1fr 1fr;gap:12px;display:grid}.archive-foot-card{border:1px solid var(--line);background:#fff;border-radius:12px;padding:14px 16px 16px;box-shadow:0 8px 24px #0f14190a}.archive-foot-card h3{margin:0 0 12px;font-size:14px;font-weight:650}.legend-list{color:#4b5563;flex-wrap:wrap;gap:10px 18px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.legend-list b{width:22px;margin-right:4px;display:inline-block}.legend-list .ok{color:#16a34a}.legend-list .no{color:#dc2626}.legend-cycle,.legend-pending{vertical-align:middle;border-radius:2px;width:22px;height:10px;margin-right:6px;display:inline-block}.legend-cycle{background:#fde8ea}.legend-pending{background:#fee2e2}.month-stats{grid-template-columns:1fr 1fr 1fr;gap:12px 16px;margin:0;display:grid}.month-stats dt{color:var(--muted);font-size:12px}.month-stats dd{margin:4px 0 0;font-size:16px;font-weight:650}.context-menu{z-index:50;border:1px solid var(--line);background:#fff;min-width:120px;position:fixed;box-shadow:0 8px 24px #00000014}.context-menu button{text-align:left;cursor:pointer;background:0 0;border:0;width:100%;padding:8px 12px;display:block}.context-menu button:hover{background:#f3f4f6}.btn{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;justify-content:center;align-items:center;gap:4px;min-width:56px;padding:5px 12px;font-size:13px;display:inline-flex;box-shadow:0 1px 2px #0f14190f}.btn:hover{background:#f8fafc}.btn:disabled,.chip-btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{color:#1d4ed8;background:#dbeafe;border-color:#93c5fd}.btn-primary:hover{background:#bfdbfe}.btn-ghost{color:inherit;background:0 0;border-color:#0000;padding:4px 8px}.btn-ghost:hover{background:#1c242c}.modal-backdrop{z-index:40;background:#0f141973;justify-content:center;align-items:flex-start;padding:48px 16px;display:flex;position:fixed;inset:0;overflow:auto}.modal-panel{border:1px solid var(--line);background:#fff;max-width:calc(100vw - 32px)}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.modal-head h3{margin:0;font-size:16px;font-weight:600}.icon-btn{cursor:pointer;color:var(--muted);background:0 0;border:0;font-size:22px;line-height:1}.modal-body{flex-direction:column;gap:12px;padding:16px;display:flex}.confirm-copy{margin:0;font-size:14px;line-height:1.7}.form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.field{flex-direction:column;gap:6px;font-size:14px;display:flex}.field span{color:#374151}.field input,.field select,.field textarea,.login-card input,.page-head input{border:1px solid var(--line);background:#fff;width:100%;padding:7px 8px}.age-parts{align-items:center;gap:6px;display:flex}.field .age-parts input{text-align:center;flex:0 0 64px;width:64px}.age-parts em{color:var(--muted);white-space:nowrap;font-style:normal}.field textarea{resize:vertical}.modal-actions{justify-content:flex-end;gap:8px;padding-top:8px;display:flex}.batch-modal .modal-head{padding:8px 12px}.batch-modal .modal-head h3{font-size:14px}.batch-modal .modal-body{gap:8px;padding:12px}.batch-modal .muted{margin:0;font-size:12px;line-height:1.5}.batch-modal .form-grid{gap:8px}.batch-modal .field{gap:4px;font-size:13px}.batch-modal .field input,.batch-modal .field select,.batch-modal .field textarea{padding:5px 7px;font-size:13px}.batch-modal .modal-actions{padding-top:4px}.form-error{color:var(--danger);margin:0}.detail-list{grid-template-columns:96px 1fr;gap:8px 12px;margin:0;display:grid}.detail-list dt{color:var(--muted)}.detail-list dd,.pre{margin:0}.pre{white-space:pre-wrap}.login-page{background:#0f1419;justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:#fff;flex-direction:column;gap:12px;width:360px;padding:32px 28px;display:flex}.login-card h1{text-align:center;margin:0;font-size:20px;font-weight:650}.login-card p{color:var(--muted);margin:0;font-size:14px}.login-card label{flex-direction:column;gap:6px;font-size:14px;display:flex}.login-hint{font-size:13px}.login-card .chip-btn{width:100%}.home,.manage{background:var(--bg);height:100%;padding:24px 28px;overflow:auto}.home h2,.manage h2,.page-head h2{margin:0;font-size:20px}.home-hero{justify-content:space-between;gap:16px;margin-bottom:18px}.home-greet,.home-hero{align-items:center;display:flex}.home-greet{gap:14px}.home-avatar{background:#dbeafe;border-radius:50%;flex-shrink:0;width:52px;height:52px;overflow:hidden;box-shadow:0 0 0 3px #fff,0 0 0 4px #bfdbfe}.home-avatar svg{width:100%;height:100%;display:block}.home-greet h2{font-size:22px;font-weight:650}.home-greet p{color:var(--muted);margin:4px 0 0;font-size:13px}.home-hero-stats{gap:12px;display:flex}.home-stat{border:1px solid var(--line);background:#fff;border-radius:12px;min-width:168px;margin:0;padding:12px 16px;box-shadow:0 8px 24px #0f14190a}.home-stat dt{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:flex}.home-stat-icon{border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.home-stat-icon svg{width:12px;height:12px}.home-stat dd{margin:6px 0 0;font-size:22px;font-weight:650}.home-stat-time{font-size:18px!important}.home-stat small{color:var(--muted);margin-left:4px;font-size:13px;font-weight:500}.home-section{border:1px solid var(--line);background:#fff;border-radius:12px;margin-bottom:16px;overflow:hidden;box-shadow:0 8px 24px #0f14190a}.home-section h3,.home-section-head h3{margin:0;padding:14px 18px;font-size:15px;font-weight:650}.home-section-head,.home-section>h3{border-bottom:1px solid var(--line)}.home-section-head{justify-content:space-between;align-items:center;display:flex}.home-section-head a,.home-warn-head a{color:var(--brand);padding-right:18px;font-size:13px;text-decoration:none}.home-section-head a:hover,.home-warn-head a:hover{text-decoration:underline}.home-empty{color:var(--muted);margin:0;padding:28px 18px;font-size:14px}.home-section .plain-table td a{color:var(--brand);text-decoration:none}.home-section .plain-table td a:hover{text-decoration:underline}.home-metrics{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;padding:16px 18px 18px;display:grid}.home-metric{border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px 12px 14px}.home-metric-top{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.home-metric-icon{border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.home-alert-icon svg,.home-metric-icon svg{width:15px;height:15px}.home-metric strong{font-size:26px;font-weight:700;line-height:1;display:inline-block}.home-metric em{margin-left:2px;font-style:normal}.home-metric em,.home-metric p{color:var(--muted);font-size:12px}.home-metric p{margin:6px 0 10px}.home-delta{color:#9ca3af;font-size:12px}.home-delta.up{color:#16a34a}.home-delta.down{color:#dc2626}.home-bar{background:#f3f4f6;border-radius:99px;height:5px;overflow:hidden}.home-bar i{border-radius:99px;height:100%;display:block}.home-bar.tone-blue i{background:#3b82f6}.home-bar.tone-green i{background:#22c55e}.home-bar.tone-orange i{background:#f59e0b}.home-bar.tone-red i{background:#f43f5e}.home-bar.tone-purple i{background:#a855f7}.home-bar.tone-teal i{background:#14b8a6}.home-alert-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:16px 18px;display:grid}.home-alert{border:1px solid var(--line);border-radius:12px;align-items:center;gap:12px;padding:12px 14px;display:flex}.home-alert-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.home-alert b{font-size:14px;display:block}.home-alert p{margin:4px 0 0;font-size:18px;font-weight:700}.home-alert p span{color:var(--muted);margin-left:8px;font-size:12px;font-weight:500}.home-alert.urgent{background:#fef2f2;border-color:#fecaca}.home-alert.urgent .home-alert-icon{color:#dc2626;background:#fee2e2}.home-alert.service{background:#fff7ed;border-color:#fed7aa}.home-alert.service .home-alert-icon{color:#ea580c;background:#ffedd5}.home-alert.watch{background:#fffbeb;border-color:#fde68a}.home-alert.watch .home-alert-icon{color:#d97706;background:#fef3c7}.home-alert.ok{background:#f0fdf4;border-color:#bbf7d0}.home-alert.ok .home-alert-icon{color:#16a34a;background:#dcfce7}.home-warn-grid{border-top:1px solid var(--line);grid-template-columns:1fr 1fr 1fr 1fr 1.2fr;display:grid}.home-warn-col{border-right:1px solid var(--line);min-width:0;padding:14px 16px 16px}.home-warn-col:last-child{border-right:0}.home-warn-head{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:10px;display:flex}.home-warn-head b{font-size:13px}.home-warn-head a{padding-right:0}.home-warn-empty{color:#9ca3af;margin:0;font-size:13px}.home-warn-list{margin:0;padding:0;list-style:none}.home-warn-list li{border-bottom:1px dashed #f3f4f6;padding:8px 0}.home-warn-list li:last-child{border-bottom:0}.home-warn-list a{color:var(--text);font-size:14px;font-weight:650;text-decoration:none;display:block}.home-warn-list a:hover{color:var(--brand)}.home-warn-list span{color:var(--muted);margin-top:2px;font-size:12px;line-height:1.4;display:block}.home-donut-wrap{flex-direction:column;align-items:center;gap:12px;display:flex}.home-donut{border-radius:50%;place-items:center;width:132px;height:132px;display:grid}.home-donut-hole{background:#fff;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:82px;height:82px;display:flex;box-shadow:inset 0 0 0 1px #f3f4f6}.home-donut-hole strong{font-size:22px;line-height:1}.home-donut-hole span{color:var(--muted);margin-top:4px;font-size:11px}.home-donut-legend{width:100%;margin:0;padding:0;list-style:none}.home-donut-legend li{color:var(--muted);align-items:center;gap:6px;padding:3px 0;font-size:12px;display:flex}.home-donut-legend i{border-radius:50%;flex-shrink:0;width:8px;height:8px}.home-donut-legend span{flex:1}.home-donut-legend b{color:var(--text);font-weight:600}.home-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:16px 18px 18px;display:grid}.home-action{border:1px solid var(--line);color:inherit;background:#fff;border-radius:12px;align-items:center;gap:12px;padding:14px 16px;text-decoration:none;display:flex}.home-action:hover{background:#f8fbff;border-color:#93c5fd}.home-action-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.home-action-icon svg{width:18px;height:18px}.home-action b{font-size:14px;font-weight:650;display:block}.home-action span span{color:var(--muted);margin-top:2px;font-size:12px;display:block}.tone-blue{color:#2563eb;background:#dbeafe}.tone-green{color:#16a34a;background:#dcfce7}.tone-orange{color:#ea580c;background:#ffedd5}.tone-purple{color:#7c3aed;background:#ede9fe}.tone-red{color:#dc2626;background:#fee2e2}.tone-teal{color:#0d9488;background:#ccfbf1}.page-head{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.muted{color:var(--muted);font-size:13px}.page-head input{width:240px}.data-card{border:1px solid var(--line);background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 8px 24px #0f14190a}.data-card-head{border-bottom:1px solid var(--line);background:#fff;justify-content:flex-end;align-items:center;gap:8px;min-height:56px;padding:12px 16px;display:flex}.data-card-head input{border:1px solid var(--line);background:#fff;width:240px;margin-right:auto;padding:7px 8px}.row-actions{justify-content:flex-end;gap:8px;display:flex}.chip-btn{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;justify-content:center;align-items:center;gap:4px;min-width:56px;padding:5px 12px;font-size:13px;display:inline-flex;box-shadow:0 1px 2px #0f14190f}.btn-icon{flex-shrink:0;width:14px;height:14px}.chip-btn:hover{background:#f8fafc}.chip-primary{color:#1d4ed8;background:#dbeafe;border-color:#93c5fd}.chip-primary:hover{background:#bfdbfe}.chip-confirm{color:#15803d;background:#dcfce7;border-color:#86efac}.chip-confirm:hover{background:#bbf7d0}.chip-edit{color:#c2410c;background:#ffedd5;border-color:#fdba74}.chip-edit:hover{background:#fed7aa}.chip-danger{color:var(--danger);background:#fee2e2;border-color:#fecaca}.chip-danger:hover{background:#fecaca}.btn-danger{color:var(--danger);background:#fee2e2;border-color:#fecaca}.btn-danger:hover{background:#fecaca}a.btn,a.chip-btn{color:inherit;text-decoration:none}.plain-table{border-collapse:collapse;background:#fff;width:100%}.plain-table td,.plain-table th{border-bottom:1px solid var(--line);text-align:left;padding:12px 16px;font-size:14px}.plain-table th{color:#6b7280;background:#fff;font-size:13px;font-weight:600}.plain-table tr:last-child td{border-bottom:0}.class-pick{position:relative}.class-pick-chips{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.class-chip{color:#334155;background:#f8fafc;border:1px solid #dbe3ee;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:13px;display:inline-flex}.class-chip span{color:#94a3b8}.class-pick-search{width:100%}.class-pick-menu{z-index:8;border:1px solid var(--line);background:#fff;max-height:240px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto;box-shadow:0 8px 24px #0f172a14}.class-pick-menu button{text-align:left;background:#fff;border:0;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:8px 12px;display:flex}.class-pick-menu button:hover{background:#f8fafc}.class-pick-empty,.class-pick-menu small{color:#94a3b8;font-size:12px}.class-pick-empty,.import-help{padding:10px 12px}.import-help{border:1px solid var(--line);color:#4b5563;background:#f8fafc;flex-direction:column;gap:6px;font-size:13px;line-height:1.6;display:flex}.import-help p{margin:0}.import-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.import-result{color:#334155;font-size:13px}.import-result ul{max-height:180px;margin:8px 0 0;padding-left:18px;overflow:auto}.check-list{border:1px solid var(--line);background:#fff;flex-direction:column;gap:6px;padding:8px;display:flex}.check-item{flex-direction:row;align-items:center;gap:8px;font-size:14px;display:flex}.check-item input{width:auto}.modal-body form{gap:12px}.class-roster,.modal-body form{flex-direction:column;display:flex}.class-roster{border-top:1px solid var(--line);gap:8px;padding-top:8px}.search-hits{border:1px solid var(--line);background:#fff;border-radius:8px;overflow:hidden}.search-hit{border:0;border-bottom:1px solid var(--line);cursor:pointer;text-align:left;background:#fff;justify-content:space-between;align-items:center;width:100%;padding:8px 12px;display:flex}.search-hit:last-child{border-bottom:0}.search-hit:hover{background:#f8fafc}.roster-item em,.search-hit em{color:var(--muted);margin-left:8px;font-size:13px;font-style:normal}.roster-list{flex-direction:column;gap:8px;display:flex}.roster-item{border:1px solid var(--line);background:#fff;border-radius:8px;justify-content:space-between;align-items:center;padding:8px 12px;display:flex;box-shadow:0 1px 2px #0f14190a}.class-chip.on{color:#1d4ed8;background:#dbeafe;border-color:#93c5fd}button.class-chip{cursor:pointer}.settings-tabs{gap:8px;display:flex}.form-warn{color:#b45309;font-size:13px}.customers-page{min-height:100%;position:relative}.customers-page .page-head{margin-bottom:14px}.customer-detail-page .chip-solid,.customer-detail-page a.chip-solid,.customer-form-page .chip-solid,.customer-form-page a.chip-solid,.customers-page .chip-solid,.customers-page a.chip-solid{color:#fff;background:#3b82f6;border-color:#3b82f6;box-shadow:0 1px 2px #2563eb3d}.customer-detail-page .chip-solid:hover,.customer-detail-page a.chip-solid:hover,.customer-form-page .chip-solid:hover,.customer-form-page a.chip-solid:hover,.customers-page .chip-solid:hover,.customers-page a.chip-solid:hover{color:#fff;background:#2563eb;border-color:#2563eb}.customer-detail-page .chip-danger,.customer-form-page .chip-danger,.customers-page .chip-danger{color:#dc2626;background:#fff;border-color:#fca5a5}.customer-detail-page .chip-danger:hover:not(:disabled),.customer-form-page .chip-danger:hover:not(:disabled),.customers-page .chip-danger:hover:not(:disabled){background:#fef2f2}.customer-filters{margin-bottom:16px}.customer-filters .filter-row{align-items:flex-end;gap:12px;padding:14px 16px;display:flex;overflow-x:auto}.customer-filters label{min-width:112px;color:var(--muted);flex-direction:column;flex:1;gap:6px;font-size:12px;display:flex}.customer-filters select{border:1px solid var(--line);width:100%;height:36px;color:var(--text);background:#fff;border-radius:8px;padding:0 10px}.customer-filters .filter-submit{flex:none;height:36px;padding:0 16px}.customer-workspace{flex-direction:column;gap:16px;display:flex}.customer-list{flex-direction:column;min-width:0;display:flex}.customer-list-head{color:var(--muted);align-items:center;gap:16px;padding:12px 16px;font-size:13px;display:flex}.customer-list-head,.customer-list-head .row-actions{justify-content:flex-start}.customer-list-body{flex:1;max-height:calc(100vh - 360px);overflow:auto}.customer-list .plain-table{min-width:980px}.customer-list .plain-table td,.customer-list .plain-table th{text-align:center;vertical-align:middle}.customer-list .plain-table th{white-space:nowrap}.customer-list tr{cursor:pointer}.customer-list tr:hover td{background:#f8fafc}.customer-list tr.is-selected td{background:#eff6ff}.intent-tag{text-align:center;background:#fff;border-radius:4px;justify-content:center;align-items:center;min-width:22px;height:22px;font-size:12px;font-weight:700;line-height:1;display:inline-flex}.intent-tag.tone-a{color:#16a34a;background:#f0fdf4;border:1px solid #86efac}.intent-tag.tone-b{color:#2563eb;background:#eff6ff;border:1px solid #93c5fd}.intent-tag.tone-c{color:#d97706;background:#fffbeb;border:1px solid #fcd34d}.intent-tag.tone-d{color:#dc2626;background:#fef2f2;border:1px solid #fca5a5}.source-tag{text-align:center;white-space:nowrap;box-sizing:border-box;border-radius:4px;justify-content:center;align-items:center;min-width:4.6em;height:22px;padding:0 8px;font-size:12px;font-weight:700;line-height:1;display:inline-flex}.source-tag.source-ground{color:#c2410c;background:#fff7ed;border:1px solid #fdba74}.source-tag.source-referral{color:#15803d;background:#f0fdf4;border:1px solid #86efac}.source-tag.source-online{color:#1d4ed8;background:#eff6ff;border:1px solid #93c5fd}.source-tag.source-walkin{color:#7c3aed;background:#f5f3ff;border:1px solid #c4b5fd}.source-tag.source-other{color:#4b5563;background:#f9fafb;border:1px solid #d1d5db}.source-tag.source-teal{color:#0f766e;background:#f0fdfa;border:1px solid #5eead4}.source-tag.source-pink{color:#be185d;background:#fdf2f8;border:1px solid #f9a8d4}.source-tag.source-indigo{color:#4338ca;background:#eef2ff;border:1px solid #a5b4fc}.source-tag.source-cyan{color:#0e7490;background:#ecfeff;border:1px solid #67e8f9}.follow-tag{white-space:nowrap;font-weight:650}.follow-ok{color:#16a34a}.follow-mid{color:#d97706}.follow-late{color:#dc2626}.follow-none{color:#9ca3af}.customer-pager{justify-content:flex-end;align-items:center;gap:6px;padding:12px 16px 14px;display:flex}.customer-pager select{margin-left:8px}.customer-pager select,.pager-nav,.pager-num{border:1px solid var(--line);background:#fff;border-radius:8px;height:32px;padding:0 8px}.pager-nav,.pager-num{cursor:pointer;min-width:32px}.pager-num.is-current{color:#fff;background:#3b82f6;border-color:#3b82f6}.pager-nav:disabled{opacity:.45;cursor:default}.customer-panel{z-index:20;pointer-events:auto;background:#fff;border:1px solid #0f141914;border-radius:14px;flex-direction:column;width:min(400px,32vw);animation:customer-panel-in .18s ease-out;display:flex;position:fixed;top:24px;bottom:24px;right:28px;box-shadow:0 8px 28px #00000029,0 2px 8px #0f141914}@keyframes customer-panel-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}.customer-summary{flex-direction:column;height:100%;min-height:0;display:flex}.customer-summary header{justify-content:space-between;align-items:flex-start;gap:8px;padding:18px 18px 14px;display:flex}.customer-summary header>div{min-width:0}.customer-title-row{align-items:center;gap:8px;display:flex}.customer-summary h3{margin:0;font-size:20px;font-weight:700}.customer-sub{color:var(--muted);align-items:center;gap:14px;margin:8px 0 0;font-size:13px;display:flex}.customer-sub span{align-items:center;gap:4px;display:inline-flex}.customer-sub svg{width:14px;height:14px}.customer-summary-body{flex:1;padding:0 18px 8px;overflow:auto}.customer-summary-body section{border-top:1px solid var(--line);padding:14px 0}.customer-summary-body h4{margin:0 0 10px;font-size:14px;font-weight:650}.customer-summary .info-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 10px;margin:0;display:grid}.customer-summary dt{color:var(--muted);font-size:12px}.customer-summary dd{word-break:break-all;margin:4px 0 0;font-size:13px}.tag-row{flex-wrap:wrap;gap:6px;display:flex}.info-tag{border-radius:999px;align-items:center;padding:3px 8px;font-size:12px;line-height:1.4;display:inline-flex}.tag-child{color:#0f766e;background:#ccfbf1}.tag-parent,.tag-push{color:#15803d;background:#dcfce7}.tag-block{color:#dc2626;background:#fee2e2}.intent-group+.intent-group{margin-top:10px}.intent-group em{color:var(--muted);margin-bottom:6px;font-size:12px;font-style:normal;display:block}.customer-note{color:#374151;white-space:pre-wrap;margin:8px 0 0;font-size:13px;line-height:1.7}.more-link{color:#2563eb;justify-content:center;padding:12px 18px 16px;font-size:13px;text-decoration:none;display:flex}.more-link:hover{color:#1d4ed8}.intention-pill{color:#1d4ed8;background:#dbeafe;border-radius:999px;justify-content:center;min-width:28px;padding:2px 8px;font-weight:650;display:inline-flex}.insight-block{margin-top:16px}.insight-block h3{margin:0 0 8px;font-size:14px}.insight-add{gap:8px;margin:8px 0;display:flex}.insight-add input{border:1px solid var(--line);background:#fff;flex:1;padding:7px 8px}.customer-ai-card textarea,.insight-block textarea{border:1px solid var(--line);resize:vertical;background:#fff;width:100%;padding:8px}.detail-grid{grid-template-columns:1fr 1fr;gap:12px 16px;display:grid}.detail-grid b{color:var(--muted);margin-bottom:4px;font-size:12px;font-weight:600;display:block}.back-link{width:28px;height:28px;color:inherit;border-radius:8px;justify-content:center;align-items:center;margin-right:6px;text-decoration:none;display:inline-flex}.back-link:hover{background:#f3f4f6}.req{color:#dc2626;font-style:normal}.form-grid-4,.form-grid-6{grid-template-columns:repeat(4,minmax(0,1fr))}.form-grid-6{grid-template-columns:repeat(6,minmax(0,1fr))}.customer-detail-page .data-card,.customer-form-page .data-card{margin-bottom:16px;padding:18px 20px}.customer-detail-page .data-card h3,.customer-detail-page h3,.customer-form-page .data-card h3,.customer-form-page h3{margin:0 0 14px;font-size:15px;font-weight:650}.page-head-title{align-items:center;gap:12px;min-width:0;display:flex}.status-picks{gap:6px;display:flex}.status-pick{cursor:pointer;border:1px solid #0000;border-radius:8px;min-width:72px;height:28px;padding:0 10px;font-size:13px;font-weight:700}.status-pick.deal-following{color:#2563eb;background:#eff6ff;border-color:#bfdbfe}.status-pick.deal-closed{color:#15803d;background:#f0fdf4;border-color:#bbf7d0}.status-pick.deal-following.is-on{color:#fff;background:#2563eb;border-color:#2563eb}.status-pick.deal-closed.is-on{color:#fff;background:#16a34a;border-color:#16a34a}.deal-tag{border-radius:999px;align-items:center;height:22px;padding:0 8px;font-size:12px;font-weight:700;line-height:1;display:inline-flex}.deal-tag.deal-following{color:#1d4ed8;background:#dbeafe}.deal-tag.deal-closed{color:#15803d;background:#dcfce7}.deal-tag.deal-lg{height:26px;padding:0 10px;font-size:13px}.customer-name-cell{justify-content:center;align-items:center;gap:6px;display:inline-flex}.intent-picks{gap:8px;display:flex}.intent-tag.is-on{box-shadow:0 0 0 2px}.radio-row{align-items:center;gap:16px;height:36px;display:flex}.radio-row label{align-items:center;gap:6px;font-size:14px;display:inline-flex}.radio-row input{width:auto}.char-count{color:var(--muted);text-align:right;margin-top:4px;font-size:12px;font-style:normal;display:block}.tag-picker{margin-bottom:14px}.tag-picker>span{color:#374151;margin-bottom:8px;font-size:14px;display:block}.tag-picker .info-tag{cursor:pointer;opacity:.55;border:1px solid #0000}.tag-picker .info-tag.is-on{opacity:1;border-color:currentColor}.tag-add,.tag-add-inline{align-items:center;gap:6px;display:inline-flex}.tag-add{color:#2563eb;cursor:pointer;background:#eff6ff;border:1px dashed #93c5fd;border-radius:999px;padding:3px 10px;font-size:12px}.tag-add-inline input{border:1px solid var(--line);border-radius:8px;width:120px;height:28px;padding:0 8px}.form-footer{align-items:center;gap:12px;padding-bottom:24px}.detail-top,.form-footer{justify-content:space-between;display:flex}.detail-top{align-items:flex-start;gap:16px;margin-bottom:12px}.detail-top .crumb{margin-bottom:0}.crumb{color:var(--muted);align-items:center;gap:8px;margin-bottom:12px;font-size:13px;display:flex}.crumb a{color:inherit;text-decoration:none}.crumb em{color:var(--text);font-style:normal}.detail-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px;display:flex}.detail-head h2{align-items:center;gap:8px;display:flex}.detail-head-right{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.detail-meta{color:var(--muted);gap:14px;margin:0;font-size:12px;display:flex}.detail-tabs{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.detail-tabs>div{gap:4px;display:flex}.detail-tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 16px}.detail-tabs button.is-on{color:#2563eb;border-bottom-color:#2563eb;font-weight:650}.detail-tabs>.chip-btn{flex-shrink:0;margin-bottom:8px}.detail-layout{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:16px;display:grid}.info-grid{gap:12px 16px;margin:0;display:grid}.info-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.info-grid-6{grid-template-columns:repeat(6,minmax(0,1fr))}.info-grid-5{grid-template-columns:repeat(5,minmax(0,1fr))}.info-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.customer-detail-page dt,.follow-page dt{color:var(--muted);font-size:12px}.customer-detail-page dd,.follow-page dd{margin:4px 0 0;font-size:14px}.section-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.section-head h3{margin:0}.link-btn{color:#2563eb;cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;text-decoration:none}.stat-list{margin:0;padding:0;list-style:none}.stat-list li{border-bottom:1px solid var(--line);justify-content:space-between;padding:8px 0;font-size:13px;display:flex}.stat-list li:last-child{border-bottom:0}.timeline{border-left:2px solid #e5e7eb;margin:0;padding:0 0 0 16px;list-style:none}.timeline li{padding:0 0 16px 16px;position:relative}.timeline li:before{content:"";background:#3b82f6;border-radius:50%;width:10px;height:10px;position:absolute;top:6px;left:-21px}.timeline li.create:before{background:#22c55e}.timeline li strong{display:block}.timeline li span{color:var(--muted);font-size:12px}.timeline li p{color:#374151;margin:6px 0 0;font-size:13px}.timeline.compact li p{display:none}.end-hint{text-align:center;margin:8px 0 0}.change-filters{align-items:flex-end;gap:12px;margin-bottom:14px;display:flex}.change-filters label{color:var(--muted);flex-direction:column;gap:6px;font-size:12px;display:flex}.change-filters input,.change-filters select{border:1px solid var(--line);background:#fff;border-radius:8px;height:36px;padding:0 10px}.date-range{align-items:center;gap:8px;display:flex}.filter-actions{gap:8px;padding-bottom:1px;display:flex}.change-summary{text-overflow:ellipsis;white-space:nowrap;max-width:420px;overflow:hidden}.type-tag{border-radius:999px;padding:2px 8px;font-size:12px;display:inline-flex}.type-create{color:#c2410c;background:#ffedd5}.type-trial{color:#15803d;background:#dcfce7}.type-intent{color:#1d4ed8;background:#dbeafe}.type-child{color:#0f766e;background:#ccfbf1}.type-parent{color:#7c3aed;background:#ede9fe}.type-basic{color:#4b5563;background:#f3f4f6}.change-details{margin:0;padding:0;list-style:none}.change-details li{border-bottom:1px solid var(--line);flex-direction:column;gap:4px;padding:8px 0;display:flex}.change-details b{color:var(--muted);font-size:12px}.sales-home{flex-direction:column;gap:16px;display:flex}.sales-home .intent-tag.tone-a{color:#e11d48;background:#fff1f2;border:1px solid #fda4af}.sales-home .intent-tag.tone-b{color:#ea580c;background:#fff7ed;border:1px solid #fdba74}.sales-home .intent-tag.tone-c{color:#d97706;background:#fffbeb;border:1px solid #fcd34d}.sales-home .intent-tag.tone-d{color:#16a34a;background:#f0fdf4;border:1px solid #86efac}.sales-greet h2{font-size:22px;font-weight:700}.sales-greet p{color:var(--muted);margin:6px 0 0;font-size:13px}.sales-kpis{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;display:grid}.sales-kpi{background:#fff;border-radius:16px;justify-content:space-between;align-items:flex-start;padding:18px 20px;display:flex;box-shadow:0 1px 2px #1018280a,0 8px 24px #1018280d}.sales-kpi span{color:var(--muted);font-size:13px;display:block}.sales-kpi strong{margin-top:10px;font-size:28px;font-weight:750;line-height:1;display:block}.sales-kpi .home-delta{margin-top:8px;font-size:12px;font-style:normal;font-weight:650;display:block}.sales-kpi-icon{border-radius:10px;flex-shrink:0;place-items:center;width:36px;height:36px;display:grid}.sales-kpi-icon svg{width:18px;height:18px}.sales-kpi-icon.tone-blue,.sales-remind-icon.tone-blue{color:#2563eb;background:#eff6ff}.sales-kpi-icon.tone-green,.sales-remind-icon.tone-green{color:#16a34a;background:#f0fdf4}.sales-kpi-icon.tone-orange,.sales-remind-icon.tone-orange{color:#ea580c;background:#fff7ed}.sales-kpi-icon.tone-purple{color:#7c3aed;background:#f5f3ff}.sales-kpi-icon.tone-pink{color:#db2777;background:#fdf2f8}.sales-kpi-icon.tone-red,.sales-remind-icon.tone-red{color:#dc2626;background:#fef2f2}.sales-remind-icon.tone-amber{color:#d97706;background:#fffbeb}.sales-card{background:#fff;border-radius:16px;padding:18px 20px;box-shadow:0 1px 2px #1018280a,0 8px 24px #1018280d}.sales-card h3{margin:0;font-size:16px;font-weight:700}.sales-card-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.sales-mid{grid-template-columns:minmax(0,1fr) 300px;align-items:stretch;gap:16px;display:grid}.sales-follow{flex-direction:column;min-height:0;display:flex}.sales-follow .sales-table-wrap{flex:1}.sales-table-wrap{min-height:368px;overflow-x:auto}.sales-table{border-collapse:collapse;width:100%;min-width:720px}.sales-table td,.sales-table th{text-align:left;vertical-align:middle;border-bottom:1px solid #f1f5f9;padding:12px 10px;font-size:13px}.sales-table th{color:#94a3b8;font-size:12px;font-weight:600}.sales-person{align-items:center;gap:10px;display:flex}.sales-avatar{color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:36px;height:36px;font-size:13px;font-weight:700;display:grid}.sales-avatar.tone-a{background:#fb7185}.sales-avatar.tone-b{background:#fb923c}.sales-avatar.tone-c{background:#60a5fa}.sales-avatar.tone-d{background:#9ca3af}.sales-person b{display:block}.sales-person{color:inherit;text-decoration:none}.sales-follow-cell small,.sales-person small{color:#94a3b8;margin-top:2px;font-size:12px;display:block}.sales-follow-cell b{font-weight:700}.sales-clip{text-overflow:ellipsis;white-space:nowrap;color:#4b5563;max-width:220px;overflow:hidden}.sales-key-tags{flex-wrap:wrap;gap:4px;display:flex}.sales-key-tags span,.sales-status{border-radius:999px;align-items:center;height:22px;padding:0 8px;font-size:12px;font-weight:650;display:inline-flex}.sales-status.need{color:#dc2626;background:#fef2f2}.sales-status.wait{color:#ea580c;background:#fff7ed}.sales-status.doing{color:#16a34a;background:#f0fdf4}.sales-view{color:#2563eb;font-weight:650;text-decoration:none}.sales-view:hover{text-decoration:underline}.sales-card-foot{padding-top:12px}.sales-card-foot a,.sales-remind-more{color:#2563eb;font-size:13px;font-weight:650;text-decoration:none}.sales-reminders ul{margin:16px 0 0;padding:0;list-style:none}.sales-reminders li{border-bottom:1px solid #f1f5f9;align-items:center;gap:10px;padding:10px 0;display:flex}.sales-reminders li:last-child{border-bottom:0}.sales-remind-icon{border-radius:10px;flex-shrink:0;place-items:center;width:36px;height:36px;display:grid}.sales-remind-icon svg{width:18px;height:18px}.sales-reminders b{font-size:13px;display:block}.sales-reminders small{color:var(--muted);font-size:12px}.sales-reminders strong{margin-left:auto;font-size:18px}.sales-reminders strong.tone-red{color:#dc2626}.sales-reminders strong.tone-orange{color:#ea580c}.sales-reminders strong.tone-amber{color:#d97706}.sales-reminders strong.tone-green{color:#16a34a}.sales-remind-more{text-align:center;margin-top:8px;display:block}.sales-charts{grid-template-columns:1fr 1fr;gap:16px;display:grid}.sales-donut-wrap{align-items:center;gap:24px;padding:12px 8px 4px;display:flex}.sales-legend{flex-direction:column;flex:1;gap:10px;margin:0;padding:0;list-style:none;display:flex}.sales-legend li{align-items:center;gap:8px;font-size:13px;display:flex}.sales-legend i{border-radius:50%;width:8px;height:8px}.sales-legend span{color:#4b5563}.sales-legend b{margin-left:auto;font-weight:650}.sales-trend svg{width:100%;height:220px;display:block}.sales-trend-legend{color:var(--muted);justify-content:center;gap:18px;font-size:12px;display:flex}.sales-trend-legend i{border-radius:50%;width:10px;height:10px;margin-right:6px;display:inline-block}.sales-trend-legend i.tone-blue{background:#3b82f6}.sales-trend-legend i.tone-green{background:#22c55e}.home-module{flex-direction:column;flex:1;min-height:0;display:flex;overflow:auto}.home-module .home{flex:none;height:auto;padding-top:16px;overflow:visible}.module-switch{flex-shrink:0;justify-content:center;padding:16px 28px 0;display:flex}.module-switch-tabs{border:1px solid var(--line);background:#fff;border-radius:10px;align-items:center;gap:4px;padding:4px;display:inline-flex;box-shadow:0 1px 2px #0f14190f}.module-switch-tabs a{color:#4b5563;border-radius:8px;justify-content:center;align-items:center;min-width:96px;height:32px;padding:0 16px;font-size:13px;font-weight:650;line-height:1;text-decoration:none;display:inline-flex}.module-switch-tabs a.is-active{color:#1d4ed8;background:#dbeafe}.principal-hero{align-items:baseline;display:flex}.principal-hero h2{font-size:22px;font-weight:700;display:block}.principal-date{color:var(--muted);margin-left:8px;font-size:13px;font-weight:500}.principal-home{gap:16px}.principal-home .sales-follow{isolation:isolate;flex:none;min-height:auto;overflow:hidden}.principal-home .sales-table-wrap{flex:none;min-height:0;overflow:hidden}.principal-home .sales-mid{grid-template-columns:minmax(0,2fr) minmax(280px,1fr)}.principal-home .intent-tag.tone-b{color:#2563eb;background:#eff6ff;border:1px solid #93c5fd}.principal-home .sales-avatar.tone-b{background:#60a5fa}.principal-charts{grid-template-columns:1fr 1fr 1fr;gap:16px;display:grid}.principal-bars{flex-direction:column;gap:14px;margin:16px 0 0;padding:0;list-style:none;display:flex}.principal-charts .sales-card{min-width:0;overflow:hidden}.principal-bars li{grid-template-columns:72px minmax(0,1fr) 4.8em;align-items:center;gap:10px;min-width:0;font-size:13px;display:grid}.principal-bars li>span{text-overflow:ellipsis;white-space:nowrap;color:#4b5563;overflow:hidden}.principal-bar{background:#f3f4f6;border-radius:999px;min-width:0;height:10px;overflow:hidden}.principal-bar i{border-radius:999px;height:100%;display:block}.principal-bars b{color:#4b5563;white-space:nowrap;text-align:right;font-size:12px;font-weight:650}@media (max-width:1100px){.form-grid-4,.form-grid-6,.info-grid-4,.info-grid-5,.info-grid-6{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-layout,.principal-charts,.sales-charts,.sales-kpis,.sales-mid{grid-template-columns:1fr}}