@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-outline-style:solid}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--animate-spin:spin 1s linear infinite;--default-font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, sans-serif;--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{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}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, 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;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{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{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,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{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-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{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.fixed{position:fixed}.block{display:block}.flex{display:flex}.hidden{display:none}.inline-flex{display:inline-flex}.table{display:table}.animate-spin{animation:var(--animate-spin)}.border{border-style:var(--tw-border-style);border-width:1px}.outline{outline-style:var(--tw-outline-style);outline-width:1px}}:root{--primary:#2563eb;--bg:#f0f2f5;--surface:#fff;--border:#e5e7eb;--text:#111827;--text-sub:#6b7280;--text-muted:#9ca3af}*{box-sizing:border-box}html,body{width:100%;max-width:100%;height:100%;margin:0;overflow-x:hidden}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased}.app-shell{width:100%;max-width:100vw;height:100dvh;display:flex;overflow:hidden}.sb{border-right:1px solid var(--border);background:#f8f9fa;flex-direction:column;flex-shrink:0;width:220px;display:flex}.sb-top{border-bottom:1px solid var(--border);padding:16px 16px 14px}.sb-name{color:#1a2980;font-size:16px;font-weight:600}.sb-sub{color:var(--text-muted);margin-top:2px;font-size:11px}.nav{flex:1;padding:8px 0;overflow-y:auto}.ni{color:var(--text-sub);cursor:pointer;align-items:center;gap:10px;padding:10px 16px;font-size:13px;text-decoration:none;transition:all .15s;display:flex}.ni:hover{color:#374151;background:#f3f4f6}.ni.on{color:var(--primary);background:#eff6ff;font-weight:500}.ni svg{flex-shrink:0;width:17px;height:17px}.ni .badge{color:#fff;background:#ef4444;border-radius:20px;margin-left:auto;padding:1px 7px;font-size:10px;font-weight:600}.sb-user{border-top:1px solid var(--border);padding:12px 14px}.av{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:10px;font-weight:600;display:flex}.av-lg{border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;margin-bottom:8px;font-size:16px;font-weight:600;display:flex}.main{background:var(--surface);flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.screen{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.topbar{border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;min-width:0;padding:12px 18px;display:flex}.topbar-t{color:var(--text);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:15px;font-weight:600;overflow:hidden}.topbar-r{flex-shrink:0;align-items:center;gap:8px;display:flex}.btn{color:#374151;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #d1d5db;border-radius:8px;align-items:center;gap:5px;padding:6px 12px;font-size:12px;font-weight:500;transition:background .1s;display:inline-flex}.btn:hover{background:#f9fafb}.btn.p{background:var(--primary);color:#fff;border-color:var(--primary)}.btn.p:hover{background:#1d4ed8}.btn.d{color:#dc2626;background:#fef2f2;border-color:#fecaca}.btn.d:hover{background:#fee2e2}.btn svg{width:13px;height:13px}.btn:disabled{opacity:.6;cursor:not-allowed}.badge-s{white-space:nowrap;border-radius:20px;align-items:center;padding:2px 8px;font-size:11px;font-weight:500;display:inline-flex}.bn{color:#2563eb;background:#eff6ff}.bf{color:#d97706;background:#fffbeb}.bc{color:#16a34a;background:#f0fdf4}.bd{color:#9ca3af;border:1px solid var(--border);background:#f9fafb}.ba{color:#7c3aed;background:#f5f3ff}.bm{color:#ea580c;background:#fff7ed}.bs{color:#6b7280;background:#f3f4f6}.bx{color:#64748b;background:#f1f5f9;border:1px solid #e2e8f0}.badge-overdue{color:#fff;white-space:nowrap;background:#dc2626;border-radius:20px;align-items:center;gap:4px;padding:3px 9px;font-size:11px;font-weight:700;display:inline-flex}.tbl-wrap{flex:1;overflow:auto}table.data{border-collapse:collapse;width:100%}table.data thead th{text-align:left;color:var(--text-sub);border-bottom:1px solid var(--border);white-space:nowrap;text-transform:uppercase;letter-spacing:.4px;z-index:1;background:#f9fafb;padding:8px 14px;font-size:11px;font-weight:600;position:sticky;top:0}table.data tbody tr{cursor:pointer;border-bottom:1px solid #f3f4f6;transition:background .1s}table.data tbody tr:hover{background:#f9fafb}table.data tbody td{color:#374151;padding:9px 14px;font-size:12px}.nc{align-items:center;gap:8px;display:flex}.nm{color:var(--text);font-size:12px;font-weight:500}.ns{color:var(--text-muted);margin-top:1px;font-size:10px}.dot{border-radius:50%;width:6px;height:6px;margin-right:4px;display:inline-block}.danger-row td{color:#dc2626!important}.danger-row{background:#fef2f2!important}.danger-row td:first-child{box-shadow:inset 3px 0 #dc2626}.danger-row:hover td{background:#fee2e2!important}.stats{border-bottom:1px solid var(--border);background:#f9fafb;flex-wrap:wrap;flex-shrink:0;gap:8px;padding:10px 18px;display:flex}.sc{border:1px solid var(--border);background:#fff;border-radius:8px;flex:1;min-width:120px;padding:8px 12px}.sc-l{color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;font-size:10px;font-weight:500}.sc-v{color:var(--text);margin-top:2px;font-size:18px;font-weight:600}.alr{color:#dc2626;background:#fef2f2;border-bottom:1px solid #fecaca;flex-shrink:0;align-items:center;gap:6px;padding:7px 18px;font-size:12px;display:flex}.alr-w{color:#d97706;background:#fffbeb;border-bottom:1px solid #fde68a;flex-shrink:0;align-items:center;gap:6px;padding:7px 18px;font-size:12px;display:flex}.flt{border-bottom:1px solid var(--border);background:#f9fafb;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px;padding:8px 18px;display:flex}.flt-range{align-items:center;gap:4px;display:flex}.flt-range-l{color:var(--text-muted);white-space:nowrap;font-size:11px}.sr{background:#fff;border:1px solid #d1d5db;border-radius:8px;flex:1;align-items:center;gap:6px;min-width:180px;max-width:320px;padding:6px 10px;display:flex}.sr input{color:var(--text);background:0 0;border:none;outline:none;width:100%;font-size:12px}.sr svg{width:14px;height:14px;color:var(--text-muted);flex-shrink:0}select.flt-select{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:8px;padding:6px 8px;font-size:12px}.welcome{background:linear-gradient(135deg,#1a2980 0%,#2563eb 100%);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.welcome-name{color:#fff;margin-top:2px;font-size:16px;font-weight:600}.welcome-greeting{color:#fffc;font-size:13px}.welcome-r{gap:10px;display:flex}.wstat{text-align:center;background:#ffffff26;border-radius:8px;padding:8px 14px}.wstat-v{color:#fff;font-size:18px;font-weight:700}.wstat-l{color:#ffffffb3;margin-top:2px;font-size:10px}.wstat.warn{background:#ef44444d}.dash-todo-item{border:1px solid var(--border);cursor:pointer;color:inherit;background:#fff;border-radius:10px;align-items:center;gap:12px;margin-bottom:6px;padding:11px 14px;text-decoration:none;transition:all .15s;display:flex}.dash-todo-item:hover{border-color:#93c5fd;box-shadow:0 2px 8px #2563eb14}.dash-todo-item.overdue{background:#fef2f2;border-left:3px solid #ef4444}.dash-todo-item.today-item{background:#fffbeb;border-left:3px solid #d97706}.dash-todo-check{border:1.5px solid #d1d5db;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;display:flex}.dash-todo-body{flex:1;min-width:0}.dash-todo-customer{color:var(--primary);align-items:center;gap:4px;min-width:0;margin-bottom:2px;font-size:11px;font-weight:600;display:flex}.dash-todo-customer .dtc-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.dash-todo-text{color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin-bottom:3px;font-size:13px;font-weight:500;overflow:hidden}.dash-todo-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dash-todo-date{color:var(--text-sub);align-items:center;gap:3px;font-size:11px;display:flex}.dash-todo-date.overdue{color:#dc2626;font-weight:600}.dash-todo-date.today-d{color:#d97706;font-weight:600}.goto{color:var(--text-muted);white-space:nowrap;cursor:pointer;flex-shrink:0;align-items:center;gap:3px;font-size:11px;display:flex}.goto:hover{color:var(--primary)}.todo-type{border-radius:20px;align-items:center;padding:1px 6px;font-size:10px;font-weight:500;display:inline-flex}.tt-call{color:#2563eb;background:#eff6ff}.tt-mail{color:#16a34a;background:#f0fdf4}.tt-visit{color:#ea580c;background:#fff7ed}.tt-doc{color:#7c3aed;background:#f5f3ff}.rank-badge{border-radius:5px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 5px;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.rk-a{color:#dc2626;background:#fef2f2}.rk-b{color:#ea580c;background:#fff7ed}.rk-c{color:#2563eb;background:#eff6ff}.rk-d{color:#6b7280;background:#f3f4f6}.tt-appraisal{color:#0891b2;background:#ecfeff}.tt-visitation{color:#dc2626;background:#fef2f2}.pager{border-top:1px solid var(--border);color:var(--text-sub);background:#f9fafb;flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:10px 18px;font-size:12px;display:flex}.pager-btns{align-items:center;gap:6px;display:flex}.pager-btn{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:8px;align-items:center;gap:3px;padding:5px 10px;font-size:12px;display:inline-flex}.pager-btn:hover:not(:disabled){background:#f3f4f6}.pager-btn:disabled{opacity:.45;cursor:not-allowed}.empty{color:var(--text-muted);text-align:center;flex:1;justify-content:center;align-items:center;padding:40px;font-size:14px;display:flex}.sb-backdrop{display:none}@media (max-width:767px){.sb{z-index:40;transition:transform .2s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:0 0 24px #00000026}.sb.open{transform:translate(0)}.sb-backdrop.show{z-index:30;background:#00000059;display:block;position:fixed;inset:0}}.menu-btn{cursor:pointer;color:#374151;background:0 0;border:none;padding:4px;display:none}@media (max-width:767px){.menu-btn{align-items:center;display:inline-flex}.topbar,.welcome{padding-left:54px}}.detail-wrap{flex:1;display:flex;overflow:hidden}.detail-left{border-right:1px solid var(--border);flex-shrink:0;width:288px;overflow-y:auto}.detail-right{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.profile{border-bottom:1px solid var(--border);padding:14px 16px}.p-name{color:var(--text);font-size:16px;font-weight:600}.p-kana{color:var(--text-muted);margin-top:2px;font-size:11px}.sec{border-bottom:1px solid var(--border);padding:12px 16px}.sec-t{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:11px;font-weight:600}.field{margin-bottom:7px}.fl{color:var(--text-muted);margin-bottom:1px;font-size:11px}.fv{color:var(--text);word-break:break-word;font-size:13px;font-weight:500}.next-action{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;margin:12px 16px;padding:10px 12px}.next-action.overdue{background:#fef2f2;border-color:#fecaca}.na-title{color:#d97706;align-items:center;gap:5px;margin-bottom:4px;font-size:11px;font-weight:600;display:flex}.next-action.overdue .na-title{color:#dc2626}.na-text{color:#374151;font-size:13px;font-weight:500}.na-date{color:#d97706;align-items:center;gap:4px;margin-top:3px;font-size:11px;display:flex}.next-action.overdue .na-date{color:#dc2626}.tabs{border-bottom:1px solid var(--border);background:#fff;flex-shrink:0;display:flex}.tab{color:var(--text-sub);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:4px;padding:10px 16px;font-size:13px;font-weight:500;display:flex}.tab.on{color:var(--primary);border-bottom-color:var(--primary)}.tab-badge{color:#fff;background:#ef4444;border-radius:20px;padding:1px 6px;font-size:10px;font-weight:600}.tl-body-w{flex:1;padding:14px 16px;overflow-y:auto}.tl-item{gap:10px;margin-bottom:14px;display:flex;position:relative}.tl-item:not(:last-child):before{content:"";background:var(--border);width:1px;position:absolute;top:28px;bottom:-14px;left:14px}.tl-icon{z-index:1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.tl-icon svg{width:14px;height:14px}.tl-con{flex:1;min-width:0}.tl-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:3px;display:flex}.tl-act{color:var(--text);font-size:12px;font-weight:500}.tl-date{color:var(--text-muted);white-space:nowrap;font-size:10px}.tl-body-text{color:var(--text-sub);word-break:break-word;white-space:pre-wrap;font-size:12px;line-height:1.5}.tl-who{color:var(--text-muted);margin-top:3px;font-size:10px}.add-act{border-top:1px solid var(--border);background:#fff;flex-shrink:0;padding:10px 16px}.add-row{align-items:flex-end;gap:8px;display:flex}.add-inp{color:var(--text);border:1px solid #d1d5db;border-radius:8px;outline:none;flex:1;min-width:0;padding:7px 10px;font-size:12px}.add-inp::placeholder{color:var(--text-muted)}.add-inp-ta{resize:vertical;min-height:52px;font-family:inherit;line-height:1.5}.todo-wrap-inner{flex:1;padding:14px 16px;overflow-y:auto}.add-todo{border:1px solid var(--border);background:#f9fafb;border-radius:10px;margin-bottom:16px;padding:14px}.add-todo-t{color:#374151;align-items:center;gap:6px;margin-bottom:10px;font-size:12px;font-weight:600;display:flex}.add-todo-row{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.add-todo-inp{color:var(--text);background:#fff;border:1px solid #d1d5db;border-radius:8px;outline:none;flex:1;min-width:0;padding:7px 10px;font-size:12px}.add-todo-inp::placeholder{color:var(--text-muted)}.todo-sec-l{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #f3f4f6;margin-bottom:8px;padding-bottom:6px;font-size:11px;font-weight:600}.todo-item{border:1px solid var(--border);background:#fff;border-radius:8px;align-items:center;gap:10px;margin-bottom:6px;padding:10px 12px;transition:all .15s;display:flex}.todo-item:hover{border-color:#93c5fd}.todo-item.overdue{background:#fef2f2;border-left:3px solid #ef4444}.todo-item.done{opacity:.55}.todo-check{cursor:pointer;background:0 0;border:1.5px solid #d1d5db;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;padding:0;transition:all .15s;display:flex}.todo-check:hover{border-color:var(--primary)}.todo-check.checked{color:#fff;background:#16a34a;border-color:#16a34a}.todo-body-inner{flex:1;min-width:0}.todo-text{color:var(--text);word-break:break-word;margin-bottom:3px;font-size:13px;font-weight:500}.todo-text.done-text{color:var(--text-muted);text-decoration:line-through}.todo-meta-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.todo-date{color:var(--text-sub);align-items:center;gap:3px;font-size:11px;display:flex}.todo-date.overdue{color:#dc2626;font-weight:500}.todo-date.today{color:#d97706;font-weight:500}.todo-del{color:#d1d5db;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:2px;display:flex}.todo-del:hover{color:#ef4444}.form-scroll{flex:1;padding:20px;overflow-y:auto}.form-card{max-width:760px;margin:0 auto}.type-toggle{gap:10px;margin-bottom:20px;display:flex}.type-opt{border:1.5px solid var(--border);cursor:pointer;text-align:left;background:#fff;border-radius:10px;flex:1;padding:14px;transition:all .15s}.type-opt:hover{border-color:#93c5fd}.type-opt.on{border-color:var(--primary);background:#eff6ff}.type-opt-t{color:var(--text);align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.type-opt-d{color:var(--text-sub);margin-top:4px;font-size:11px}.form-sec-t{color:var(--text-sub);text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--border);margin:20px 0 10px;padding-bottom:6px;font-size:12px;font-weight:600}.form-grid{grid-template-columns:1fr 1fr;gap:12px 16px;display:grid}.form-field{flex-direction:column;gap:4px;display:flex}.form-field.full{grid-column:1/-1}.form-label{color:#374151;font-size:12px;font-weight:500}.form-label .req{color:#dc2626;margin-left:3px}.form-input,.form-select,.form-textarea{color:var(--text);background:#fff;border:1px solid #d1d5db;border-radius:8px;outline:none;width:100%;padding:8px 10px;font-family:inherit;font-size:13px}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.form-textarea{resize:vertical;min-height:72px}.form-actions{justify-content:flex-end;gap:8px;margin-top:24px;display:flex}.form-error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-top:12px;padding:8px 12px;font-size:12px}.kanban{background:#f0f2f5;flex:1;gap:10px;padding:14px;display:flex;overflow-x:auto}.col{border:1px solid var(--border);background:#f8f9fa;border-radius:10px;flex-direction:column;flex-shrink:0;width:210px;max-height:100%;display:flex}.col-head{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.col-title{color:#374151;font-size:12px;font-weight:600}.col-cnt{color:var(--text-sub);background:#e5e7eb;border-radius:20px;padding:1px 7px;font-size:11px;font-weight:600}.col-body{flex-direction:column;flex:1;gap:6px;min-height:60px;padding:8px;transition:background .12s;display:flex;overflow-y:auto}.col-body.drag-over{outline-offset:-4px;background:#eff6ff;border-radius:8px;outline:2px dashed #93c5fd}.col-suspended{background:#f1f5f9;border-style:dashed dashed dashed solid;border-left-width:2px;border-left-color:#cbd5e1;margin-left:20px}.col-suspended-empty{color:#94a3b8;text-align:center;padding:16px 8px;font-size:11px}.card{border:1px solid var(--border);cursor:grab;background:#fff;border-radius:8px;padding:10px;transition:all .15s}.card:active{cursor:grabbing}.card:hover{border-color:#93c5fd;box-shadow:0 2px 8px #2563eb14}.card.urgent{border-left:3px solid #ef4444}.card.dragging{opacity:.4}.card-name{color:var(--text);margin-bottom:4px;font-size:12px;font-weight:600}.card-prop{color:var(--text-sub);margin-bottom:6px;font-size:11px}.card-meta{justify-content:space-between;align-items:center;gap:6px;display:flex}.card-av{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:9px;font-weight:600;display:flex}.card-date{color:var(--text-muted);align-items:center;gap:3px;font-size:10px;display:flex}.card-date.urg{color:#ef4444;font-weight:500}.modal-backdrop{z-index:50;background:#0006;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:12px;width:100%;max-width:400px;padding:22px;box-shadow:0 10px 40px #0003}.modal-t{color:var(--text);align-items:center;gap:8px;margin-bottom:8px;font-size:16px;font-weight:600;display:flex}.modal-d{color:var(--text-sub);margin-bottom:18px;font-size:13px;line-height:1.6}.modal-actions{justify-content:flex-end;gap:8px;display:flex}.csv-modal{flex-direction:column;max-width:640px;max-height:88vh;padding:0;display:flex}.csv-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.csv-x{color:var(--text-sub);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px;display:inline-flex}.csv-x:hover{color:var(--text);background:#f3f4f6}.csv-body{padding:18px 20px;overflow-y:auto}.csv-field{margin-bottom:14px}.csv-label{color:#374151;margin-bottom:6px;font-size:12px;font-weight:600;display:block}.csv-hint{color:#9ca3af;margin-top:6px;font-size:11px;line-height:1.5}.csv-media{gap:8px;display:flex}.csv-media-opt{border:1px solid var(--border);color:var(--text-sub);cursor:pointer;background:#fff;border-radius:8px;flex:1;padding:9px 12px;font-size:13px;font-weight:500}.csv-media-opt.on{color:#2563eb;background:#eff6ff;border-color:#2563eb}.csv-media-opt:disabled{opacity:.6;cursor:default}.csv-file{border:1px dashed var(--border);color:var(--text-sub);cursor:pointer;background:#fafafa;border-radius:8px;align-items:center;gap:8px;padding:10px 12px;font-size:13px;display:flex}.csv-file:hover{background:#f8fbff;border-color:#93c5fd}.csv-alert{border-radius:8px;align-items:flex-start;gap:7px;margin-bottom:12px;padding:9px 11px;font-size:12.5px;line-height:1.5;display:flex}.csv-alert.error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.csv-alert.success{color:#15803d;background:#f0fdf4;border:1px solid #bbf7d0;margin-bottom:12px}.csv-result{border-top:1px solid var(--border);margin-top:4px;padding-top:14px}.csv-result-t{color:#374151;margin-bottom:10px;font-size:12px;font-weight:600}.csv-stats{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.csv-stat{border:1px solid var(--border);text-align:center;background:#f9fafb;border-radius:8px;padding:8px 10px}.csv-stat-l{color:var(--text-sub);margin-bottom:3px;font-size:10.5px}.csv-stat-v{color:var(--text);font-size:18px;font-weight:700}.csv-dist{flex-wrap:wrap;gap:6px;display:flex}.csv-errors{margin-top:12px}.csv-errlist{border:1px solid var(--border);background:#fff;border-radius:8px;max-height:160px;padding:6px;overflow-y:auto}.csv-errrow{color:#4b5563;border-bottom:1px solid #f3f4f6;padding:4px 6px;font-size:12px}.csv-errrow:last-child{border-bottom:none}.csv-errline{color:#dc2626;min-width:52px;margin-right:6px;font-weight:600;display:inline-block}.csv-muted{color:#9ca3af;font-size:12px}.csv-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:14px 20px;display:flex}.spin{margin-right:4px;animation:.8s linear infinite csv-spin}@keyframes csv-spin{to{transform:rotate(360deg)}}.ip-wrap{border:1px solid var(--border);background:#fafafa;border-radius:10px;padding:12px}.ip-empty{color:#9ca3af;padding:4px 2px 10px;font-size:12px}.ip-row{border:1px solid var(--border);color:var(--text);background:#fff;border-radius:8px;align-items:center;gap:8px;margin-bottom:8px;padding:8px 10px;font-size:13px;display:flex}.ip-row.removed{opacity:.5;text-decoration:line-through}.ip-row.added{background:#f0fdf4;border-color:#bbf7d0}.ip-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.ip-new{color:#16a34a;background:#dcfce7;border-radius:20px;padding:1px 7px;font-size:10.5px;font-weight:600}.ip-rem{color:#6b7280;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;padding:2px 4px;font-size:12px;display:inline-flex}.ip-rem:hover{color:#dc2626;background:#fef2f2}.ip-mode{gap:6px;margin:4px 0 10px;display:flex}.ip-mode-opt{border:1px solid var(--border);color:var(--text-sub);cursor:pointer;background:#fff;border-radius:20px;padding:6px 12px;font-size:12px}.ip-mode-opt.on{color:#2563eb;background:#eff6ff;border-color:#2563eb;font-weight:500}.ip-add-row{align-items:center;gap:8px;display:flex}.ip-add-row .form-select{flex:1}.ip-manual{border-top:1px dashed var(--border);padding-top:10px}.ip-detail{border:1px solid var(--border);background:#fff;border-radius:8px;margin-bottom:8px;padding:8px 10px}.ip-detail:last-child{margin-bottom:0}.ip-detail-head{align-items:center;gap:6px;margin-bottom:3px;display:flex}.ip-detail-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.ip-detail-addr{color:var(--text-sub);font-size:12px}.ip-detail-meta{color:#9ca3af;margin-top:2px;font-size:11.5px}.prop-wrap{flex:1;display:flex;overflow:hidden}.prop-list{border-right:1px solid var(--border);flex-shrink:0;width:320px;overflow-y:auto}.prop-list-hd{border-bottom:1px solid var(--border);color:var(--text-sub);z-index:1;background:#f9fafb;padding:10px 14px;font-size:12px;font-weight:600;position:sticky;top:0}.prop-card{cursor:pointer;border-bottom:1px solid #f3f4f6;padding:12px 14px;transition:background .1s}.prop-card:hover{background:#f9fafb}.prop-card.active{border-left:3px solid var(--primary);background:#eff6ff}.prop-type{border-radius:20px;align-items:center;margin-bottom:5px;padding:2px 7px;font-size:10px;font-weight:500;display:inline-flex}.pt-m{color:#2563eb;background:#eff6ff}.pt-l{color:#16a34a;background:#f0fdf4}.pt-h{color:#d97706;background:#fffbeb}.pt-i{color:#7c3aed;background:#f5f3ff}.prop-addr{color:var(--text);margin-bottom:3px;font-size:12px;font-weight:500}.prop-meta{color:var(--text-muted);font-size:11px}.prop-detail{flex:1;min-width:0;padding:16px;overflow-y:auto}.det-name{color:var(--text);margin-bottom:4px;font-size:16px;font-weight:600}.det-addr{color:var(--text-sub);align-items:center;gap:4px;font-size:13px;display:flex}.info-grid{grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;display:grid}.info-item{background:#f9fafb;border-radius:6px;padding:8px 10px}.info-l{color:var(--text-muted);margin-bottom:2px;font-size:10px}.info-v{color:var(--text);font-size:13px;font-weight:500}.owners{flex-direction:column;gap:8px;margin-top:10px;display:flex}.owner-row{background:#f9fafb;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.owner-l{cursor:pointer;align-items:center;gap:8px;min-width:0;display:flex}.owner-name{color:var(--text);font-size:12px;font-weight:500}.owner-sub{color:var(--text-muted);font-size:10px}.owner-status{white-space:nowrap;border-radius:20px;padding:2px 8px;font-size:11px;font-weight:500}.analytics-wrap{flex-direction:column;flex:1;gap:14px;padding:16px;display:flex;overflow-y:auto}.kpi-row{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.kpi{border:1px solid var(--border);background:#f9fafb;border-radius:10px;padding:12px 14px}.kpi-l{color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px;font-size:11px;font-weight:500}.kpi-v{color:var(--text);font-size:24px;font-weight:600}.kpi-sub{align-items:center;gap:3px;margin-top:3px;font-size:11px;display:flex}.kpi-sub.up{color:#16a34a}.kpi-sub.dn{color:#dc2626}.kpi-sub.flat{color:#9ca3af}.row2{grid-template-columns:1fr 1fr;gap:14px;display:grid}.acard{border:1px solid var(--border);background:#f9fafb;border-radius:10px;min-width:0;padding:14px;overflow-x:auto}.acard-t{color:#374151;align-items:center;gap:6px;margin-bottom:12px;font-size:13px;font-weight:600;display:flex}.bar-row{margin-bottom:8px}.bar-label{color:#374151;justify-content:space-between;gap:8px;margin-bottom:4px;font-size:12px;display:flex}.bar-label span{color:var(--text-muted);white-space:nowrap;font-size:11px}.bar-bg{background:#e5e7eb;border-radius:4px;height:8px}.bar-fill{border-radius:4px;height:8px;transition:width .3s}.kpi-table{border-collapse:collapse;width:100%}.kpi-table th{color:var(--text-muted);text-align:left;border-bottom:1px solid var(--border);text-transform:uppercase;padding:4px 6px;font-size:11px;font-weight:600}.kpi-table td{color:#374151;border-bottom:1px solid #f3f4f6;padding:7px 6px;font-size:12px}.rank{border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;margin-right:4px;font-size:10px;font-weight:600;display:inline-flex}.r1{color:#a16207;background:#fef9c3}.r2{color:#6b7280;background:#f3f4f6}.r3{color:#92400e;background:#fef3c7}.settings-wrap{flex-direction:column;flex:1;gap:16px;max-width:760px;padding:20px;display:flex;overflow-y:auto}.panel{border:1px solid var(--border);background:#fff;border-radius:10px;min-width:0;padding:18px;overflow-x:auto}.settings-wrap{width:100%}.panel-t{color:var(--text);align-items:center;gap:8px;margin-bottom:4px;font-size:14px;font-weight:600;display:flex}.panel-d{color:var(--text-sub);margin-bottom:14px;font-size:12px}.settings-row{border-bottom:1px solid #f3f4f6;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;display:flex}.settings-row:last-child{border-bottom:none}.settings-k{color:var(--text-muted);font-size:12px}.settings-v{color:var(--text);font-size:13px;font-weight:500}.badge-role{border-radius:20px;padding:1px 7px;font-size:10px;font-weight:600}.badge-admin{color:#7c3aed;background:#f5f3ff}.badge-staff{color:#2563eb;background:#eff6ff}.badge-inactive{color:#9ca3af;border:1px solid var(--border);background:#f9fafb}.ok-msg{color:#16a34a;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;margin-top:10px;padding:8px 12px;font-size:12px}@media (max-width:767px){.prop-wrap{flex-direction:column;overflow-y:auto}.prop-list{border-right:none;border-bottom:1px solid var(--border);width:100%;max-height:40vh}.kpi-row{grid-template-columns:1fr 1fr}.row2{grid-template-columns:1fr}.detail-wrap{flex-direction:column;overflow-y:auto}.detail-left{border-right:none;border-bottom:1px solid var(--border);width:100%;overflow:visible}.detail-right,.tl-body-w,.todo-wrap-inner{overflow:visible}.form-grid{grid-template-columns:1fr}}.toast-wrap{z-index:60;flex-direction:column;gap:8px;max-width:calc(100vw - 40px);display:flex;position:fixed;bottom:20px;right:20px}.toast{border:1px solid var(--border);color:var(--text);background:#fff;border-left:3px solid #16a34a;border-radius:10px;align-items:center;gap:8px;min-width:240px;padding:11px 12px;font-size:13px;animation:.2s toast-in;display:flex;box-shadow:0 6px 24px #0000001f}.toast-success{border-left-color:#16a34a}.toast-success .toast-icon{color:#16a34a}.toast-error{border-left-color:#dc2626}.toast-error .toast-icon{color:#dc2626}.toast-info{border-left-color:#2563eb}.toast-info .toast-icon{color:#2563eb}.toast-icon{flex-shrink:0}.toast-msg{flex:1;min-width:0}.toast-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:2px;display:flex}.toast-close:hover{color:var(--text)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.btn:active:not(:disabled),.pager-btn:active:not(:disabled),.type-opt:active,.ni:active{filter:brightness(.95);transform:translateY(.5px)}.card:active{transform:scale(.99)}@media (max-width:767px){input,select,textarea,.form-input,.form-select,.form-textarea,.add-inp,.add-todo-inp,.sr input,.flt-select{font-size:16px!important}.btn{min-height:44px;padding:10px 14px}.topbar-r .btn,.form-actions .btn{min-height:44px}.ni{padding:13px 16px}.flt-select,.form-select,.form-input,.add-inp,.add-todo-inp,.sr{min-height:44px}.tab{padding:13px 16px}.todo-check,.dash-todo-check{width:22px;height:22px;position:relative}.todo-check:before,.dash-todo-check:before{content:"";width:44px;height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.todo-del,.goto,.toast-close{justify-content:center;min-width:44px;min-height:44px;padding:8px}.toast-wrap{bottom:12px;left:12px;right:12px}.toast{width:100%;min-width:0}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@keyframes spin{to{transform:rotate(360deg)}}
