:root{--color-primary: #0f766e;--color-primary-hover: #0b5c56;--color-primary-soft: #e6f4f1;--color-on-primary: #ffffff;--color-accent: #0369a1;--color-page: #f6f8fa;--color-surface: #ffffff;--color-surface-muted: #f1f5f9;--color-border: #e2e8f0;--color-border-strong: #cbd5e1;--color-text: #0f172a;--color-text-muted: #475569;--color-text-subtle: #64748b;--color-success: #15803d;--color-success-bg: #dcfce7;--color-success-border: #86efac;--color-warning: #b45309;--color-warning-bg: #fef3c7;--color-warning-border: #fcd34d;--color-danger: #b91c1c;--color-danger-bg: #fee2e2;--color-danger-border: #fca5a5;--color-info: #0369a1;--color-info-bg: #e0f2fe;--color-info-border: #7dd3fc;--color-bg: var(--color-surface);--color-bg-subtle: var(--color-surface-muted);--color-primary-light: var(--color-primary-soft);--color-success-light: var(--color-success-bg);--color-danger-light: var(--color-danger-bg);--color-warning-light: var(--color-warning-bg);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .06);--shadow-sm: var(--shadow-xs);--shadow-md: 0 6px 20px rgba(15, 23, 42, .1);--shadow-lg: 0 20px 48px rgba(15, 23, 42, .18);--z-sticky: 10;--z-topbar: 20;--z-menu: 40;--z-overlay: 60;--z-toast: 80;--motion-fast: .12s;--motion-base: .18s;--ease-out: cubic-bezier(.2, .7, .2, 1);--sidebar-w: 248px;--topbar-h: 56px;--content-max: 1320px;--font-sans: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--text-xs: 12px;--text-sm: 13px;--text-base: 14px;--text-md: 16px;--text-lg: 20px;--text-xl: 24px}*,*:before,*:after{box-sizing:border-box}html{color-scheme:light}body{margin:0;font-family:var(--font-sans);font-size:var(--text-base);line-height:1.5;color:var(--color-text);background:var(--color-page);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3{margin:0 0 var(--space-4);font-weight:700;letter-spacing:-.01em;line-height:1.25;color:var(--color-text)}h1{font-size:var(--text-xl)}h2{font-size:var(--text-md);font-weight:600}h3{font-size:var(--text-base);font-weight:600}p{margin:0}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}.num,td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.muted{color:var(--color-text-muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.subtle{color:var(--color-text-subtle)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:inherit;font-size:var(--text-base);font-weight:600;line-height:1.25;padding:8px 14px;min-height:36px;border-radius:var(--radius-sm);border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text);cursor:pointer;text-decoration:none;transition:background var(--motion-fast) ease,border-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease,color var(--motion-fast) ease,transform var(--motion-fast) var(--ease-out)}button:hover:not(:disabled),.btn:hover:not(:disabled){background:var(--color-surface-muted);text-decoration:none}button:active:not(:disabled),.btn:active:not(:disabled){background:var(--color-border);transform:scale(.97)}button:disabled,.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}button[type=submit],.btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}button[type=submit]:hover:not(:disabled),.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover);box-shadow:0 6px 16px color-mix(in srgb,var(--color-primary) 35%,transparent);transform:translateY(-1px)}button[type=submit]:active:not(:disabled),.btn-primary:active:not(:disabled){background:var(--color-primary-hover);box-shadow:none;transform:translateY(0) scale(.97)}.btn-secondary{background:var(--color-surface);border-color:var(--color-border-strong)}.btn-sm{min-height:32px;padding:5px 10px;font-size:var(--text-sm)}.btn-icon{min-height:32px;min-width:32px;padding:0}.btn-ghost{background:transparent;border-color:transparent;color:var(--color-text-muted)}.btn-ghost:hover:not(:disabled){background:var(--color-surface-muted);color:var(--color-text)}.btn-danger{background:var(--color-danger-bg);border-color:var(--color-danger-border);color:var(--color-danger)}.btn-danger:hover:not(:disabled){background:var(--color-danger-border);border-color:var(--color-danger-border)}.btn-danger-solid{background:var(--color-danger);border-color:var(--color-danger);color:#fff}.btn-danger-solid:hover:not(:disabled){background:#991b1b;border-color:#991b1b}button.card,button.list-card{font-weight:400;font-size:var(--text-base)}input,select,textarea{font-family:inherit;font-size:var(--text-base);padding:8px 10px;min-height:36px;border-radius:var(--radius-sm);border:1px solid var(--color-border-strong);color:var(--color-text);background:var(--color-surface);transition:border-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease}input::placeholder,textarea::placeholder{color:var(--color-text-subtle)}input:not([type=checkbox]):not([type=radio]),select{width:100%;min-width:160px;max-width:220px}textarea{width:100%;max-width:none}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}input:disabled,select:disabled,textarea:disabled{background:var(--color-surface-muted);color:var(--color-text-subtle);cursor:not-allowed}input[type=checkbox],input[type=radio]{min-height:0;width:16px;height:16px;accent-color:var(--color-primary);cursor:pointer}.field{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.field-label{font-size:var(--text-sm);font-weight:500;color:var(--color-text-muted)}.field-required{color:var(--color-danger)}.field-hint{font-size:var(--text-xs);color:var(--color-text-subtle)}.field-error{font-size:var(--text-sm);color:var(--color-danger)}.form-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--space-4)}.form-grid input:not([type=checkbox]):not([type=radio]),.form-grid select,.form-grid textarea{width:100%;min-width:0;max-width:none}.col-12{grid-column:span 12}.col-8{grid-column:span 8}.col-6{grid-column:span 6}.col-4{grid-column:span 4}.col-3{grid-column:span 3}.form-section{display:flex;flex-direction:column;gap:var(--space-4);padding-bottom:var(--space-6);margin-bottom:var(--space-6);border-bottom:1px solid var(--color-border)}.form-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.form-section-title{margin:0;font-size:var(--text-sm);font-weight:700;letter-spacing:.02em;color:var(--color-text)}.check{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-base);cursor:pointer}.check-align{align-self:end;display:flex;align-items:center;min-height:40px}.field-hint.col-12{margin:0}.check-group{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-6)}.notice-success{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);border:1px solid var(--color-success-border);background:var(--color-success-bg);color:var(--color-success);font-size:var(--text-sm)}.form-error{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);border:1px solid var(--color-danger-border);background:var(--color-danger-bg);color:var(--color-danger);font-size:var(--text-sm)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-xs)}.card-body{padding:var(--space-5)}.card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border)}.card-title{margin:0;font-size:var(--text-md);font-weight:600}button.card{cursor:pointer;transition:box-shadow var(--motion-base) ease,border-color var(--motion-base) ease}button.card:hover:not(:disabled){background:var(--color-surface);box-shadow:var(--shadow-md);border-color:var(--color-border-strong)}.page-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-6)}.page-header h1{margin:0}.page-title-block{display:flex;flex-direction:column;gap:var(--space-1);flex:1 1 260px;min-width:0}.page-subtitle{color:var(--color-text-muted);font-size:var(--text-base)}.page-actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.back-link{display:inline-flex;align-items:center;gap:var(--space-1);margin-bottom:var(--space-3);font-size:var(--text-sm);font-weight:500;color:var(--color-text-muted)}.back-link:hover{color:var(--color-primary);text-decoration:none}.section{margin-top:var(--space-8)}.toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-4)}.toolbar-spacer{flex:1}.toolbar-count{margin-left:auto;font-size:var(--text-sm);color:var(--color-text-muted);white-space:nowrap}.search-input{position:relative;flex:1 1 200px;min-width:200px;max-width:320px}.search-input svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--color-text-subtle);pointer-events:none}.search-input input:not([type=checkbox]):not([type=radio]){width:100%;max-width:none;min-width:0;padding-left:34px}.toolbar select{width:auto;min-width:0;max-width:none;padding-right:28px}.chip{display:inline-flex;align-items:center;gap:var(--space-1);min-height:32px;padding:4px 12px;border-radius:999px;font-size:var(--text-sm);font-weight:500;border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text-muted);transition:background var(--motion-fast) ease,border-color var(--motion-fast) ease,color var(--motion-fast) ease}.chip[aria-pressed=true]{background:var(--color-primary-soft);border-color:var(--color-primary);color:var(--color-primary);font-weight:600}.chip-group{display:inline-flex;flex-wrap:wrap;gap:var(--space-2)}table{font-size:var(--text-base);width:100%;border-collapse:collapse}th{color:var(--color-text-muted);font-weight:600;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;text-align:left}tbody tr:hover{background:var(--color-surface-muted)}.table-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-xs)}.table-card table{margin:0}.table-card th,.table-card td{padding:12px 16px;vertical-align:middle}.table-card thead th{background:var(--color-surface-muted);border-bottom:1px solid var(--color-border);position:sticky;top:var(--topbar-h);z-index:var(--z-sticky)}.table-card thead th:first-child{border-top-left-radius:var(--radius-md)}.table-card thead th:last-child{border-top-right-radius:var(--radius-md)}.table-card tbody tr:not(:last-child) td{border-bottom:1px solid var(--color-border)}.table-card tbody tr:nth-child(2n){background:color-mix(in srgb,var(--color-surface-muted) 55%,transparent)}.table-card tbody tr{transition:background var(--motion-fast) ease}.table-card tbody tr:hover{background:var(--color-primary-soft)}.table-card tbody tr.row-clickable{cursor:pointer}.th-sort{display:inline-flex;align-items:center;gap:var(--space-1);min-height:0;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;white-space:nowrap}.th-sort:hover:not(:disabled){background:transparent;color:var(--color-text)}th.num .th-sort{flex-direction:row-reverse}.th-sort-idle{opacity:.35}.table-card td.cell-primary{font-weight:600}.table-card td.cell-actions{width:1%;white-space:nowrap;text-align:right}.icon-actions{display:inline-flex;align-items:center;gap:2px}.icon-action{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;min-height:0;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-subtle)}.icon-action:hover:not(:disabled){background:var(--color-surface-muted);color:var(--color-text)}.icon-action-danger:hover:not(:disabled),.icon-action-danger:focus-visible{background:var(--color-danger-bg);color:var(--color-danger)}.icon-action-active{color:var(--color-danger)}.row-actions{display:inline-flex;align-items:center;gap:var(--space-2);justify-content:flex-end}.cell-stack{display:flex;flex-direction:column;gap:2px;min-width:0}.cell-meta{font-size:var(--text-xs);color:var(--color-text-muted)}.cell-icon{display:inline-flex;align-items:center;gap:var(--space-2)}.cell-icon svg{flex-shrink:0;color:var(--color-text-subtle)}.page-size{display:inline-flex;align-items:center;gap:var(--space-2);margin-right:var(--space-3)}.page-size select{width:auto;min-width:0;max-width:none;min-height:32px;padding:4px 28px 4px 8px}.table-footer{display:flex;align-items:center;justify-content:space-between;margin-top:var(--space-3);font-size:var(--text-sm);color:var(--color-text-muted)}.badge{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:999px;font-size:var(--text-xs);font-weight:600;line-height:1.6;white-space:nowrap;background:var(--color-surface-muted);color:var(--color-text-muted)}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.badge-urgent{background:var(--color-danger);color:#fff;letter-spacing:.04em;text-transform:uppercase}.badge-urgent:before{display:none}.badge-role-buyer{background:var(--color-info-bg);color:var(--color-info)}.badge-role-tenant{background:#ede9fe;color:#5b21b6}.badge-role-seller{background:var(--color-warning-bg);color:var(--color-warning)}.badge-role-landlord{background:var(--color-success-bg);color:var(--color-success)}.badge-list{display:inline-flex;flex-wrap:wrap;gap:var(--space-1)}.table-card tbody tr.row-urgent{background:color-mix(in srgb,var(--color-danger-bg) 45%,transparent)}.table-card tbody tr.row-urgent:hover{background:color-mix(in srgb,var(--color-danger-bg) 75%,transparent)}.table-card tbody tr.row-urgent td:first-child{box-shadow:inset 4px 0 0 var(--color-danger)}.match-tally{display:inline-flex;gap:var(--space-3)}.row-detail td{padding-top:0;background:var(--color-surface-muted);border-bottom:1px solid var(--color-border)}.table-card tbody tr.row-detail:hover{background:var(--color-surface-muted)}.criteria-list{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-6);margin:0;padding:var(--space-3) 0;list-style:none}.criteria-list li{display:inline-flex;align-items:flex-start;gap:var(--space-2);font-size:var(--text-sm)}.criteria-note{font-weight:600;color:var(--color-warning)}.install-steps{display:flex;flex-direction:column;gap:var(--space-3);margin:var(--space-2) 0 var(--space-5);padding-left:var(--space-6)}.install-steps li{font-size:var(--text-sm);line-height:1.5}.install-steps code{padding:.1em .4em;border-radius:var(--radius-sm);background:var(--color-surface-muted);font-size:.9em}.urgent-reason{color:var(--color-danger);font-size:var(--text-xs);font-weight:600}.title-line{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.form-group{margin-bottom:var(--space-6);padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-page)}.form-group-title{margin:0 0 var(--space-5);font-size:var(--text-md);font-weight:700}.badge-success{background:var(--color-success-bg);color:var(--color-success)}.badge-warning{background:var(--color-warning-bg);color:var(--color-warning)}.badge-danger{background:var(--color-danger-bg);color:var(--color-danger)}.badge-info{background:var(--color-info-bg);color:var(--color-info)}.badge-muted{background:var(--color-surface-muted);color:var(--color-text-muted)}.score{display:inline-flex;align-items:center;gap:var(--space-2);font-weight:700;font-variant-numeric:tabular-nums}.score-bar{width:56px;height:6px;border-radius:3px;background:var(--color-border);overflow:hidden}.score-bar>span{display:block;height:100%;border-radius:3px;background:var(--color-text-subtle)}.score-high .score-bar>span{background:var(--color-success)}.score-high{color:var(--color-success)}.score-mid{color:var(--color-text-muted)}.score-low .score-bar>span{background:var(--color-danger)}.score-low{color:var(--color-danger)}.list-card{display:block;width:100%;text-align:left;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);padding:14px 16px;transition:box-shadow var(--motion-base) ease,border-color var(--motion-base) ease}button.list-card{cursor:pointer}button.list-card:hover:not(:disabled){background:var(--color-surface);box-shadow:var(--shadow-md);border-color:var(--color-border-strong)}.list-card-group{display:flex;flex-direction:column;gap:var(--space-3)}.empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-12) var(--space-4);text-align:center;color:var(--color-text-muted);font-size:var(--text-base)}.empty-state-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:var(--color-primary-soft);color:var(--color-primary)}h1.empty-state-title{font-size:var(--text-lg)}.empty-state-title{margin:0;font-size:var(--text-md);font-weight:600;color:var(--color-text)}.empty-state-desc{max-width:420px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton{display:block;height:14px;border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--color-surface-muted) 25%,var(--color-border) 50%,var(--color-surface-muted) 75%);background-size:200% 100%;animation:shimmer 1.6s linear infinite}.error-state{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--space-5);border:1px solid var(--color-danger-border);background:var(--color-danger-bg);color:var(--color-danger);border-radius:var(--radius-md)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-overlay);background:#0f172a73;animation:overlay-in var(--motion-base) ease both}.dialog{position:fixed;z-index:var(--z-overlay);top:12vh;left:50%;width:min(440px,calc(100vw - 32px));background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-6);animation:dialog-in var(--motion-base) var(--ease-out) both}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@keyframes dialog-in{0%{opacity:0;transform:translate(-50%,6px) scale(.98)}to{opacity:1;transform:translate(-50%) scale(1)}}.dialog h2{margin:0 0 var(--space-2);font-size:var(--text-lg)}.dialog-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-6)}@keyframes slide-in{0%{transform:translate(24px);opacity:0}to{transform:translate(0);opacity:1}}.drawer{position:fixed;z-index:var(--z-overlay);top:0;right:0;bottom:0;width:min(640px,100vw);display:flex;flex-direction:column;background:var(--color-surface);box-shadow:var(--shadow-lg);animation:slide-in var(--motion-base) var(--ease-out)}.drawer-wide{width:min(900px,100vw)}.drawer .table-card thead th{top:0}.link-cell{min-height:0;padding:0;border:none;background:transparent;color:var(--color-primary);font:inherit;font-weight:600;text-align:left;justify-content:flex-start}.link-cell:hover:not(:disabled){background:transparent;text-decoration:underline}.drawer-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border)}.drawer-header h2{margin:0;font-size:var(--text-lg)}.drawer-body{flex:1;overflow-y:auto;padding:var(--space-6)}.drawer-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border);background:var(--color-surface)}.drawer-footer .form-error{margin-right:auto;padding:var(--space-2) var(--space-3)}.toast-region{position:fixed;left:50%;bottom:var(--space-6);z-index:var(--z-toast);display:flex;flex-direction:column;align-items:center;gap:var(--space-2);transform:translate(-50%);pointer-events:none}.toast{display:flex;align-items:center;gap:var(--space-3);min-width:280px;max-width:min(520px,calc(100vw - 32px));padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:#0f172a;color:#fff;box-shadow:var(--shadow-lg);pointer-events:auto;animation:slide-up var(--motion-base) var(--ease-out)}@keyframes slide-up{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}.toast svg:first-child{flex-shrink:0}.toast-success svg:first-child{color:#4ade80}.toast-error svg:first-child{color:#f87171}.toast-info svg:first-child{color:#7dd3fc}.toast-message{flex:1;font-size:var(--text-base)}.toast-action,.toast-close{min-height:0;padding:2px 6px;border:none;background:transparent;color:#7dd3fc;font-weight:700}.toast-close{color:#cbd5e1;padding:4px}.toast-action:hover:not(:disabled),.toast-close:hover:not(:disabled){background:#ffffff1f}.menu-wrap{position:relative;display:inline-block}.menu{position:absolute;right:0;top:calc(100% + 4px);z-index:var(--z-menu);min-width:176px;padding:var(--space-1);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.menu-item{display:flex;align-items:center;gap:var(--space-2);width:100%;min-height:34px;padding:6px 10px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text);font-size:var(--text-base);font-weight:500;text-align:left;justify-content:flex-start}.menu-item:hover:not(:disabled){background:var(--color-surface-muted)}.menu-item-danger{color:var(--color-danger)}.menu-item-danger:hover:not(:disabled){background:var(--color-danger-bg)}.menu-sep{height:1px;margin:var(--space-1) 0;background:var(--color-border)}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-4)}.kpi{display:flex;align-items:flex-start;gap:var(--space-4);padding:var(--space-5);text-align:left}.kpi-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0;border-radius:var(--radius-md);background:var(--color-primary-soft);color:var(--color-primary)}.kpi-value{font-size:30px;font-weight:800;line-height:1.1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.kpi-label{margin-top:var(--space-1);font-size:var(--text-base);color:var(--color-text-muted)}.kpi-icon-danger{background:var(--color-danger-bg);color:var(--color-danger)}a.kpi-link{color:inherit;text-decoration:none;transition:box-shadow var(--motion-base) ease,border-color var(--motion-base) ease,transform var(--motion-base) var(--ease-out)}a.kpi-link:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-md);transform:translateY(-2px);text-decoration:none}a.kpi-link .kpi-icon{transition:transform var(--motion-base) var(--ease-out)}a.kpi-link:hover .kpi-icon{transform:scale(1.08)}.dash-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:var(--space-5);margin-top:var(--space-6);align-items:start}.dash-stack{display:flex;flex-direction:column;gap:var(--space-5)}.list-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-5);color:inherit;text-decoration:none;border-bottom:1px solid var(--color-border)}.list-row:last-child{border-bottom:none}a.list-row:hover{background:var(--color-surface-muted);text-decoration:none}.list-row-urgent{box-shadow:inset 4px 0 0 var(--color-danger)}.card-empty{padding:var(--space-6) var(--space-5);text-align:center;color:var(--color-text-muted);font-size:var(--text-base)}.card-footer-link{display:block;padding:var(--space-3) var(--space-5);border-top:1px solid var(--color-border);font-size:var(--text-sm);font-weight:600;text-align:right}.kpi-hint{margin-top:var(--space-1);font-size:var(--text-xs);color:var(--color-text-subtle);overflow-wrap:anywhere}.period-filter{display:flex;align-items:flex-end;flex-wrap:wrap;gap:var(--space-3)}.period-custom{display:flex;align-items:flex-end;gap:var(--space-3)}.period-custom input[type=date]{width:auto;min-width:0;max-width:none}.bar-cell{display:inline-flex;align-items:center;justify-content:flex-end;gap:var(--space-2)}.bar-track{width:64px;height:6px;flex-shrink:0;border-radius:3px;background:var(--color-border);overflow:hidden}.bar-fill{display:block;height:100%;border-radius:3px;background:var(--color-primary)}.table-card tfoot td{padding:12px 16px;border-top:2px solid var(--color-border);background:var(--color-surface-muted);font-weight:700}.table-card tfoot td:first-child{border-bottom-left-radius:var(--radius-md)}.table-card tfoot td:last-child{border-bottom-right-radius:var(--radius-md)}.info-strip{display:flex;align-items:flex-start;gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--color-info-border);border-radius:var(--radius-md);background:var(--color-info-bg);color:var(--color-info);font-size:var(--text-sm)}.info-strip svg{flex-shrink:0;margin-top:2px}.report-controls{display:flex;align-items:flex-end;flex-wrap:wrap;gap:var(--space-4) var(--space-6);margin-bottom:var(--space-4)}.report-controls .toolbar-count{margin-left:auto}.tabs{display:flex;gap:var(--space-1);margin-bottom:var(--space-5);border-bottom:1px solid var(--color-border)}.tab{min-height:40px;padding:8px 16px;border:none;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--color-text-muted);font-weight:500;margin-bottom:-1px}.tab:hover:not(:disabled){background:transparent;color:var(--color-text)}.tab[aria-selected=true]{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}.tab-count{margin-left:var(--space-2);padding:0 7px;border-radius:999px;background:var(--color-surface-muted);color:var(--color-text-muted);font-size:var(--text-xs);font-weight:700}.tab[aria-selected=true] .tab-count{background:var(--color-primary-soft);color:var(--color-primary)}.password-field{position:relative;display:block}.password-field input{width:100%;max-width:none;min-width:0;padding-right:44px}.password-toggle{position:absolute;right:2px;top:50%;transform:translateY(-50%);min-height:32px;color:var(--color-text-muted)}.login-card-wrap{width:min(400px,100%);animation:login-card-in .48s var(--ease-out) both}.login-form{--tilt-x: 0deg;--tilt-y: 0deg;display:flex;flex-direction:column;gap:var(--space-4);width:100%;padding:var(--space-8);position:relative;z-index:1;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);transform:perspective(900px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));transition:transform .18s ease-out,box-shadow .18s ease-out}.login-form input:not([type=checkbox]){width:100%;max-width:none;min-width:0}.login-form h2{margin:0;font-size:var(--text-lg)}.login-form .btn-primary{min-height:42px;width:100%}.login-form .form-error{animation:shake-x .42s var(--ease-out)}@keyframes login-card-in{0%{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes shake-x{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-4px)}40%,60%{transform:translate(4px)}}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.settings-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:var(--space-5);align-items:start}.pwa-settings{grid-column:1 / -1}.pwa-block{display:flex;gap:var(--space-4);padding:var(--space-4) 0;border-top:1px solid var(--color-border)}.pwa-block:first-of-type{padding-top:0;border-top:none}.pwa-block-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0;border-radius:var(--radius-md);background:var(--color-primary-soft);color:var(--color-primary)}.pwa-block-body{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);min-width:0}.pwa-block-body p{margin:0;line-height:1.5}.tab-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}.contact-line{display:inline-flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-5)}.demand-list{display:flex;flex-direction:column;gap:var(--space-3)}.demand-card{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--space-5)}.demand-card-main{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.command{position:fixed;z-index:var(--z-overlay);top:12vh;left:50%;transform:translate(-50%);width:min(600px,calc(100vw - 32px));max-height:70vh;display:flex;flex-direction:column;overflow:hidden;background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.command-input{display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-4);border-bottom:1px solid var(--color-border);color:var(--color-text-muted)}.command-input input{flex:1;width:100%;max-width:none;min-width:0;min-height:52px;padding:0;border:none;background:transparent;font-size:var(--text-md);box-shadow:none}.command-input input:focus{box-shadow:none}.command-list{margin:0;padding:var(--space-2);list-style:none;overflow-y:auto}.command-group-title{padding:var(--space-3) var(--space-3) var(--space-1);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-subtle)}.command-item{display:flex;align-items:center;gap:var(--space-3);padding:10px var(--space-3);border-radius:var(--radius-sm);cursor:pointer}.command-item[aria-selected=true]{background:var(--color-primary-soft);color:var(--color-primary)}.command-item-label{flex:1;min-width:0;font-weight:500}.command-item-meta{font-size:var(--text-sm);color:var(--color-text-muted);white-space:nowrap}.command-empty{padding:var(--space-4) var(--space-5);color:var(--color-text-muted);font-size:var(--text-sm)}.command-footer{display:flex;gap:var(--space-5);padding:var(--space-2) var(--space-4);border-top:1px solid var(--color-border);background:var(--color-surface-muted);font-size:var(--text-xs);color:var(--color-text-muted)}.bell{position:relative;color:var(--color-text-muted)}.bell-badge{position:absolute;top:-2px;right:-2px;min-width:18px;padding:0 5px;border-radius:999px;background:var(--color-danger);color:#fff;font-size:11px;font-weight:700;line-height:18px;text-align:center}.popover{position:absolute;right:0;top:calc(100% + 6px);z-index:var(--z-menu);width:min(380px,calc(100vw - 32px));max-height:460px;overflow-y:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.popover-header{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-surface)}.popover-empty{padding:var(--space-6) var(--space-4);text-align:center;color:var(--color-text-muted);font-size:var(--text-sm)}.popover-list{margin:0;padding:0;list-style:none}.notification{display:flex;align-items:flex-start;gap:var(--space-3);width:100%;min-height:0;padding:var(--space-3) var(--space-4);border:none;border-bottom:1px solid var(--color-border);border-radius:0;background:var(--color-surface);font-weight:400;text-align:left;justify-content:flex-start}.notification-unread{background:var(--color-primary-soft)}.notification-dot{width:8px;height:8px;margin-top:6px;flex-shrink:0;border-radius:50%;background:transparent}.notification-unread .notification-dot{background:var(--color-primary)}.notification-body{display:flex;flex-direction:column;gap:2px;font-size:var(--text-sm)}.activity-day{margin-bottom:var(--space-5)}.activity-day-title{margin:0 0 var(--space-2);font-size:var(--text-sm);font-weight:700;letter-spacing:.02em;color:var(--color-text-muted)}.gallery{display:flex;gap:var(--space-3);margin-top:var(--space-5);padding-bottom:var(--space-1);overflow-x:auto}.gallery img{height:160px;flex-shrink:0;border-radius:var(--radius-md);object-fit:cover}.timeline{margin:0;padding:0;list-style:none}.timeline-item{display:flex;gap:var(--space-4);padding:var(--space-4) 0;border-bottom:1px solid var(--color-border)}.timeline-item:last-child{border-bottom:none}.timeline-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;flex-shrink:0;border-radius:50%;background:var(--color-surface-muted);color:var(--color-text-muted)}.timeline-body{min-width:0}.timeline-content{margin:var(--space-1) 0;white-space:pre-wrap;overflow-wrap:anywhere}.share-list{margin:0 0 var(--space-4);padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--space-2)}.share-list li{display:flex;align-items:center;gap:var(--space-3)}.share-name{font-weight:600}.share-add{display:flex;align-items:flex-end;flex-wrap:wrap;gap:var(--space-3)}.generated-block{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.generated-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-2)}.generated-title{font-size:var(--text-md);font-weight:700}.generated-text{white-space:pre-wrap;overflow-wrap:anywhere}.definition-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-5) var(--space-6)}.definition-term{font-size:var(--text-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-subtle)}.definition-value{margin-top:2px;font-weight:500}.app-shell{display:flex;min-height:100vh}.app-nav{width:var(--sidebar-w);flex-shrink:0;border-right:1px solid var(--color-border);padding:var(--space-5) var(--space-3);display:flex;flex-direction:column;background:var(--color-surface);position:sticky;top:0;align-self:flex-start;height:100vh;overflow-y:auto}.app-nav-brand{display:flex;align-items:center;gap:10px;padding:4px 10px 24px}.app-nav-logo{width:32px;height:32px;border-radius:9px;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;flex-shrink:0}.app-nav-brand-name{font-weight:700;font-size:var(--text-md);letter-spacing:-.01em}.app-nav-links{display:flex;flex-direction:column;gap:var(--space-5)}.app-nav-group{display:flex;flex-direction:column;gap:2px}.app-nav-group-label{padding:0 12px 6px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-subtle)}.app-nav-link{position:relative;display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--radius-sm);text-decoration:none;font-weight:500;font-size:var(--text-base);color:var(--color-text-muted);transition:background var(--motion-fast) ease,color var(--motion-fast) ease}.app-nav-link svg{flex-shrink:0}.app-nav-link:hover{background:var(--color-surface-muted);color:var(--color-text);text-decoration:none}.app-nav-link.active{color:var(--color-primary);background:var(--color-primary-soft);font-weight:600}.app-nav-link.active:before{content:"";position:absolute;left:-12px;top:50%;transform:translateY(-50%);width:3px;height:18px;border-radius:0 2px 2px 0;background:var(--color-primary)}.app-nav-footer{margin-top:auto;padding-top:var(--space-4);border-top:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.app-nav-user-name{padding:0 4px;font-size:var(--text-sm);font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-nav-logout{min-height:32px;min-width:32px;padding:0;background:none;border:none;color:var(--color-text-muted)}.app-nav-logout:hover:not(:disabled){background:var(--color-danger-bg);color:var(--color-danger)}.app-main{flex:1;min-width:0}.app-topbar{position:sticky;top:0;z-index:var(--z-topbar);display:flex;justify-content:flex-end;align-items:center;gap:var(--space-3);height:var(--topbar-h);padding:0 var(--space-8);background:var(--color-surface);border-bottom:1px solid var(--color-border)}.app-content{max-width:var(--content-max);margin:0 auto}.page{padding:var(--space-8)}.app-search-trigger{display:inline-flex;align-items:center;gap:var(--space-2);min-height:36px;border:1px solid var(--color-border-strong);background:var(--color-surface-muted);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:500;padding:6px 14px;border-radius:999px}.app-search-trigger:hover:not(:disabled){border-color:var(--color-text-subtle);background:var(--color-surface-muted)}.kbd{padding:1px 6px;border-radius:4px;border:1px solid var(--color-border-strong);background:var(--color-surface);font-size:11px;font-weight:600;color:var(--color-text-muted)}.login-shell{position:relative;display:flex;min-height:100vh}.login-brand{--mx: 0;--my: 0;position:relative;z-index:1;flex:1;background:var(--color-primary);color:#fff;display:flex;flex-direction:column;justify-content:center;padding:64px;overflow:hidden}.login-shape{position:absolute;pointer-events:none;opacity:0;animation:shape-in .7s var(--ease-out) both;transition:transform .2s ease-out}.login-shape-circle-lg{width:440px;height:440px;right:-150px;bottom:-170px;border-radius:50%;background:color-mix(in srgb,var(--color-primary-hover) 65%,transparent);transform:translate(calc(var(--mx) * 10px),calc(var(--my) * 10px));animation-delay:60ms}.login-shape-square{width:150px;height:150px;right:80px;top:56px;border-radius:28px;background:#ffffff14;transform:rotate(18deg) translate(calc(var(--mx) * 22px),calc(var(--my) * 22px));animation-delay:.16s}.login-shape-circle-sm{width:76px;height:76px;left:58%;bottom:84px;border-radius:50%;background:#ffffff1f;transform:translate(calc(var(--mx) * 32px),calc(var(--my) * 32px));animation-delay:.26s}.login-shape-ring{width:128px;height:128px;left:-34px;top:32%;border-radius:50%;border:1.5px solid rgba(255,255,255,.2);transform:translate(calc(var(--mx) * 16px),calc(var(--my) * 16px));animation-delay:.34s}@keyframes shape-in{0%{opacity:0}to{opacity:1}}.login-brand-logo{width:44px;height:44px;border-radius:12px;background:#ffffff26;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:19px;animation:brand-in .5s var(--ease-out) both}.login-brand-title{position:relative;font-size:34px;font-weight:800;letter-spacing:-.02em;margin:24px 0 14px;color:#fff;animation:brand-in .55s var(--ease-out) 80ms both}.login-brand-title:after{content:"";position:absolute;left:1px;bottom:-2px;width:0;height:3px;border-radius:2px;background:#ffffff8c;animation:underline-grow .42s var(--ease-out) .56s both}@keyframes underline-grow{to{width:56px}}.login-brand-sub{font-size:15px;opacity:.9;max-width:360px;line-height:1.6;margin-bottom:40px;animation:brand-in .55s var(--ease-out) .16s both}@keyframes brand-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.login-brand-points{display:flex;flex-direction:column;gap:16px;position:relative}.login-brand-point{display:flex;align-items:center;gap:12px;font-size:var(--text-base);animation:brand-in .5s var(--ease-out) both}.login-brand-point:nth-child(1){animation-delay:.24s}.login-brand-point:nth-child(2){animation-delay:.32s}.login-brand-point:nth-child(3){animation-delay:.4s}.login-brand-point-icon{flex-shrink:0;background:#ffffff26;border-radius:8px;width:30px;height:30px;display:flex;align-items:center;justify-content:center}.login-form-panel{position:relative;z-index:1;flex:1;display:flex;align-items:center;justify-content:center;background:var(--color-page);padding:24px}@media (max-width: 860px){.login-brand{display:none}.login-shell{background:var(--color-page)}}.toggle-text{display:none}.appt-showing{--appt-color: var(--color-primary);--appt-bg: var(--color-primary-soft)}.appt-meeting{--appt-color: var(--color-info);--appt-bg: var(--color-info-bg)}.appt-call{--appt-color: #5b21b6;--appt-bg: #ede9fe}.appt-contract{--appt-color: var(--color-warning);--appt-bg: var(--color-warning-bg)}.appt-other{--appt-color: var(--color-text-subtle);--appt-bg: var(--color-surface-muted)}.appt-status-done{opacity:.7}.appt-status-cancelled,.appt-status-no_show{opacity:.55}.appt-status-cancelled .cal-chip-title,.appt-status-cancelled .cal-event-title,.appt-status-cancelled .appt-title-text,.appt-status-no_show .cal-chip-title,.appt-status-no_show .cal-event-title,.appt-status-no_show .appt-title-text{text-decoration:line-through}.cal-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}.cal-nav,.cal-controls{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.cal-title{margin:0 0 0 var(--space-2);font-size:var(--text-lg);text-transform:capitalize}.cal-controls select{width:auto;min-width:0;max-width:none}.cal-legend{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-4);margin:0 0 var(--space-4);padding:0;list-style:none;font-size:var(--text-sm);color:var(--color-text-muted)}.cal-legend li{display:inline-flex;align-items:center;gap:var(--space-2)}.cal-legend-swatch{width:10px;height:10px;border-radius:3px;background:var(--appt-color)}.cal-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-xs);overflow:hidden}.cal-dow{padding:var(--space-2);background:var(--color-surface-muted);border-bottom:1px solid var(--color-border);font-size:var(--text-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;text-align:center;color:var(--color-text-muted)}.cal-day{position:relative;min-height:118px;padding:var(--space-1) var(--space-1) var(--space-2);border-top:1px solid var(--color-border);border-left:1px solid var(--color-border);cursor:pointer}.cal-day:nth-child(7n+8){border-left:none}.cal-dow+.cal-day{border-top:none}.cal-day:hover{background:var(--color-surface-muted)}.cal-day-out{background:color-mix(in srgb,var(--color-surface-muted) 55%,transparent);color:var(--color-text-subtle)}.cal-day-selected{box-shadow:inset 0 0 0 2px var(--color-primary)}.cal-day-head{display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-1)}.cal-day-num{min-height:0;min-width:26px;height:26px;padding:0 6px;border:none;border-radius:999px;background:transparent;color:inherit;font-size:var(--text-sm);font-weight:600}.cal-day-num:hover:not(:disabled){background:var(--color-border)}.cal-day-today .cal-day-num{background:var(--color-primary);color:var(--color-on-primary)}.cal-add{min-height:0;width:22px;height:22px;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-subtle);opacity:0}.cal-day:hover .cal-add,.cal-add:focus-visible{opacity:1}.cal-chips{display:flex;flex-direction:column;gap:2px;margin-top:var(--space-1)}.cal-chip{display:flex;align-items:baseline;gap:var(--space-1);width:100%;min-height:0;padding:2px 6px;border:none;border-left:3px solid var(--appt-color);border-radius:4px;background:var(--appt-bg);color:var(--color-text);font-size:var(--text-xs);font-weight:500;text-align:left;justify-content:flex-start}.cal-chip:hover:not(:disabled){background:var(--appt-bg);filter:brightness(.96)}.cal-chip-time{flex-shrink:0;font-weight:700;font-variant-numeric:tabular-nums}.cal-chip-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-more{min-height:0;padding:1px 6px;border:none;background:transparent;color:var(--color-primary);font-size:var(--text-xs);font-weight:600;justify-content:flex-start}.cal-more:hover:not(:disabled){background:transparent;text-decoration:underline}.cal-dots{display:none}.cal-dot{width:6px;height:6px;border-radius:50%;background:var(--appt-color)}.cal-week{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-xs);overflow:hidden}.cal-week-head,.cal-week-body{display:grid;grid-template-columns:56px repeat(7,minmax(0,1fr))}.cal-week-head{border-bottom:1px solid var(--color-border);background:var(--color-surface-muted)}.cal-week-dow{display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--space-2) 0;border-left:1px solid var(--color-border);font-size:var(--text-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted)}.cal-week-dow strong{font-size:var(--text-md);letter-spacing:0;color:var(--color-text)}.cal-week-today strong{min-width:28px;padding:1px 6px;border-radius:999px;background:var(--color-primary);color:var(--color-on-primary);text-align:center}.cal-week-body{max-height:calc(100dvh - 330px);min-height:320px;overflow-y:auto}.cal-hour-label{padding:0 var(--space-2);font-size:var(--text-xs);text-align:right;color:var(--color-text-subtle);transform:translateY(-8px)}.cal-col{position:relative;border-left:1px solid var(--color-border);background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 51px,var(--color-border) 51px,var(--color-border) 52px);cursor:cell}.cal-event{position:absolute;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:0;min-height:0;padding:2px 6px;overflow:hidden;border:none;border-left:3px solid var(--appt-color);border-radius:4px;background:var(--appt-bg);color:var(--color-text);font-size:var(--text-xs);font-weight:500;text-align:left;line-height:1.3;box-shadow:var(--shadow-xs);cursor:pointer}.cal-event:hover:not(:disabled){background:var(--appt-bg);filter:brightness(.96)}.cal-event-time{font-weight:700;font-variant-numeric:tabular-nums}.cal-event-title{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-now{position:absolute;left:0;right:0;height:2px;background:var(--color-danger);pointer-events:none}.cal-now:before{content:"";position:absolute;left:-4px;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--color-danger)}.agenda{display:flex;flex-direction:column;gap:var(--space-5)}.agenda-day-title{display:flex;align-items:center;gap:var(--space-2);margin:0 0 var(--space-2);font-size:var(--text-base);font-weight:700;text-transform:capitalize;color:var(--color-text-muted)}.agenda-day-today{color:var(--color-primary)}.agenda-list{overflow:hidden}.appt-row{display:flex;align-items:stretch;gap:var(--space-2);border-left:4px solid var(--appt-color);border-bottom:1px solid var(--color-border)}.appt-row:last-child{border-bottom:none}.appt-row-main{flex:1;display:flex;align-items:flex-start;justify-content:flex-start;gap:var(--space-4);min-width:0;padding:var(--space-3) var(--space-4);border:none;border-radius:0;background:transparent;font-weight:400;text-align:left}.appt-row-main:hover:not(:disabled){background:var(--color-surface-muted)}.appt-time{display:flex;flex-direction:column;flex-shrink:0;min-width:52px;font-variant-numeric:tabular-nums}.appt-time strong{font-size:var(--text-md)}.appt-time-end,.appt-date{font-size:var(--text-xs);color:var(--color-text-subtle)}.appt-body{display:flex;flex-direction:column;gap:2px;min-width:0}.appt-title{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);font-weight:600}.appt-title svg{flex-shrink:0;color:var(--appt-color)}.appt-meta{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-sm);color:var(--color-text-muted);overflow-wrap:anywhere}.appt-actions{align-self:center;padding-right:var(--space-3)}.appt-quick{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-5)}.appt-conflict{display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--color-warning-border);border-radius:var(--radius-md);background:var(--color-warning-bg);color:var(--color-warning);font-size:var(--text-sm)}.appt-conflict svg{flex-shrink:0;margin-top:2px}.appt-conflict ul{margin:var(--space-1) 0 0;padding-left:var(--space-4)}.appt-delete{margin-right:auto}.appt-sections{display:flex;flex-direction:column;gap:var(--space-5)}.appt-section-title{margin:0 0 var(--space-2);font-size:var(--text-base);color:var(--color-text-muted)}.tab-intro{margin-bottom:var(--space-4)}.cal-day-panel{margin-top:var(--space-4);overflow:hidden}.mobile-nav,.sheet,.app-topbar-brand,.login-mobile-brand{display:none}@media (max-width: 860px){.login-mobile-brand{display:flex;align-items:center;gap:var(--space-2)}.login-shell{min-height:100dvh}.login-form-panel{padding:var(--space-4)}.login-form{padding:var(--space-6) var(--space-5)}}@keyframes sheet-up{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}@media (max-width: 900px){:root{--bottom-nav-h: 60px}.app-shell{min-height:100dvh}.app-nav{display:none}.app-topbar{height:calc(var(--topbar-h) + env(safe-area-inset-top));padding:env(safe-area-inset-top) var(--space-4) 0}.app-topbar-brand{display:flex;align-items:center;min-height:44px;gap:var(--space-2);margin-right:auto;color:var(--color-text);text-decoration:none}.app-topbar-brand:hover{text-decoration:none}.app-search-label,.app-search-trigger .kbd{display:none}.app-search-trigger{width:44px;height:44px;min-height:44px;padding:0;justify-content:center;border-radius:50%}.app-main{padding-bottom:calc(var(--bottom-nav-h) + env(safe-area-inset-bottom))}.mobile-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:fixed;left:0;right:0;bottom:0;z-index:var(--z-topbar);padding-bottom:env(safe-area-inset-bottom);background:var(--color-surface);border-top:1px solid var(--color-border);box-shadow:0 -2px 12px #0f172a0f}.mobile-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:var(--bottom-nav-h);padding:6px 2px;border:none;border-radius:0;background:transparent;color:var(--color-text-subtle);font-size:11px;font-weight:600;text-decoration:none}.mobile-nav-item:hover:not(:disabled){background:transparent;text-decoration:none}.mobile-nav-item.active{color:var(--color-primary)}.mobile-nav-item svg{box-sizing:content-box;padding:3px 14px;border-radius:999px}.mobile-nav-item.active svg{background:var(--color-primary-soft)}.sheet{display:flex;flex-direction:column;position:fixed;left:0;right:0;bottom:0;z-index:var(--z-overlay);max-height:88dvh;background:var(--color-surface);border-radius:16px 16px 0 0;box-shadow:var(--shadow-lg);animation:sheet-up var(--motion-base) var(--ease-out)}.sheet-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4) var(--space-2) var(--space-5);font-size:var(--text-md)}.sheet-body{display:flex;flex-direction:column;gap:var(--space-3);overflow-y:auto;padding:0 var(--space-3) var(--space-4)}.sheet .app-nav-link{min-height:44px;font-size:15px}.sheet .app-nav-link.active:before{display:none}.sheet-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom));border-top:1px solid var(--color-border)}.page{padding:var(--space-5) var(--space-4)}.dash-grid,.settings-grid{grid-template-columns:minmax(0,1fr)}.popover{position:fixed;left:var(--space-3);right:var(--space-3);top:calc(var(--topbar-h) + env(safe-area-inset-top) + var(--space-2));width:auto;max-height:calc(100dvh - var(--topbar-h) - var(--bottom-nav-h) - var(--space-8) - env(safe-area-inset-top) - env(safe-area-inset-bottom))}.toast-region{bottom:calc(var(--bottom-nav-h) + env(safe-area-inset-bottom) + var(--space-3))}}@media (max-width: 640px){h1{font-size:var(--text-lg)}.page-title-block{flex-basis:100%}.page-header{gap:var(--space-3);margin-bottom:var(--space-4)}.page-actions{flex-wrap:wrap;width:100%}.page-actions>.btn-primary,.page-actions>button:not(.btn-icon):not(.icon-action){flex:1 1 auto}.page-actions:has(>.menu-wrap)>button:not(.btn-icon):not(.icon-action){flex:1 1 calc(50% - var(--space-1))}.page-actions>.menu-wrap{flex:0 0 auto}.toolbar{gap:var(--space-2)}.search-input{flex:1 1 100%;min-width:0;max-width:none}.toolbar select{flex:1 1 calc(50% - var(--space-2));min-width:0}.toolbar .chip-group,.period-filter .chip-group{display:flex;flex-wrap:nowrap;width:100%;margin-inline:calc(var(--space-4) * -1);padding-inline:var(--space-4);overflow-x:auto;scrollbar-width:none}.toolbar .chip-group::-webkit-scrollbar,.period-filter .chip-group::-webkit-scrollbar{display:none}.report-controls>*,.toolbar>*{min-width:0;max-width:100%}.period-filter{display:block;flex:1 1 100%}.period-custom{margin-top:var(--space-3)}.period-custom .field{flex:1 1 0}.period-custom input[type=date]{width:100%}.kpi-value{font-size:clamp(18px,5.4vw,24px)}.chip{flex-shrink:0;white-space:nowrap}.toolbar-count{margin-left:0;flex-basis:100%}.tabs{overflow-x:auto;scrollbar-width:none;margin-inline:calc(var(--space-4) * -1);padding-inline:var(--space-4)}.tabs::-webkit-scrollbar{display:none}.tab{flex-shrink:0;white-space:nowrap}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.kpi{flex-direction:column;gap:var(--space-2);padding:var(--space-3) var(--space-4)}.card-body{padding:var(--space-4)}.card-header,.list-row{padding:var(--space-3) var(--space-4)}.definition-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.period-filter,.report-controls{align-items:stretch}.period-custom,.tab-toolbar,.demand-card{flex-wrap:wrap}.col-8,.col-6,.col-4{grid-column:span 12}.col-3{grid-column:span 6}.form-section{padding-bottom:var(--space-5);margin-bottom:var(--space-5)}.drawer,.drawer-wide{width:100vw;animation-name:sheet-up}.drawer-header{padding:var(--space-3) var(--space-4)}.drawer-body{padding:var(--space-4)}.drawer-footer{flex-wrap:wrap;padding:var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom))}.drawer-footer .form-error{flex-basis:100%;margin-right:0}.drawer-footer>button{flex:1 1 0}.dialog{top:auto;bottom:0;left:0;transform:none;width:100%;max-height:92dvh;overflow-y:auto;border-radius:16px 16px 0 0;padding:var(--space-5) var(--space-4) calc(var(--space-4) + env(safe-area-inset-bottom));animation:sheet-up var(--motion-base) var(--ease-out)}.dialog-actions{flex-direction:column-reverse;align-items:stretch}.command{top:calc(env(safe-area-inset-top) + var(--space-2));width:calc(100vw - var(--space-4));max-height:calc(100dvh - var(--space-4) - env(safe-area-inset-top))}.toast{min-width:0;width:calc(100vw - var(--space-8))}.table-footer{flex-direction:column;align-items:stretch;gap:var(--space-2)}.table-footer .row-actions{flex-wrap:wrap;justify-content:space-between}.page-size{margin-right:0}}@media (max-width: 900px){.table-card{border:none;box-shadow:none;background:transparent}.table-card table,.table-card tbody,.table-card tfoot,.table-card tr,.table-card td{display:block;width:auto}.table-card tbody,.table-card tfoot{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-3)}.table-card tfoot{margin-top:var(--space-3)}.table-card tr.row-detail{grid-column:1 / -1}.table-card thead{position:absolute;width:1px;height:1px;overflow:hidden;visibility:hidden}.table-card tbody tr,.table-card tbody tr:nth-child(2n),.table-card tfoot tr{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-xs);overflow:hidden}.table-card td,.table-card tfoot td{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);padding:0;border:none;text-align:right}.table-card tbody tr:not(:last-child) td{border-bottom:none}.table-card td[data-label]:not([data-label=""]):before{content:attr(data-label);flex-shrink:0;max-width:45%;text-align:left;font-size:var(--text-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-subtle)}.table-card td:empty{display:none}.table-card td.cell-primary,.table-card td.cell-title{display:block;order:-1;text-align:left;font-size:var(--text-md)}.table-card td.cell-primary:before,.table-card td.cell-title:before,.table-card td.cell-actions:before{display:none}.table-card td.cell-toggle{order:100;justify-content:center}.table-card td.cell-toggle:before{display:none}.table-card td.cell-toggle .btn-icon{width:100%;color:var(--color-primary)}.toggle-text{display:inline}.table-card tbody tr{position:relative}.table-card td.cell-actions:has(>.menu-wrap:only-child){position:absolute;top:var(--space-2);right:var(--space-2);width:auto;margin:0;padding:0;border:none}.table-card tr:has(>td.cell-actions>.menu-wrap:only-child)>td.cell-title{padding-right:48px}.table-card td.cell-actions{width:auto;justify-content:flex-end;flex-wrap:wrap;margin-top:var(--space-1);padding-top:var(--space-2);border-top:1px solid var(--color-border);white-space:normal}.table-card td .cell-stack{align-items:flex-end}.table-card td.cell-primary .cell-stack,.table-card td.cell-title .cell-stack{align-items:flex-start}.table-card tbody tr.row-urgent{background:color-mix(in srgb,var(--color-danger-bg) 45%,var(--color-surface));box-shadow:inset 4px 0 0 var(--color-danger)}.table-card tbody tr.row-urgent td:first-child{box-shadow:none}.table-card tr.row-detail,.table-card tbody tr.row-detail:hover{background:var(--color-surface-muted)}.table-card tfoot tr{background:var(--color-surface-muted);border-top:2px solid var(--color-border)}.table-card tfoot td:first-child,.table-card tfoot td:last-child{border-radius:0}.drawer .table-card{background:transparent}}@media (min-width: 641px) and (max-width: 900px){.table-card tbody{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 901px) and (max-width: 1180px){.table-card{position:relative;overflow-x:auto}.table-card thead th{position:static}}@media (max-width: 900px),(pointer: coarse){button,.btn,.btn-sm,.btn-icon{min-height:44px}.btn-icon{min-width:44px}.icon-action{width:44px;height:44px}input:not([type=checkbox]):not([type=radio]),select,textarea{min-height:44px;font-size:16px}input[type=checkbox],input[type=radio]{width:22px;height:22px}.check{min-height:44px}.chip{min-height:40px;padding-inline:14px}.command-footer{display:none}.command-item,.tab,.menu-item,.th-sort,.link-cell,.toast-action,.toast-close,.password-toggle,.page-size select{min-height:44px}}@media (max-width: 900px){.cal-toolbar{align-items:stretch}.cal-nav{width:100%}.cal-title{flex-basis:100%;margin:var(--space-1) 0 0;font-size:var(--text-md)}.cal-controls{width:100%}.cal-controls select{flex:1 1 100%}.cal-day{min-height:58px;padding:0;text-align:center}.cal-day-head{justify-content:center;padding:0}.cal-add,.cal-chips{display:none}.cal-day-num{width:100%;height:44px;min-height:44px;border-radius:0;font-size:var(--text-base)}.cal-day-num:hover:not(:disabled){background:transparent}.cal-day-today .cal-day-num{background:transparent;color:var(--color-primary);font-weight:800}.cal-day-selected{background:var(--color-primary-soft);box-shadow:none}.cal-dots{display:flex;justify-content:center;gap:3px;margin-top:-6px;padding-bottom:6px}.appt-actions{padding-right:var(--space-2)}}@media (max-width: 640px){.cal-legend{display:none}.appt-row-main{gap:var(--space-3);padding:var(--space-3)}.appt-time{min-width:44px}.appt-delete{flex:0 0 auto}}
