.install-code{font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;font-size:2rem;letter-spacing:0.35rem;text-align:center}.days-late{color:darkred;font-weight:bold}body.legacy{background-color:#fff;color:#333;margin:33px}body.legacy,body.legacy p,body.legacy ol,body.legacy ul,body.legacy td{font-family:verdana, arial, helvetica, sans-serif;font-size:13px;line-height:18px}body.legacy pre{background-color:#eee;padding:10px;font-size:11px}body.legacy a{color:#000}body.legacy a:visited{color:#666}body.legacy a:hover{color:#fff;background-color:#000}body.legacy th{padding-bottom:5px}body.legacy td{padding:0 5px 7px}body.legacy div.field,body.legacy div.actions{margin-bottom:10px}body.legacy #notice{color:green}body.legacy .field_with_errors{padding:2px;background-color:red;display:table}body.legacy #error_explanation{width:450px;border:2px solid red;padding:7px 7px 0;margin-bottom:20px;background-color:#f0f0f0}body.legacy #error_explanation h2{text-align:left;font-weight:bold;padding:5px 5px 5px 15px;font-size:12px;margin:-7px -7px 0;background-color:#c00;color:#fff}body.legacy #error_explanation ul li{font-size:12px;list-style:square}body.legacy label{display:block}body.app{margin:0;min-height:100vh;font-family:'Source Sans 3', 'Segoe UI', system-ui, sans-serif;font-size:1rem;color:#0f172a;background:radial-gradient(900px 420px at 8% -8%, rgba(45,212,191,0.22), transparent 55%),radial-gradient(700px 380px at 100% 0%, rgba(56,189,248,0.16), transparent 50%),linear-gradient(165deg, #07111f, #10233a 48%, #0b1a2b);background-attachment:fixed;position:relative}body.app::before{content:"";position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,0.04) 1px, transparent 1px),linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px);background-size:28px 28px;-webkit-mask-image:radial-gradient(circle at 20% 20%, #000 20%, transparent 75%);mask-image:radial-gradient(circle at 20% 20%, #000 20%, transparent 75%)}body.app a{color:#0f766e;text-decoration:none}body.app a:hover{color:#0c5b55}body.app h1,body.app h2,body.app h3,body.app h4,body.app h5,body.app h6{color:#0f172a}body.app code{color:#0f766e;background:rgba(15,118,110,0.08);padding:.1rem .4rem;border-radius:6px;font-size:.85em}.app-shell{position:relative;z-index:1;width:100%;max-width:1480px;margin:1.25rem auto;min-height:calc(100vh - 2.5rem);display:flex;flex-direction:column;background:#f6f8fb;border:1px solid rgba(255,255,255,0.08);border-radius:28px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,0.35)}@media (max-width: 991px){.app-shell{margin:0;min-height:100vh;border:0;border-radius:0;box-shadow:none}}.app-body{flex:1;padding:1.75rem 1.75rem 2.25rem}@media (max-width: 575px){.app-body{padding:1.15rem 1rem 2rem}}.app-header{background:#fff;border-bottom:1px solid #e6ebf2;padding:1.1rem 1.75rem}@media (max-width: 575px){.app-header{padding:1rem}}.app-header-top{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.app-brand{display:flex;align-items:center;gap:.85rem;color:#0f172a !important}.app-logo{width:46px;height:46px;flex:0 0 46px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(180deg, #2dd4bf, #0f766e);box-shadow:0 10px 24px rgba(13,148,136,0.35);color:#042f2e;font-size:1.3rem;font-weight:800}.app-brand-kicker{font-size:.74rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#0f766e;line-height:1}.app-brand-name{font-size:1.25rem;font-weight:700;line-height:1.2;color:#0f172a}.app-header-actions{display:flex;align-items:center;gap:.55rem;margin-left:auto;flex-wrap:wrap}.app-nav{display:flex;gap:.35rem;margin-top:1rem;overflow-x:auto;scrollbar-width:none}.app-nav::-webkit-scrollbar{display:none}.app-nav-item{display:inline-flex;align-items:center;gap:.55rem;white-space:nowrap;padding:.55rem .9rem;border-radius:10px;font-weight:600;font-size:.98rem;color:#475569 !important;transition:background .15s ease, color .15s ease}.app-nav-item:hover{background:#f1f5f9;color:#0f172a !important}.app-nav-item.active{background:rgba(13,148,136,0.1);color:#0d9488 !important}body.app .btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:40px;padding:.45rem 1rem;border-radius:10px;font-weight:600;font-size:.93rem;transition:transform .12s ease, filter .12s ease, background .12s ease, border-color .12s ease, color .12s ease, box-shadow .12s ease}body.app .btn:focus{box-shadow:0 0 0 4px rgba(15,118,110,0.14)}body.app .btn-sm{min-height:32px;padding:.25rem .65rem;font-size:.85rem;border-radius:8px}body.app .btn-primary,body.app .btn-success{border:0;color:#042f2e;background:linear-gradient(180deg, #2dd4bf, #14b8a6);box-shadow:0 8px 16px rgba(13,148,136,0.24)}body.app .btn-primary:hover,body.app .btn-primary:focus,body.app .btn-success:hover,body.app .btn-success:focus{color:#042f2e;filter:brightness(1.05);transform:translateY(-1px)}body.app .btn-warning{border:0;color:#451a03;background:linear-gradient(180deg, #fcd34d, #f59e0b);box-shadow:0 8px 16px rgba(217,119,6,0.22)}body.app .btn-warning:hover{color:#451a03;filter:brightness(1.04);transform:translateY(-1px)}body.app .btn-outline-secondary,body.app .btn-ghost{border:1.5px solid #dbe3ee;background:#fff;color:#334155}body.app .btn-outline-secondary:hover,body.app .btn-ghost:hover{border-color:#0d9488;color:#0d9488;background:#fff}body.app .btn-outline-danger,body.app .btn-logout{border:1.5px solid #fecaca;background:#fff;color:#b91c1c}body.app .btn-outline-danger:hover,body.app .btn-logout:hover{background:#fef2f2;color:#b91c1c;border-color:#fca5a5}body.app .btn-outline-success,body.app .btn-chip{border:1.5px solid #dbe3ee;background:#fff;color:#0f766e;border-radius:999px}body.app .btn-outline-success:hover,body.app .btn-chip:hover{border-color:transparent;background:linear-gradient(180deg, #2dd4bf, #14b8a6);color:#042f2e}body.app .btn-outline-primary{border:1.5px solid #dbe3ee;background:#fff;color:#334155}body.app .btn-outline-primary:hover{border-color:#0d9488;color:#0d9488;background:#fff}.page-header{margin-bottom:1.5rem}.page-kicker{font-size:.74rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#0f766e;margin-bottom:.2rem}.page-title{font-size:1.85rem;font-weight:700;letter-spacing:-.01em;margin:0 0 .2rem;color:#0f172a}.page-subtitle{color:#64748b;margin:0;font-size:1.02rem}.section-title{font-size:1.15rem;font-weight:700;margin:0;color:#0f172a}.count-pill{display:inline-flex;align-items:center;justify-content:center;min-width:1.6rem;padding:.1rem .5rem;border-radius:999px;background:rgba(15,118,110,0.12);color:#0f766e;font-size:.8rem;font-weight:700}body.app .card{background:#fff;border:1px solid #e6ebf2;border-radius:20px;box-shadow:0 20px 40px rgba(15,23,42,0.06)}body.app .card-header{background:transparent;border-bottom:1px solid #e6ebf2;padding:1rem 1.35rem;font-weight:700;font-size:1.05rem;color:#0f172a;display:flex;align-items:center;gap:.6rem}body.app .card-header:first-child{border-radius:20px 20px 0 0}body.app .card-footer{background:transparent;border-top:1px solid #e6ebf2;border-radius:0 0 20px 20px}.stat-card{padding:1.15rem 1.3rem;height:100%}.stat-card .stat-label{color:#64748b;font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.stat-card .stat-value{font-size:1.7rem;font-weight:700;letter-spacing:-.01em;margin-top:.2rem;color:#0f172a;line-height:1.2}.stat-card .stat-hint{color:#94a3b8;font-size:.85rem;margin-top:.15rem}.stat-icon{width:44px;height:44px;flex:0 0 44px;border-radius:13px;display:grid;place-items:center;font-size:1.15rem}.tint-primary,.tint-success{background:#f0fdfa;color:#0f766e}.tint-warning{background:rgba(217,119,6,0.12);color:#b45309}.tint-danger{background:rgba(220,38,38,0.1);color:#b91c1c}.tint-solid{background:linear-gradient(180deg, #2dd4bf, #0f766e);color:#042f2e;box-shadow:0 10px 20px rgba(13,148,136,0.28)}.text-teal{color:#0f766e !important}.table-modern{--bs-table-bg: transparent;--bs-table-color: #0f172a;margin-bottom:0;font-size:.95rem;color:#0f172a}.table-modern>:not(:first-child){border-top:0}.table-modern thead th{background:#f8fafc;color:#475569;font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid #e6ebf2;white-space:nowrap;padding:.8rem 1rem}.table-modern td{padding:.85rem 1rem;vertical-align:middle;border-color:#eef1f6}.table-modern tbody tr:last-child td{border-bottom:0}.table-modern tbody tr{transition:background .12s}.table-modern tbody tr:hover{background:#f8fffd}.table-modern .cell-clip{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-modern .cell-sub{color:#94a3b8;font-size:.84rem}th.sortable{padding:0 !important}th.sortable .sort-link{display:flex;align-items:center;gap:.35rem;padding:.8rem 1rem;color:#475569 !important;user-select:none}th.sortable .sort-link:hover{color:#0f766e !important;background:rgba(15,118,110,0.05)}th.sortable.text-end .sort-link{justify-content:flex-end}th.sortable.text-center .sort-link{justify-content:center}th.sortable .sort-icon{font-size:.8em;opacity:.35;transition:opacity .12s}th.sortable .sort-link:hover .sort-icon{opacity:.8}th.sortable.is-sorted .sort-link{color:#0f766e !important}th.sortable.is-sorted .sort-icon{opacity:1}.row-actions{display:flex;justify-content:flex-end;gap:.2rem;white-space:nowrap}.row-actions .btn{width:32px;height:32px;min-height:0;padding:0;border:0;border-radius:9px;background:transparent;color:#94a3b8;box-shadow:none}.row-actions .btn:hover{background:rgba(15,118,110,0.1);color:#0f766e;transform:none}.row-actions .btn.text-danger{color:#94a3b8 !important}.row-actions .btn.text-danger:hover{background:rgba(220,38,38,0.1);color:#dc2626 !important}body.app .badge{font-weight:700;font-size:.74rem;letter-spacing:.02em;padding:.35em .7em}.badge-soft-success{background:rgba(15,118,110,0.12);color:#0f766e}.badge-soft-primary{background:rgba(56,189,248,0.14);color:#0369a1}.badge-soft-warning{background:rgba(217,119,6,0.14);color:#b45309}.badge-soft-danger{background:rgba(220,38,38,0.1);color:#b91c1c}.badge-soft-secondary{background:#eef2f7;color:#64748b}.badge-soft-dark{background:rgba(15,23,42,0.08);color:#334155}.days-late-badge{background:rgba(220,38,38,0.1);color:#b91c1c;font-weight:700}.recent-hero{position:relative;overflow:hidden;height:100%;border:0 !important;color:#ecfeff;background:linear-gradient(180deg, rgba(45,212,191,0.18), transparent 42%),linear-gradient(160deg, #0b3b4a, #12324d 55%, #0e2740) !important;box-shadow:0 18px 36px rgba(11,59,74,0.28) !important}.recent-hero .hero-link{color:#5eead4 !important;font-weight:600;align-self:flex-start}.recent-hero .hero-link:hover{color:#99f6e4 !important}.recent-hero .hero-stats{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;padding-top:1.5rem}@media (max-width: 420px){.recent-hero .hero-stats{grid-template-columns:1fr}}.recent-hero .hero-stat{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);border-radius:14px;padding:.85rem 1rem}.recent-hero .hero-stat-label{font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#93c5fd}.recent-hero .hero-stat-value{font-size:1.4rem;font-weight:700;color:#fff;margin-top:.15rem}.recent-hero .hero-stat-hint{font-size:.82rem;color:#94a3b8}.recent-hero .hero-kicker{font-size:.74rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#5eead4}.recent-hero .hero-company{font-size:1.4rem;font-weight:700;margin:.5rem 0 .15rem;color:#f8fffe}.recent-hero .hero-value{font-size:2.6rem;font-weight:700;letter-spacing:-.02em;line-height:1.1;color:#fff}.recent-hero .hero-pill{display:inline-flex;align-items:center;gap:.35rem;background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.1);border-radius:999px;padding:.25rem .7rem;font-size:.85rem;font-weight:600;color:#dbeafe}.recent-hero .hero-logo{position:absolute;right:1.5rem;top:1.5rem;width:52px;height:52px;border-radius:15px;display:grid;place-items:center;font-size:1.35rem;background:linear-gradient(180deg, #2dd4bf, #0f766e);color:#042f2e;box-shadow:0 10px 20px rgba(13,148,136,0.28)}.recent-hero::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,0.04) 1px, transparent 1px),linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px);background-size:24px 24px;-webkit-mask-image:radial-gradient(circle at 85% 15%, #000 10%, transparent 65%);mask-image:radial-gradient(circle at 85% 15%, #000 10%, transparent 65%)}.recent-list{display:flex;flex-direction:column;gap:.6rem;padding:1.1rem}.recent-item{display:flex;align-items:center;gap:.75rem;padding:.7rem .8rem;border:1px solid #eef1f6;border-radius:14px;background:#f8fafc;color:#0f172a !important;transition:border-color .12s, background .12s, transform .12s}.recent-item:hover{border-color:#99f6e4;background:#fff;transform:translateX(2px)}.recent-item .item-icon{flex:0 0 38px;height:38px;border-radius:11px;display:grid;place-items:center;background:rgba(15,118,110,0.12);color:#0f766e;font-weight:700}.recent-item .item-title{font-weight:600;font-size:.97rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-item .item-sub{font-size:.82rem;color:#94a3b8}.recent-item .item-value{font-weight:700;color:#0f766e;white-space:nowrap}.action-card{display:flex;align-items:flex-start;gap:1rem;height:100%;padding:1.2rem 1.2rem 1.3rem;background:#fff;border:1px solid #e6ebf2;border-radius:20px;box-shadow:0 16px 32px rgba(15,23,42,0.05);color:#0f172a !important;transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease}.action-card:hover{transform:translateY(-3px);border-color:#99f6e4;box-shadow:0 22px 40px rgba(15,118,110,0.14)}.action-card .action-icon{flex:0 0 46px;width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font-size:1.2rem;background:#f0fdfa;color:#0f766e}.action-card .action-title{font-size:1.12rem;font-weight:700;color:#0f172a}.action-card .action-desc{font-size:.92rem;color:#64748b;line-height:1.4}.action-card.tone-danger .action-icon{background:rgba(220,38,38,0.08);color:#b91c1c}.action-card.tone-warning .action-icon{background:rgba(217,119,6,0.1);color:#b45309}.action-card-primary{border-color:transparent;background:linear-gradient(180deg, rgba(45,212,191,0.18), transparent 42%),linear-gradient(160deg, #0b3b4a, #12324d 55%, #0e2740);box-shadow:0 18px 36px rgba(11,59,74,0.28)}.action-card-primary .action-icon{background:linear-gradient(180deg, #2dd4bf, #0f766e);color:#042f2e;box-shadow:0 10px 20px rgba(13,148,136,0.28)}.action-card-primary .action-title{color:#f8fffe}.action-card-primary .action-desc{color:#bfdbfe}.action-card-primary:hover{border-color:rgba(45,212,191,0.45);box-shadow:0 24px 44px rgba(11,59,74,0.38)}.detail-list{margin:0}.detail-row{display:grid;grid-template-columns:180px 1fr;gap:1rem;padding:.75rem 0;border-bottom:1px solid #eef1f6}.detail-row:last-child{border-bottom:0}.detail-row dt{color:#64748b;font-weight:600;font-size:.92rem}.detail-row dd{margin:0;word-break:break-word}@media (max-width: 575px){.detail-row{grid-template-columns:1fr;gap:.15rem}}.kv-list{list-style:none;margin:0;padding:.35rem 1.35rem .6rem}.kv-list li{display:flex;align-items:center;justify-content:space-between;padding:.7rem 0;border-bottom:1px solid #eef1f6}.kv-list li:last-child{border-bottom:0}body.app .form-label{font-size:.8rem;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.35rem}body.app .form-control,body.app .form-select,body.app .input-group-text{min-height:44px;border:1.5px solid #dbe3ee;border-radius:12px;font-size:.98rem;color:#0f172a;background-color:#fff}body.app .input-group-text{background:#f8fafc;color:#64748b;font-weight:600}body.app textarea.form-control{min-height:6.5rem}body.app .form-control:focus,body.app .form-select:focus{border-color:#0f766e;box-shadow:0 0 0 4px rgba(15,118,110,0.14)}body.app .form-select-sm{min-height:40px;font-size:.92rem;border-radius:10px}body.app .form-select-lg{min-height:52px}body.app .date-select{display:flex;gap:.4rem;flex-wrap:wrap}body.app .date-select select{width:auto;flex:1 1 auto}body.app .field_with_errors{display:contents}body.app .field_with_errors .form-control,body.app .field_with_errors .form-select{border-color:#dc2626}body.app .alert{border-radius:14px;border:1px solid transparent}body.app .alert-success{background:#f0fdfa;border-color:#99f6e4;color:#0f766e}body.app .alert-danger{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.copy-input{font-family:ui-monospace, SFMono-Regular, Menlo, monospace;font-size:.85rem !important;cursor:pointer}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:2.5rem 1rem;color:#94a3b8;text-align:center}.empty-state .bi{font-size:1.9rem;color:#cbd5e1}.min-w-0{min-width:0}.toast{border-radius:12px}
