:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:#1f2937;background:#f5f6f8}body{margin:0}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.auth-card{width:100%;max-width:360px;background:#fff;border-radius:12px;padding:28px 24px;box-shadow:0 1px 3px #00000014}.auth-card h1{font-size:19px;margin:0 0 4px;text-align:center}.muted{color:#6b7280;font-size:13px;text-align:center;margin:0 0 20px}.field{display:block;margin-bottom:14px}.field span{display:block;font-size:12.5px;color:#4b5563;margin-bottom:4px}.field input{width:100%;box-sizing:border-box;padding:9px 11px;border:1px solid #d1d5db;border-radius:7px;font-size:14px}.field input:focus{outline:none;border-color:#2563eb}.checkbox-field{display:flex;align-items:center;gap:8px;font-size:13px;margin-bottom:16px}button[type=submit],.auth-card>button{width:100%;padding:10px;background:#2563eb;color:#fff;border:none;border-radius:7px;font-size:14px;font-weight:500;cursor:pointer;margin-top:4px}button[type=submit]:disabled{background:#93c5fd;cursor:not-allowed}.error{color:#b91c1c;font-size:13px;margin:0 0 14px}.checklist{list-style:none;padding:0;margin:4px 0 16px;font-size:12.5px;color:#9ca3af}.checklist li:before{content:"○ "}.checklist li.ok{color:#15803d}.checklist li.ok:before{content:"✓ "}.terms-text{border:1px solid #e5e7eb;border-radius:8px;padding:12px 14px;height:140px;overflow-y:auto;font-size:12.5px;color:#4b5563;line-height:1.55;margin-bottom:14px}.terms-text p{margin:0 0 10px}.app-shell{display:flex;min-height:100vh}.sidebar{width:220px;flex-shrink:0;box-sizing:border-box;background:#111827;color:#e5e7eb;padding:18px 12px}.sidebar-brand{display:flex;align-items:center;gap:10px;font-weight:600;font-size:15px;color:#fff;padding:0 6px 18px}.sidebar-logo{width:26px;height:26px;border-radius:7px;background:#2563eb}.sidebar-context{background:#1f2937;border-radius:8px;padding:10px 12px;margin-bottom:16px}.sidebar-context small{display:block;color:#9ca3af;font-size:11px;margin-bottom:2px}.sidebar-context strong{color:#fff;font-size:13.5px}.sidebar-link{display:block;padding:9px 12px;border-radius:7px;margin-bottom:2px;color:#d1d5db;text-decoration:none;font-size:13.5px}.sidebar-link:hover{background:#1f2937}.sidebar-link.active{background:#2563eb;color:#fff;font-weight:600}.app-main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:52px;background:#fff;border-bottom:1px solid #e5e7eb;display:flex;align-items:center;justify-content:space-between;padding:0 24px}.topbar-title{font-size:13.5px;color:#374151}.topbar-user{display:flex;align-items:center;gap:10px;font-size:13px;color:#374151}.avatar{width:30px;height:30px;border-radius:50%;background:#dbeafe;color:#1d4ed8;font-weight:600;font-size:13px;display:flex;align-items:center;justify-content:center}.btn-link{background:none;border:none;color:#6b7280;font-size:13px;cursor:pointer;padding:4px 6px}.btn-link:hover{color:#b91c1c}.app-content{flex:1;padding:24px 28px}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.page-header h1{font-size:21px;margin:0 0 4px}.page-header p{margin:0;color:#6b7280;font-size:13px}.btn-primary{display:inline-block;padding:9px 16px;border:none;border-radius:7px;background:#2563eb;color:#fff;font-size:13.5px;font-weight:500;text-decoration:none;cursor:pointer}.btn-primary:hover{background:#1d4ed8}.card{background:#fff;border-radius:12px;padding:24px;max-width:440px;box-shadow:0 1px 3px #00000014}.card h1{font-size:18px;margin:0 0 4px}.card .muted{text-align:left;margin:0 0 20px}.card button[type=submit]{width:auto;padding:9px 18px}.back-link{display:inline-block;margin-top:14px;color:#6b7280;font-size:13px;text-decoration:none}.back-link:hover{color:#374151}.data-table{width:100%;border-collapse:collapse;font-size:13.5px}.data-table th{text-align:left;padding:10px 12px;border-bottom:2px solid #e5e7eb;color:#6b7280;font-weight:500;font-size:12.5px}.data-table td{padding:10px 12px;border-bottom:1px solid #f3f4f6}.data-table tr:last-child td{border-bottom:none}.clickable-row{cursor:pointer}.clickable-row:hover{background:#f9fafb}.field select{width:100%;box-sizing:border-box;padding:9px 11px;border:1px solid #d1d5db;border-radius:7px;font-size:14px;background:#fff}.field select:focus{outline:none;border-color:#2563eb}.field textarea{width:100%;box-sizing:border-box;padding:9px 11px;border:1px solid #d1d5db;border-radius:7px;font-size:14px;font-family:inherit;line-height:1.5;resize:vertical}.field textarea:focus{outline:none;border-color:#2563eb}.sidebar{transition:width .2s ease,padding .2s ease}.sidebar.collapsed{width:64px;padding:18px 8px}.sidebar-link{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.collapse-toggle{background:none;border:none;cursor:pointer;color:#6b7280;padding:4px 8px;font-size:16px;border-radius:6px}.collapse-toggle:hover{background:#f3f4f6;color:#374151}.btn-secondary{display:inline-block;padding:9px 16px;border:1px solid #d1d5db;border-radius:7px;background:#fff;color:#374151;font-size:13.5px;font-weight:500;text-decoration:none;cursor:pointer}.btn-secondary:hover{background:#f9fafb}.table-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.table-toolbar input,.table-toolbar select{width:auto;padding:8px 11px;border:1px solid #d1d5db;border-radius:7px;font-size:13.5px;background:#fff;box-sizing:border-box}.table-toolbar input[type=search]{flex:1 1 240px;max-width:320px}.table-toolbar .count{margin-left:auto;color:#6b7280;font-size:13px}.data-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.data-table th.sortable:hover{color:#374151}.data-table .row-arrow{color:#9ca3af;text-align:right;width:24px;font-size:16px}.clickable-row:focus-visible{outline:2px solid #2563eb;outline-offset:-2px}.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:500;white-space:nowrap}.badge-ok{background:#dcfce7;color:#15803d}.badge-warn{background:#ffedd5;color:#c2410c}.badge-muted{background:#f3f4f6;color:#6b7280}.tabs{display:flex;gap:4px;border-bottom:1px solid #e5e7eb;margin:0 0 20px;overflow-x:auto}.tab{width:auto;background:none;border:none;border-bottom:2px solid transparent;border-radius:0;margin-bottom:-1px;padding:10px 14px;font-size:14px;color:#6b7280;cursor:pointer;white-space:nowrap}.tab:hover{color:#374151;background:none}.tab.active{color:#2563eb;border-bottom-color:#2563eb;font-weight:500}.tab-count{margin-left:6px;font-size:12px;color:#9ca3af}.tab.active .tab-count{color:#2563eb}.generate-layout{display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap}.generate-layout>.card{flex:0 1 520px;margin:0}.preview-panel{flex:1 1 420px;position:sticky;top:16px;height:calc(100vh - 110px);min-height:480px;display:flex;flex-direction:column;gap:10px;background:#fff;border-radius:12px;padding:14px;box-shadow:0 1px 3px #0000000f}.preview-header{display:flex;justify-content:space-between;align-items:center;font-size:14px}.preview-panel iframe{flex:1;width:100%;border:1px solid #e5e7eb;border-radius:6px;background:#f9fafb;transition:opacity .2s}.preview-empty{text-align:left;margin:8px 0}.preview-message{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:6px;padding:8px 12px;font-size:13px}.preview-message ul{margin:4px 0 0;padding-left:18px}@media (max-width: 1100px){.preview-panel{position:static;height:80vh}}.confirm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;background:#0f172a73;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:confirm-fade .15s ease-out}.confirm-dialog{width:min(440px,100%);background:#fff;border-radius:14px;box-shadow:0 20px 50px #0f172a40,0 2px 6px #0f172a14;overflow:hidden;animation:confirm-pop .18s cubic-bezier(.2,.9,.3,1.2)}.confirm-body{display:flex;gap:14px;padding:22px 22px 18px}.confirm-body h2{margin:2px 0 6px;font-size:16px;font-weight:700;color:#111827}.confirm-body p{margin:0;font-size:14px;line-height:1.55;color:#4b5563}.confirm-icon{flex:0 0 40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center}.confirm-actions{display:flex;justify-content:flex-end;gap:10px;padding:12px 22px;background:#f9fafb;border-top:1px solid #f1f5f9}.confirm-actions button{width:auto;padding:8px 16px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s,box-shadow .15s}.confirm-actions button:focus-visible{outline:none;box-shadow:0 0 0 3px #2563eb4d}.confirm-cancel{background:#fff;color:#374151;border:1px solid #d1d5db}.confirm-cancel:hover{background:#f3f4f6}.confirm-ok{border:1px solid transparent;color:#fff}.confirm-default .confirm-icon{background:#dbeafe;color:#2563eb}.confirm-default .confirm-ok{background:#2563eb}.confirm-default .confirm-ok:hover{background:#1d4ed8}.confirm-warning .confirm-icon{background:#fef3c7;color:#d97706}.confirm-warning .confirm-ok{background:#d97706}.confirm-warning .confirm-ok:hover{background:#b45309}.confirm-danger .confirm-icon{background:#fee2e2;color:#dc2626}.confirm-danger .confirm-ok{background:#dc2626}.confirm-danger .confirm-ok:hover{background:#b91c1c}.confirm-danger .confirm-ok:focus-visible{box-shadow:0 0 0 3px #dc26264d}@keyframes confirm-fade{0%{opacity:0}to{opacity:1}}@keyframes confirm-pop{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.confirm-backdrop,.confirm-dialog{animation:none}}.sidebar-link{display:flex;align-items:center;gap:12px;padding:10px 12px;font-size:14px}.sidebar-link svg{flex-shrink:0}.sidebar-link .sidebar-label{flex:1;overflow:hidden;text-overflow:ellipsis}.sidebar.collapsed .sidebar-link{justify-content:center;padding:10px 0;position:relative}.sidebar.collapsed .sidebar-link .sidebar-label,.sidebar.collapsed .sidebar-link .sidebar-badge{display:none}.sidebar.collapsed .sidebar-link .sidebar-dot{display:block}.sidebar-badge{border-radius:999px;color:#fff;font-size:11px;font-weight:700;padding:1px 7px;line-height:16px}.sidebar-dot{display:none;position:absolute;top:6px;right:12px;width:8px;height:8px;border-radius:50%}.sidebar-context{display:flex;align-items:center;gap:10px}.sidebar-context svg{color:#9ca3af;flex-shrink:0}.sidebar.collapsed .sidebar-context{display:none}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:16px}.stat-card{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid #eef0f3;border-radius:12px;padding:16px 16px 16px 18px;text-decoration:none;color:inherit;box-shadow:0 1px 2px #1018280a;transition:box-shadow .15s ease,transform .15s ease}a.stat-card:hover{box-shadow:0 4px 12px #10182814;transform:translateY(-1px)}.stat-card .stat-text{flex:1;min-width:0}.stat-card .stat-label{font-size:13px;color:#4b5563;margin-bottom:4px}.stat-card .stat-value{font-size:26px;font-weight:700;line-height:1.1}.stat-card .stat-chevron{color:#9ca3af}.icon-circle{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0}.tone-blue{--tone: #2563eb;--tone-soft: #eff6ff}.tone-green{--tone: #16a34a;--tone-soft: #ecfdf5}.tone-amber{--tone: #d97706;--tone-soft: #fffbeb}.tone-red{--tone: #dc2626;--tone-soft: #fef2f2}.tone-purple{--tone: #7c3aed;--tone-soft: #f5f3ff}.tone-gray{--tone: #6b7280;--tone-soft: #f3f4f6}.icon-circle[class*=tone-]{background:var(--tone-soft);color:var(--tone)}.priority-banner{display:flex;gap:18px;align-items:stretch;border-radius:12px;padding:16px 18px;margin-bottom:16px;border:1px solid var(--tone-border, #fde68a);background:var(--tone-soft, #fffbeb)}.priority-banner.tone-red{--tone-border: #fecaca}.priority-banner.tone-amber{--tone-border: #fde68a}.priority-banner.tone-green{--tone-border: #bbf7d0}.priority-banner .banner-head{display:flex;gap:12px;align-items:flex-start;min-width:240px;max-width:320px}.priority-banner .banner-head svg{color:var(--tone);flex-shrink:0;margin-top:2px}.priority-banner .banner-title{font-weight:700;font-size:15px;margin-bottom:2px}.priority-banner .banner-sub{font-size:13px;color:#4b5563}.priority-banner .banner-items{flex:1;display:flex;flex-direction:column;gap:8px;border-left:1px solid var(--tone-border, #fde68a);padding-left:18px}.priority-banner .banner-item{display:flex;align-items:center;gap:12px}.priority-banner .banner-item .item-text{flex:1;min-width:0}.priority-banner .banner-item .item-name{font-weight:600;font-size:14px}.priority-banner .banner-item .item-sub{font-size:12px;color:#6b7280}@media (max-width: 860px){.priority-banner{flex-direction:column}.priority-banner .banner-items{border-left:none;padding-left:0}}.pill{display:inline-flex;align-items:center;justify-content:center;gap:4px;border-radius:999px;font-size:12.5px;font-weight:600;white-space:nowrap;padding:3px 10px;background:var(--tone-soft, #f3f4f6);color:var(--tone, #6b7280)}.count-pill{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 6px;box-sizing:border-box;border-radius:999px;font-size:13px;font-weight:600;background:var(--tone-soft, #f3f4f6);color:var(--tone, #6b7280)}.btn-soft{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:8px;border:none;cursor:pointer;background:#eff6ff;color:#1d4ed8;font-size:13.5px;font-weight:600;text-decoration:none}.btn-soft:hover{background:#dbeafe}.btn-outline{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:8px;border:1px solid #bfdbfe;cursor:pointer;background:#fff;color:#1d4ed8;font-size:13.5px;font-weight:600;text-decoration:none}.btn-outline:hover{background:#eff6ff}button.stat-card{width:100%;text-align:left;cursor:pointer;font:inherit}button.stat-card:hover{box-shadow:0 4px 12px #10182814;transform:translateY(-1px)}.stat-card.selected{border-color:var(--tone, #2563eb);box-shadow:0 0 0 1px var(--tone, #2563eb)}.search-box{position:relative;flex:1 1 320px;max-width:480px}.search-box svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#9ca3af}.search-box input{padding-left:38px;width:100%;box-sizing:border-box}.table-card{background:#fff;border:1px solid #eef0f3;border-radius:12px;padding:18px 20px;box-shadow:0 1px 2px #1018280a}.table-toolbar{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}.table-toolbar select{width:auto;min-width:220px}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}th.sortable svg{vertical-align:-2px;margin-left:4px;color:#9ca3af}th.sortable.sorted svg{color:#2563eb}.data-table td.num,.data-table th.num{text-align:center}.company-cell{display:flex;align-items:center;gap:12px}.company-cell .name{font-weight:600;color:#111827;text-decoration:none}.company-cell .name:hover{color:#2563eb}.company-cell .sub{font-size:12px;color:#6b7280}.person-cell{display:flex;align-items:center;gap:12px}.person-cell .name{font-weight:600;color:#111827}.person-cell .sub{font-size:12px;color:#6b7280}.initials{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:36px;border-radius:50%;font-size:13px;font-weight:700;letter-spacing:.3px}.table-toolbar .filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.table-toolbar .count{font-size:13px;color:#6b7280;align-self:center}tr.clickable-row{cursor:pointer}tr.clickable-row:hover td{background:#f9fafb}.btn-soft,.btn-outline,.btn-danger-outline{width:auto}.btn-danger-outline{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:8px;border:1px solid #fecaca;cursor:pointer;background:#fff;color:#b91c1c;font-size:13.5px;font-weight:600}.btn-danger-outline:hover{background:#fef2f2}.btn-success-outline{display:inline-flex;align-items:center;gap:6px;width:auto;padding:8px 14px;border-radius:8px;border:1px solid #bbf7d0;cursor:pointer;background:#fff;color:#15803d;font-size:13.5px;font-weight:600}.btn-success-outline:hover{background:#f0fdf4}.employee-hero{display:flex;gap:18px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid #eef0f3;border-radius:12px;padding:18px 20px;margin-bottom:16px;box-shadow:0 1px 2px #1018280a}.employee-hero .hero-text{flex:1;min-width:240px}.employee-hero h1{font-size:24px;margin:0 0 8px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.employee-hero .hero-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.employee-hero .hero-error{flex-basis:100%;margin:0}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:#374151;background:#f3f4f6;border-radius:999px;padding:3px 10px}.chip svg{color:#6b7280}.section-card{background:#fff;border:1px solid #eef0f3;border-radius:12px;margin-bottom:12px;box-shadow:0 1px 2px #1018280a}.section-head{width:100%;display:flex;align-items:center;gap:12px;padding:14px 18px;background:none;border:none;border-radius:12px;cursor:pointer;font:inherit;color:inherit;text-align:left}.section-head:hover{background:#f9fafb}.section-title{flex:1;font-weight:600;font-size:15px}.section-chevron{color:#9ca3af;transition:transform .15s ease}.section-chevron.open{transform:rotate(180deg)}.section-body{padding:14px 18px 18px;border-top:1px solid #f3f4f6}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}.form-grid .full{grid-column:1 / -1}.form-group-title{font-size:12px;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.4px;margin:20px 0 8px;padding-bottom:6px;border-bottom:1px solid #f3f4f6}.form-group-title:first-child{margin-top:0}@media (max-width: 640px){.form-grid{grid-template-columns:1fr}}.type-picker{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.type-group{border:1px solid #eef0f3;border-radius:10px;padding:10px;background:#fff}.type-group-head{display:flex;align-items:center;gap:10px;font-weight:700;font-size:13.5px;padding:2px 4px 8px}.type-option{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:8px 10px;border:none;border-radius:8px;background:none;color:#1f2937;font:inherit;font-size:13.5px;text-align:left;cursor:pointer}.type-option svg{color:#c0c4cc;flex-shrink:0}.type-option:hover{background:#eff6ff;color:#1d4ed8}.type-option:hover svg{color:#1d4ed8}
