@tailwind base;@tailwind components;@tailwind utilities;@layer base{*{@apply box-border}body{@apply m-0 antialiased;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,Noto Sans KR,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}code{font-family:JetBrains Mono,source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}}@layer components{.ts-card{@apply bg-white rounded-card p-6 border border-ts-border;box-shadow:0 1px 2px 0 #3c40434d,0 1px 3px 1px #3c404326;transition:box-shadow .2s cubic-bezier(.4,0,.2,1)}.ts-card:hover{box-shadow:0 1px 3px #3c40434d,0 4px 8px 3px #3c404326}.ts-btn{@apply inline-flex items-center justify-center gap-2 px-4 py-2.5 rounded-lg font-medium text-sm;transition:all .15s cubic-bezier(.4,0,.2,1)}.ts-btn:focus-visible{@apply outline-none ring-2 ring-offset-2;--tw-ring-offset-color:#fff}.ts-btn-primary,.ts-btn-primary:hover:not(:disabled),.ts-btn:disabled{@apply bg-ts-primary-hover}.ts-btn-primary:focus-visible{@apply ring-ts-primary}.ts-btn-secondary{@apply bg-white text-ts-fg border border-ts-border}.ts-btn-secondary:hover:not(:disabled){background-color:#f1f3f4}.ts-btn-secondary:focus-visible{@apply ring-ts-fg-muted}.ts-btn-danger,.ts-btn-ghost,.ts-btn-ghost:hover:not(:disabled){@apply bg-ts-error text-white}.ts-btn-danger:hover:not(:disabled){background-color:#c5221f}.ts-btn-danger:focus-visible{@apply ring-ts-error}.ts-badge{@apply inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-xs font-medium}.ts-badge-success{background-color:#e6f4ea;@apply text-ts-success}.ts-badge-warning{background-color:#fef7e0;@apply text-ts-warning}.ts-badge-error{background-color:#fce8e6;@apply text-ts-error}.ts-badge-info,.ts-badge-primary{background-color:#e8f0fe;@apply text-ts-primary}.ts-badge-secondary{@apply bg-ts-bg-hover text-ts-fg-muted}.ts-input{@apply w-full px-4 py-2.5 rounded-lg bg-white text-ts-fg text-sm;border:1px solid #e8eaed;transition:all .15s cubic-bezier(.4,0,.2,1)}.ts-input::placeholder,.ts-input:focus{@apply outline-none ring-2 ring-ts-primary border-transparent}.ts-select{@apply ts-input appearance-none cursor-pointer;padding-right:2.5rem}.ts-table{@apply w-full;border-collapse:collapse}.ts-th{@apply px-4 py-3 text-left text-xs font-semibold uppercase tracking-wider;background-color:#f8f9fa;border-bottom:1px solid #e8eaed;color:#5f6368}.ts-td{@apply px-4 py-3 text-sm;border-bottom:1px solid #f0f0f0;color:#202124}.ts-table tbody tr:hover{background-color:#f8f9fa}.ts-progress{@apply h-2 rounded-full overflow-hidden;background-color:#e8eaed}.ts-progress-fill{@apply h-full rounded-full;transition:width .3s cubic-bezier(.4,0,.2,1)}}*{box-sizing:border-box;margin:0;padding:0}:root{--gcp-blue:#1a73e8;--gcp-blue-hover:#1557b0;--gcp-blue-light:#e8f0fe;--gcp-text-primary:#202124;--gcp-text-secondary:#5f6368;--gcp-text-disabled:#80868b;--gcp-border:#e8eaed;--gcp-border-dark:#bdc1c6;--gcp-bg-primary:#fff;--gcp-bg-secondary:#f8f9fa;--gcp-bg-hover:#f1f3f4;--gcp-success:#1e8e3e;--gcp-success-bg:#e6f4ea;--gcp-warning:#e37400;--gcp-warning-bg:#fef7e0;--gcp-error:#d93025;--gcp-error-bg:#fce8e6;--shadow-sm:0 1px 2px 0 #3c40434d,0 1px 3px 1px #3c404326;--shadow-md:0 1px 3px #3c40434d,0 4px 8px 3px #3c404326;--transition:0.2s cubic-bezier(0.4,0,0.2,1);--ts-accent:#1967d2;--ts-accent-hover:#174ea6;--ts-accent-light:#e8f0fe}[data-theme=dark]{--gcp-blue:#8ab4f8;--gcp-blue-hover:#aecbfa;--gcp-blue-light:#1a2744;--gcp-text-primary:#e8eaed;--gcp-text-secondary:#9aa0a6;--gcp-text-disabled:#5f6368;--gcp-border:#3c4043;--gcp-border-dark:#5f6368;--gcp-bg-primary:#1e1e1e;--gcp-bg-secondary:#121212;--gcp-bg-hover:#2d2d2d;--gcp-success:#81c995;--gcp-success-bg:#1b3626;--gcp-warning:#fdd663;--gcp-warning-bg:#3e2e00;--gcp-error:#f28b82;--gcp-error-bg:#3c1f1e;--shadow-sm:0 1px 2px 0 #00000080,0 1px 3px 1px #0000004d;--shadow-md:0 1px 3px #00000080,0 4px 8px 3px #0000004d;--ts-accent:#8ab4f8;--ts-accent-hover:#aecbfa;--ts-accent-light:#1a2744;color-scheme:dark}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--gcp-bg-secondary);color:var(--gcp-text-primary);font-family:Inter,Noto Sans KR,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;margin:0;min-height:100vh}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:var(--gcp-bg-secondary)}::-webkit-scrollbar-thumb{background:#bdc1c6;border-radius:9999px}::-webkit-scrollbar-thumb:hover{background:#80868b}.app-container{background-color:var(--gcp-bg-secondary);display:flex;flex-direction:column;min-height:100vh}.app-header{background-color:var(--gcp-bg-primary);border-bottom:1px solid var(--gcp-border);padding:0 1rem;position:sticky;top:0;z-index:10}.app-header-content{align-items:center;display:flex;height:3.5rem;justify-content:space-between;margin:0 auto;max-width:100%}.app-body{display:flex;flex:1;flex-direction:column}@media (min-width:768px){.app-body{flex-direction:row}}.app-sidebar{background-color:var(--gcp-bg-primary);padding:.5rem}@media (max-width:767px){.app-sidebar{border-right:1px solid var(--gcp-border);box-shadow:none;display:flex;flex-direction:column;height:100vh;left:-16rem;overflow-y:hidden;padding:0;position:fixed;top:0;transition:left .3s cubic-bezier(.4,0,.2,1);width:16rem;z-index:50}.app-sidebar.sidebar-open{box-shadow:4px 0 12px #00000026;left:0}}@media (min-width:768px){.app-sidebar{border-right:1px solid var(--gcp-border);min-height:calc(100vh - 3.5rem);width:14rem}}.sidebar-backdrop{animation:fadeIn .2s ease-out;background:#00000052;inset:0;position:fixed;z-index:49}@media (min-width:768px){.sidebar-backdrop{display:none}}.sidebar-drawer-header{display:none}@media (max-width:767px){.sidebar-drawer-header{align-items:center;border-bottom:1px solid var(--gcp-border);color:var(--gcp-text-primary);display:flex;font-size:.9375rem;font-weight:600;justify-content:space-between;padding:.75rem 1rem}.sidebar-drawer-close{align-items:center;background:none;border:none;border-radius:.375rem;color:var(--gcp-text-secondary);cursor:pointer;display:flex;height:2rem;justify-content:center;width:2rem}.sidebar-drawer-close:hover{background:var(--gcp-bg-hover)}}.mobile-menu-btn{display:none}@media (max-width:767px){.mobile-menu-btn{align-items:center;background:none;border:none;border-radius:.375rem;color:var(--gcp-text-primary);cursor:pointer;display:flex;flex-shrink:0;justify-content:center;margin-right:.5rem;padding:.375rem}.mobile-menu-btn .header-icon-md{height:1.25rem;width:1.25rem}.mobile-menu-btn:hover{background:var(--gcp-bg-hover)}}.sidebar-nav{display:flex;flex-direction:column;gap:.25rem;list-style:none}.sidebar-button{align-items:center;background:none;border:none;border-radius:.5rem;color:var(--gcp-text-secondary);cursor:pointer;display:flex;font-size:.875rem;font-weight:500;padding:.625rem 1rem;transition:background-color var(--transition);white-space:nowrap}.sidebar-button:hover{background-color:var(--gcp-bg-hover)}.sidebar-button.active{background-color:var(--gcp-blue-light);color:var(--gcp-blue)}.sidebar-button svg{flex-shrink:0;height:1.25rem;margin-right:.75rem;width:1.25rem}.sidebar-favorites-card{background:linear-gradient(135deg,#f59e0b0f,#f59e0b05);border:1px solid #f59e0b2e;border-radius:.625rem;margin:.25rem .5rem .5rem;padding:.5rem}.sidebar-favorites-header{align-items:center;color:#b45309;display:flex;font-size:.6875rem;font-weight:700;justify-content:space-between;letter-spacing:.03em;padding:.25rem .5rem .375rem}.sidebar-favorites-count{background:#f59e0b1f;border-radius:9999px;color:#92400e;font-size:.625rem;font-weight:600;min-width:1.125rem;padding:.0625rem .375rem;text-align:center}.sidebar-favorites-item{position:relative}.sidebar-favorites-item .sidebar-button{border-radius:.375rem;font-size:.8125rem;padding:.4375rem .625rem}.sidebar-favorites-item .sidebar-button svg{height:1.125rem;margin-right:.625rem;width:1.125rem}.sidebar-favorites-unpin{align-items:center;background:none;border:none;border-radius:.25rem;color:#80868b;cursor:pointer;display:flex;justify-content:center;opacity:0;padding:.25rem;position:absolute;right:.25rem;top:50%;transform:translateY(-50%);transition:all .15s}.sidebar-favorites-item:hover .sidebar-favorites-unpin{opacity:.6}.sidebar-favorites-unpin:hover{background:#0000000f;color:#d93025;opacity:1!important}.sidebar-star-btn{align-items:center;background:none;border:none;border-radius:.25rem;color:#80868b;cursor:pointer;display:flex;flex-shrink:0;justify-content:center;opacity:0;padding:.25rem;transition:all .15s}.sidebar-star-btn.is-active{color:#f59e0b;opacity:1}.sidebar-nav li:hover .sidebar-star-btn{opacity:.5}.sidebar-nav li:hover .sidebar-star-btn.is-active{opacity:1}.sidebar-nav li:hover .sidebar-star-btn:hover{background:#0000000a;opacity:1!important}.sidebar-button.is-pinned{opacity:.55}.sidebar-button.is-pinned:hover{opacity:.8}.sidebar-service-switcher{border-bottom:1px solid var(--gcp-border);margin-bottom:.25rem;padding:.625rem .5rem}.sidebar-service-label{color:var(--gcp-text-disabled);font-size:.625rem;font-weight:700;letter-spacing:.08em;padding:0 .5rem .375rem;text-transform:uppercase}.sidebar-service-list{display:flex;flex-direction:column;gap:1px}.sidebar-service-item{align-items:center;border-radius:.375rem;color:var(--gcp-text-secondary);cursor:pointer;display:flex;font-size:.75rem;gap:.5rem;padding:.375rem .5rem;text-decoration:none;transition:background-color .15s}.sidebar-service-item svg{flex-shrink:0;height:1rem;width:1rem}.sidebar-service-item:hover{background-color:var(--gcp-bg-hover);color:var(--gcp-text-primary)}.sidebar-service-item.active{background-color:var(--gcp-blue-light);color:var(--gcp-blue);cursor:default;font-weight:600}.sidebar-section-label{color:var(--gcp-text-disabled);font-size:.6875rem;font-weight:600;letter-spacing:.05em;list-style:none;margin-top:.25rem;padding:.75rem 1rem .25rem;text-transform:uppercase}.app-main{flex:1;min-width:0;overflow-x:hidden;padding:1rem;width:100%}@media (min-width:480px){.app-main{padding:1.5rem}}@media (min-width:768px){.app-main{padding:1.5rem 2rem}}.card{background-color:var(--gcp-bg-primary);border:1px solid var(--gcp-border);border-radius:1rem;margin-bottom:1rem;padding:1.5rem;transition:box-shadow var(--transition)}.card:hover{box-shadow:0 1px 3px #3c40434d,0 4px 8px 3px #3c404326}.stats-grid{display:grid;gap:1rem;grid-template-columns:1fr;margin-bottom:1.5rem}@media (min-width:640px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.stats-grid{grid-template-columns:repeat(4,1fr)}}.stat-card{background-color:var(--gcp-bg-primary);border:1px solid var(--gcp-border);border-radius:1rem;gap:1rem;padding:1.25rem}.stat-card,.stat-card-icon{align-items:center;display:flex}.stat-card-icon{background-color:var(--gcp-blue-light);border-radius:.75rem;color:var(--gcp-blue);height:2.5rem;justify-content:center;width:2.5rem}.stat-card-content{flex:1}.stat-card-label{color:var(--gcp-text-secondary);font-size:.75rem;letter-spacing:.025em;margin-bottom:.25rem;text-transform:uppercase}.stat-card-value{font-size:1.5rem}.page-title,.stat-card-value{color:var(--gcp-text-primary);font-weight:600}.page-title{font-size:1.375rem;margin-bottom:.25rem}.page-subtitle{color:var(--gcp-text-secondary);font-size:.875rem;margin-bottom:1.5rem}.loading-container{align-items:center;display:flex;height:12rem;justify-content:center}.spinner{animation:spin 1s linear infinite;border:3px solid var(--gcp-border);border-radius:50%;border-top-color:var(--gcp-blue);height:2.5rem;width:2.5rem}@keyframes spin{to{transform:rotate(1turn)}}.btn{align-items:center;border:none;border-radius:.5rem;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:500;gap:.5rem;justify-content:center;padding:.625rem 1.25rem;transition:all var(--transition)}.btn-primary{background-color:var(--gcp-blue);color:#fff}.btn-primary:hover{background-color:var(--gcp-blue-hover);box-shadow:var(--shadow-sm)}.btn-primary:disabled{background-color:var(--gcp-text-disabled);cursor:not-allowed;opacity:.5}.btn-secondary{background-color:var(--gcp-bg-hover);border:1px solid var(--gcp-border);color:var(--gcp-text-primary)}.btn-secondary:hover{background-color:#e8eaed;border-color:var(--gcp-border-dark)}.btn-secondary:disabled{color:var(--gcp-text-disabled);cursor:not-allowed;opacity:.5}.btn-ghost{background-color:initial;color:var(--gcp-text-secondary)}.btn-ghost:hover{background-color:var(--gcp-bg-primary)}.btn-danger{background-color:var(--gcp-error);color:#fff}.btn-danger:hover{background-color:#c5221f}.input{background-color:var(--gcp-bg-primary);border:1px solid var(--gcp-border);border-radius:.5rem;color:var(--gcp-text-primary);font-size:.875rem;padding:.625rem .75rem;transition:border-color var(--transition);width:100%}.input::placeholder{color:var(--gcp-text-disabled)}.input:focus{border-color:var(--gcp-blue);box-shadow:0 0 0 2px #1a73e833;outline:none}.employee-card{background-color:var(--gcp-bg-primary);border:1px solid var(--gcp-border);border-radius:1rem;overflow:hidden;transition:all var(--transition)}.employee-card:hover{box-shadow:var(--shadow-sm)}.employee-card-header{cursor:pointer;padding:1rem 1.25rem;transition:background-color var(--transition)}.employee-card-content,.employee-card-header:hover{background-color:var(--gcp-bg-hover)}.employee-card-content{animation:slideDown .2s ease-out;border-top:1px solid var(--gcp-border)}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.employee-avatar{align-items:center;background-color:var(--gcp-blue);border-radius:50%;color:#fff;display:flex;font-size:1rem;font-weight:500;height:2.5rem;justify-content:center;width:2.5rem}.employee-info{align-items:center;display:flex;gap:.75rem}.employee-name{color:var(--gcp-text-primary);font-size:.9375rem;font-weight:500;margin-bottom:.125rem}.employee-position{color:var(--gcp-text-secondary);font-size:.8125rem}.employee-meta{align-items:center;display:flex;gap:1.5rem}.employee-meta-item{text-align:right}.employee-meta-label{color:var(--gcp-text-disabled);font-size:.6875rem;margin-bottom:.125rem;text-transform:uppercase}.employee-meta-value{color:var(--gcp-text-primary);font-size:.8125rem;font-weight:500}.insight-tabs{-webkit-overflow-scrolling:touch;background-color:var(--gcp-bg-primary);border-bottom:1px solid var(--gcp-border);display:flex;gap:0;overflow-x:auto;scrollbar-width:none}.insight-tabs::-webkit-scrollbar{display:none}.insight-tab{background:none;border:none;border-bottom:2px solid #0000;color:var(--gcp-text-secondary);cursor:pointer;font-size:.8125rem;font-weight:500;margin-bottom:-1px;padding:.75rem 1rem;transition:all var(--transition);white-space:nowrap}.insight-tab.active,.insight-tab:hover{color:var(--gcp-blue)}.insight-tab.active{border-bottom-color:var(--gcp-blue)}.insight-content{animation:fadeIn .2s ease-out;padding:1.25rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.skeleton{animation:shimmer 1.5s infinite;background:linear-gradient(90deg,#f1f3f4 25%,#e8eaed 50%,#f1f3f4 75%);background-size:200% 100%;border-radius:.25rem}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-text{height:.875rem;margin-bottom:.5rem}.skeleton-title{height:1.25rem;margin-bottom:.75rem;width:60%}.skeleton-avatar{border-radius:50%;height:2.5rem;width:2.5rem}.swot-grid{display:grid;gap:1rem;grid-template-columns:1fr}@media (min-width:640px){.swot-grid{grid-template-columns:repeat(2,1fr)}}.swot-item{border:1px solid var(--gcp-border);border-radius:.75rem;padding:1rem}.swot-item.strength{background-color:var(--gcp-success-bg);border-color:#a8dab5}.swot-item.weakness{background-color:var(--gcp-error-bg);border-color:#f5c6c2}.swot-item.opportunity{background-color:var(--gcp-blue-light);border-color:#c6dafc}.swot-item.threat{background-color:var(--gcp-warning-bg);border-color:#fdd663}.swot-title{font-size:.6875rem;font-weight:600;letter-spacing:.05em;margin-bottom:.5rem;text-transform:uppercase}.swot-item.strength .swot-title{color:var(--gcp-success)}.swot-item.weakness .swot-title{color:var(--gcp-error)}.swot-item.opportunity .swot-title{color:var(--gcp-blue)}.swot-item.threat .swot-title{color:var(--gcp-warning)}.swot-list{list-style:none;margin:0;padding:0}.swot-list li{color:var(--gcp-text-primary);font-size:.8125rem;line-height:1.4;padding:.375rem 0 .375rem 1rem;position:relative}.swot-list li:before{border-radius:50%;content:"";height:.25rem;left:0;position:absolute;top:.625rem;width:.25rem}.swot-item.strength .swot-list li:before{background:var(--gcp-success)}.swot-item.weakness .swot-list li:before{background:var(--gcp-error)}.swot-item.opportunity .swot-list li:before{background:var(--gcp-blue)}.swot-item.threat .swot-list li:before{background:var(--gcp-warning)}.select-modern{appearance:none;background-color:var(--gcp-bg-primary);border:1px solid var(--gcp-border);border-radius:.5rem;color:var(--gcp-text-primary);cursor:pointer;font-size:.875rem;min-width:180px;padding:.625rem 2rem .625rem .75rem;transition:all var(--transition)}.select-modern:focus{border-color:var(--gcp-blue);box-shadow:0 0 0 2px #1a73e833;outline:none}.select-modern:hover{border-color:var(--gcp-border-dark)}.badge{align-items:center;border-radius:9999px;display:inline-flex;font-size:.75rem;font-weight:500;padding:.125rem .625rem}.badge-primary{background-color:var(--gcp-blue-light);color:var(--gcp-blue)}.badge-success{background-color:var(--gcp-success-bg);color:var(--gcp-success)}.badge-warning{background-color:var(--gcp-warning-bg);color:var(--gcp-warning)}.badge-danger{background-color:var(--gcp-error-bg);color:var(--gcp-error)}.badge-secondary{background-color:var(--gcp-bg-hover);color:var(--gcp-text-secondary)}.badge-info{background-color:var(--ts-accent-light);color:var(--ts-accent)}.team-card{align-items:center;background:var(--gcp-bg-primary);border:1px solid var(--gcp-border);border-radius:.75rem;cursor:pointer;display:flex;gap:.75rem;padding:.75rem 1rem;transition:all var(--transition)}.team-card:hover{background-color:var(--gcp-bg-hover)}.team-card.active{background:var(--gcp-blue-light);border-color:var(--gcp-blue)}.team-card-icon{align-items:center;background-color:var(--gcp-bg-hover);border-radius:.5rem;color:var(--gcp-text-secondary);display:flex;flex-shrink:0;height:2rem;justify-content:center;width:2rem}.team-card.active .team-card-icon{background-color:var(--gcp-blue);color:#fff}.team-card-name{color:var(--gcp-text-primary);font-size:.8125rem;font-weight:500}.team-card-count{color:var(--gcp-text-secondary);font-size:.6875rem}.search-box{position:relative}.search-input{background:var(--gcp-bg-primary);border:1px solid var(--gcp-border);border-radius:.5rem;color:var(--gcp-text-primary);font-size:.875rem;padding:.625rem .75rem;transition:all var(--transition);width:100%}.search-input::placeholder{color:var(--gcp-text-disabled)}.search-input:focus{border-color:var(--gcp-blue);box-shadow:0 0 0 2px #1a73e833;outline:none}.view-toggle-btn{background:#0000;border:none;border-radius:.5rem;color:var(--gcp-text-secondary);cursor:pointer;padding:.375rem;transition:all var(--transition)}.view-toggle-btn:hover{background:var(--gcp-bg-hover)}.view-toggle-btn.active{background:var(--gcp-blue-light);color:var(--gcp-blue)}.grid-card{background:var(--gcp-bg-primary);border:1px solid var(--gcp-border);border-radius:1rem;cursor:pointer;padding:1rem;transition:all var(--transition)}.grid-card:hover{box-shadow:var(--shadow-sm)}.modal-overlay{align-items:center;animation:fadeIn .15s ease-out;background:#0009;display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:1000}.modal-content{animation:slideUp .2s ease-out;background:var(--gcp-bg-primary);border:1px solid var(--gcp-border);border-radius:1rem;box-shadow:var(--shadow-md);max-height:85vh;max-width:560px;overflow-y:auto;padding:1.5rem;width:100%}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.insight-card{background:var(--gcp-bg-primary);border:1px solid var(--gcp-border);border-radius:1rem;padding:1rem}.insight-card-header{align-items:center;display:flex;gap:.625rem;margin-bottom:.625rem}.insight-card-icon{align-items:center;border-radius:.5rem;display:flex;height:2rem;justify-content:center;width:2rem}.insight-card-title{color:var(--gcp-text-primary);font-size:.8125rem;font-weight:500}.insight-card-content{color:var(--gcp-text-secondary);font-size:.8125rem;line-height:1.5}.capability-bar{align-items:center;display:flex;gap:.625rem;margin-bottom:.5rem}.capability-label{color:var(--gcp-text-primary);flex:0 0 90px;font-size:.8125rem}.capability-track{background-color:var(--gcp-bg-hover);border-radius:9999px;flex:1;height:.375rem;overflow:hidden}.capability-fill{border-radius:9999px;height:100%;transition:width .4s ease-out}.capability-value{flex:0 0 35px;font-size:.8125rem;font-weight:500;text-align:right}.capability-value,.toast{color:var(--gcp-text-primary)}.toast{animation:slideInRight .2s ease-out;background:var(--gcp-bg-hover);border:1px solid var(--gcp-border);border-radius:.75rem;bottom:1rem;box-shadow:var(--shadow-md);font-size:.875rem;padding:.75rem 1rem;position:fixed;right:1rem;z-index:1000}@keyframes slideInRight{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.recharts-tooltip-wrapper{filter:drop-shadow(0 2px 4px rgba(60,64,67,.15))}.recharts-default-tooltip{background-color:#fff!important;border:1px solid #e8eaed!important;border-radius:.5rem!important;color:#202124!important}.recharts-tooltip-label{color:#202124!important}.recharts-tooltip-item{color:#5f6368!important}.recharts-cartesian-grid line{stroke:#e8eaed!important}.recharts-text{fill:#5f6368!important}.text-center{text-align:center}.mt-4{margin-top:1rem}.mb-4{margin-bottom:1rem}.p-4{padding:1rem}.hide-mobile{display:none}@media (min-width:640px){.hide-mobile{display:block}}.hide-below-480{display:none!important}@media (min-width:480px){.hide-below-480{display:initial!important}}@media (max-width:767px){.app-header-content{height:2.75rem;padding:0 .5rem}.header-logo-icon,.header-subtitle,.header-title{display:none!important}.header-dropdown-wrapper,.header-username{display:none}.header-status-badge{background:#0000;border:none;gap:0;padding:0}.header-status-text{display:none}.header-demo-btn{font-size:.6875rem;gap:.25rem;padding:.25rem .5rem}.header-demo-btn,.header-demo-btn.active{background:#0000!important;border:none!important}.header-demo-label{display:inline;font-size:.6875rem}.header-toggle-track{height:16px;width:28px}.header-logout-btn{background:#0000;border:none;padding:.375rem}.header-logout-text{display:none}.header-logout-btn .header-icon-sm{height:1.25rem;width:1.25rem}.header-override-banner{font-size:.6875rem;gap:8px;padding:4px .75rem}.header-override-dismiss{font-size:.5625rem;padding:1px 6px}}.sidebar-drawer-footer{display:none}@media (max-width:767px){.sidebar-drawer-footer{background:var(--gcp-bg-secondary);border-top:1px solid var(--gcp-border);display:flex;flex-direction:column;gap:.625rem;padding:.75rem 1rem}.sidebar-footer-user{align-items:center;display:flex;justify-content:space-between}.sidebar-footer-username{color:var(--gcp-text-primary);font-size:.8125rem;font-weight:600}.sidebar-footer-role{font-size:.6875rem;font-weight:600}.sidebar-footer-controls{display:flex;flex-direction:column;gap:.5rem}.sidebar-footer-row{align-items:center;display:flex;justify-content:space-between}.sidebar-footer-label{color:var(--gcp-text-secondary);font-size:.75rem}.sidebar-footer-select{color:var(--gcp-text-primary)}.sidebar-footer-select,.sidebar-footer-toggle{background:var(--gcp-bg-primary);border:1px solid var(--gcp-border);border-radius:6px;cursor:pointer;font-size:.75rem;padding:.25rem .5rem}.sidebar-footer-toggle{align-items:center;color:var(--gcp-text-secondary);display:flex;gap:.375rem}.sidebar-footer-toggle.active{background:#f59e0b1a;border-color:#e37400;color:#d97706}.sidebar-footer-toggle-track{background:var(--gcp-border-dark);border-radius:8px;display:inline-block;height:16px;position:relative;transition:background .2s;width:28px}.sidebar-footer-toggle.active .sidebar-footer-toggle-track{background:#e37400}.sidebar-footer-toggle-thumb{background:#fff;border-radius:50%;box-shadow:0 1px 2px #0003;height:12px;left:2px;position:absolute;top:2px;transition:left .2s;width:12px}.sidebar-footer-toggle.active .sidebar-footer-toggle-thumb{left:14px}.sidebar-footer-logout{align-items:center;background:none;border:none;color:var(--gcp-text-secondary);cursor:pointer;display:flex;font-size:.8125rem;gap:.5rem;padding:.5rem 0}.sidebar-footer-logout:hover{color:var(--gcp-error)}}.employee-card.compact .employee-card-header{padding:.75rem 1rem}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}[tabindex]:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{box-shadow:0 0 0 2px var(--gcp-blue);outline:none}.sidebar-button:focus-visible{box-shadow:0 0 0 2px var(--gcp-blue)}.employee-card-header:focus-visible{box-shadow:0 0 0 2px var(--gcp-blue);z-index:1}.team-card:focus-visible{box-shadow:0 0 0 2px var(--gcp-blue)}.view-toggle-btn:focus-visible{box-shadow:0 0 0 2px var(--gcp-blue)}.modal-overlay[role=dialog]{align-items:center;display:flex;justify-content:center}@media (max-width:767px){.sidebar-button{min-height:44px;padding:.75rem 1rem}.app-main{padding-bottom:4.5rem}}.mobile-tab-bar{display:none}@media (max-width:767px){.mobile-tab-bar{background:var(--gcp-bg-primary);border-top:1px solid var(--gcp-border);bottom:0;box-shadow:0 -1px 3px #3c404314;display:flex;left:0;padding:.25rem 0 env(safe-area-inset-bottom,0);position:fixed;right:0;z-index:40}.mobile-tab-item{align-items:center;background:none;border:none;color:var(--gcp-text-secondary);cursor:pointer;display:flex;flex:1;flex-direction:column;font-size:.625rem;font-weight:500;gap:.125rem;justify-content:center;min-height:52px;padding:.375rem 0;transition:color .15s}.mobile-tab-item.active{color:var(--gcp-blue)}.mobile-tab-item svg{height:1.25rem;width:1.25rem}}@media (max-width:639px){.modal-overlay{align-items:flex-end;padding:0}.modal-content{animation:slideUp .25s ease-out;border-radius:1rem 1rem 0 0;max-height:90vh;max-width:100%;padding:1.25rem}.page-title{font-size:1.25rem!important}.page-subtitle{font-size:.8rem!important}.modal-content h3{font-size:1rem}.stat-card{gap:.625rem;padding:.875rem}.stat-card-value{font-size:1.25rem}.stat-card-icon{height:2rem;width:2rem}.card{padding:1rem}.toast{bottom:5rem;left:.5rem;max-width:none;right:.5rem}.toast-container{max-width:none;min-width:auto}}.login-container{align-items:center;background:var(--gcp-bg-secondary);display:flex;justify-content:center;min-height:100vh;padding:1rem}.login-card{background:var(--gcp-bg-primary);border:1px solid var(--gcp-border);border-radius:1rem;box-shadow:var(--shadow-md);max-width:400px;padding:2.5rem;width:100%}.login-logo-section{margin-bottom:2rem;text-align:center}.login-logo-icon{align-items:center;background:linear-gradient(135deg,#1a73e8,#1557b0);border-radius:14px;display:inline-flex;height:56px;justify-content:center;margin-bottom:1rem;width:56px}.login-title{color:var(--gcp-text-primary);font-size:1.375rem;font-weight:700;margin:0 0 .25rem}.login-subtitle{color:var(--gcp-text-secondary);font-size:.875rem;margin:0}.login-error-box{background:var(--gcp-error-bg);border:1px solid #d930254d;border-radius:.625rem;color:var(--gcp-error);font-size:.8125rem;margin-bottom:1rem;padding:.75rem 1rem}.login-ms-button{align-items:center;background:var(--gcp-bg-primary);border:1px solid var(--gcp-border);border-radius:.625rem;color:var(--gcp-text-primary);cursor:pointer;display:flex;font-size:.9375rem;font-weight:600;gap:.75rem;justify-content:center;margin-bottom:.25rem;padding:.75rem 1.5rem;text-decoration:none;transition:background .2s,border-color .2s}.login-ms-button:hover{background:var(--gcp-bg-hover);border-color:var(--gcp-border-dark)}.login-divider{align-items:center;display:flex;gap:.75rem;margin:.75rem 0}.login-divider-line{background:var(--gcp-border);flex:1;height:1px}.login-divider-text{color:var(--gcp-text-disabled);font-size:.75rem;font-weight:500}.login-form{gap:1.25rem}.login-field-group,.login-form{display:flex;flex-direction:column}.login-field-group{gap:.375rem}.login-label{color:var(--gcp-text-secondary);font-size:.8125rem;font-weight:500}.login-input{background:var(--gcp-bg-secondary);border:1px solid var(--gcp-border);border-radius:.625rem;color:var(--gcp-text-primary);font-size:.9375rem;outline:none;padding:.75rem 1rem;transition:border-color .2s}.login-input:focus{border-color:var(--gcp-blue);box-shadow:0 0 0 3px #1a73e826}.login-input::placeholder{color:var(--gcp-text-disabled)}.login-input-error{border-color:var(--gcp-error)!important}.login-btn-secondary{background:var(--gcp-bg-secondary);border:1px solid var(--gcp-border);border-radius:.625rem;color:var(--gcp-text-secondary);cursor:pointer;font-size:.875rem;font-weight:500;padding:.625rem 1.5rem;transition:background .2s,border-color .2s}.login-btn-secondary:hover:not(:disabled){background:var(--gcp-bg-hover);border-color:var(--gcp-border-dark)}.login-field-error{color:var(--gcp-error);font-size:.75rem;margin-top:.25rem}.login-footer{color:var(--gcp-text-disabled);font-size:.75rem;margin-top:1.5rem;text-align:center}.header-left,.header-right{align-items:center;display:flex}.header-right{gap:.5rem}.header-icon-xs{height:.75rem;width:.75rem}.header-icon-sm{height:1rem;width:1rem}.header-icon-md{height:1.5rem;width:1.5rem}.header-logo-icon{align-items:center;background:linear-gradient(135deg,#1a73e8,#1557b0);border-radius:.75rem;box-shadow:0 2px 4px #1a73e84d;color:#fff;display:flex;height:2.5rem;justify-content:center;margin-right:.75rem;width:2.5rem}.header-title{color:var(--gcp-text-primary);font-size:1.25rem;font-weight:700;line-height:1.2;margin:0}.header-subtitle{align-items:center;color:var(--gcp-text-disabled);display:flex;font-size:.75rem;gap:.25rem;margin:0}.header-dropdown-wrapper{position:relative}.header-role-btn{align-items:center;border:1px solid;border-radius:6px;cursor:pointer;display:flex;font-size:.75rem;font-weight:600;gap:.375rem;padding:.25rem .625rem}.header-dropdown{background:var(--gcp-bg-primary);border:1px solid var(--gcp-border);border-radius:8px;box-shadow:0 4px 12px #3c40434d;margin-top:4px;min-width:140px;overflow:hidden;position:absolute;right:0;top:100%;z-index:100}.header-dropdown-title{border-bottom:1px solid var(--gcp-border);color:var(--gcp-text-disabled);font-size:.6875rem;font-weight:600;padding:6px 12px}.header-dropdown-item{align-items:center;background:#0000;border:none;color:var(--gcp-text-primary);cursor:pointer;display:flex;font-size:.8125rem;gap:8px;padding:8px 12px;text-align:left;width:100%}.header-dropdown-item.active,.header-dropdown-item:hover{background:var(--gcp-bg-hover)}.header-role-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.header-dropdown-item-label{flex:1}.header-check{color:var(--gcp-blue);font-size:.75rem}.header-role-original{color:var(--gcp-text-disabled);font-size:.625rem}.header-dropdown-divider{border-top:1px solid var(--gcp-border)}.header-dropdown-reset{background:#0000;border:none;color:var(--gcp-error);cursor:pointer;font-size:.75rem;font-weight:500;padding:8px 12px;text-align:center;width:100%}.header-dropdown-reset:hover{background:var(--gcp-error-bg)}.header-demo-btn{align-items:center;background:#0000;border:1px solid var(--gcp-border);border-radius:6px;color:var(--gcp-text-secondary);cursor:pointer;display:flex;font-size:.75rem;font-weight:500;gap:.375rem;padding:.25rem .625rem}.header-demo-btn.active{background:#f59e0b26;border-color:#e37400;color:#e37400}.header-toggle-track{background:var(--gcp-border-dark);border-radius:8px;display:inline-block;height:16px;position:relative;transition:background .2s;width:28px}.header-toggle-track.active{background:#e37400}.header-toggle-thumb{background:#fff;border-radius:50%;box-shadow:0 1px 2px #0003;height:12px;left:2px;position:absolute;top:2px;transition:left .2s;width:12px}.header-toggle-thumb.active{left:14px}.header-username{color:var(--gcp-text-disabled);font-size:.8125rem}.header-status-badge{align-items:center;background:#e6f4ea;border:1px solid #a8dab5;border-radius:9999px;display:flex;gap:.5rem;padding:.5rem 1rem}.header-status-dot{animation:pulse 2s infinite;background-color:#1e8e3e;border-radius:50%;height:.5rem;width:.5rem}.header-status-text{color:#1e8e3e;font-size:.75rem;font-weight:500}.header-logout-btn{align-items:center;background:#0000;border:1px solid var(--gcp-border);border-radius:8px;color:var(--gcp-text-secondary);cursor:pointer;display:flex;font-size:.75rem;font-weight:500;gap:.375rem;padding:.375rem .75rem;transition:background .15s}.header-logout-btn:hover{background:var(--gcp-bg-hover)}.header-override-banner{align-items:center;background:#f59e0b26;border-bottom:1px solid #f59e0b4d;color:#e37400;display:flex;font-size:.8125rem;font-weight:500;gap:12px;justify-content:center;padding:6px 1rem}.header-override-dismiss{background:#0000;border:1px solid #e37400;border-radius:4px;color:#e37400;cursor:pointer;font-size:.6875rem;font-weight:600;padding:2px 10px}.header-override-dismiss:hover{background:#f59e0b26}.toast-container{align-items:flex-start;border-radius:.5rem;box-shadow:var(--shadow-md);display:flex;gap:.75rem;max-width:24rem;min-width:20rem;padding:1rem;transition:all .2s cubic-bezier(.4,0,.2,1)}.toast-icon-size{height:1.25rem;width:1.25rem}.toast-icon{flex-shrink:0;margin-top:.125rem}.toast-content{flex:1;min-width:0}.toast-title{color:var(--gcp-text-primary);font-size:.875rem;font-weight:500}.toast-message{color:var(--gcp-text-secondary);font-size:.8125rem;line-height:1.4}.toast-close-btn{background:none;border:none;color:var(--gcp-text-secondary);cursor:pointer;flex-shrink:0;padding:.25rem;transition:color var(--transition)}.toast-close-btn:hover{color:var(--gcp-text-primary)}.error-view-container{align-items:center;display:flex;justify-content:center;min-height:400px;padding:2rem;width:100%}.error-view-inner{max-width:32rem;text-align:center}.error-view-icon-circle{align-items:center;border-radius:50%;display:inline-flex;height:4rem;justify-content:center;margin-bottom:1.5rem;width:4rem}.error-view-icon-circle.error{background-color:var(--gcp-error-bg)}.error-view-icon-circle.warning{background-color:var(--gcp-warning-bg)}.error-view-icon{height:2rem;width:2rem}.error-view-icon-circle.error .error-view-icon{color:var(--gcp-error)}.error-view-icon-circle.warning .error-view-icon{color:var(--gcp-warning)}.error-view-title{color:var(--gcp-text-primary);font-size:1.25rem;font-weight:600;margin-bottom:.75rem}.error-view-message{color:var(--gcp-text-secondary);font-size:.9375rem;line-height:1.6;margin-bottom:1rem}.error-view-code{background-color:var(--gcp-bg-secondary);border-radius:.25rem;color:var(--gcp-text-disabled);display:inline-block;font-family:monospace;font-size:.75rem;margin-bottom:1.5rem;padding:.25rem .5rem}.error-view-retry{margin:1.5rem 0}.error-view-retry .ts-btn{align-items:center;display:inline-flex;gap:.5rem}.error-view-help{background-color:var(--gcp-bg-secondary);border-radius:.5rem;color:var(--gcp-text-secondary);font-size:.8125rem;line-height:1.5;padding:.875rem}.error-view-help.error{border-left:3px solid var(--gcp-error)}.error-view-help.warning{border-left:3px solid var(--gcp-warning)}.access-denied-container{flex-direction:column;min-height:400px;padding:2rem;text-align:center}.access-denied-container,.access-denied-icon-circle{align-items:center;display:flex;justify-content:center}.access-denied-icon-circle{background:var(--gcp-error-bg);border-radius:50%;height:64px;margin-bottom:1.5rem;width:64px}.access-denied-title{color:var(--gcp-text-primary);font-size:1.25rem;font-weight:600;margin-bottom:.5rem}.access-denied-message{color:var(--gcp-text-secondary);margin-bottom:1.5rem;max-width:400px}[data-theme=dark] .sidebar-drawer-footer,[data-theme=dark] .sidebar-drawer-header{background:var(--gcp-bg-primary);border-color:var(--gcp-border)}[data-theme=dark] .sidebar-service-switcher{border-color:var(--gcp-border)}[data-theme=dark] .sidebar-service-item{color:var(--gcp-text-secondary)}[data-theme=dark] .sidebar-service-item:hover{color:var(--gcp-text-primary)}[data-theme=dark] .sidebar-service-item.active{background:var(--gcp-blue-light);color:var(--gcp-blue)}[data-theme=dark] .sidebar-section-label{color:var(--gcp-text-secondary)}[data-theme=dark] .sidebar-favorites-card{background:var(--gcp-bg-hover);border-color:var(--gcp-border)}[data-theme=dark] .mobile-tab-bar{background:var(--gcp-bg-primary);border-color:var(--gcp-border)}[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea{background-color:var(--gcp-bg-primary);border-color:var(--gcp-border);color:var(--gcp-text-primary)}[data-theme=dark] .spinner{border-top-color:var(--gcp-blue)}
/*# sourceMappingURL=main.d5d1339e.css.map*/