:root{--color-bg:#f4f4f5;--color-surface:#fff;--color-border:#00000014;--color-text:#18181b;--color-text-muted:#71717a;--color-text-faint:#a1a1aa;--color-primary:#ff8200;--color-primary-soft:#ff84001b;--gradient:linear-gradient(135deg, #ff8200 0%, #f73e5e 100%);--header-height:3.5rem;--sidebar-width:13.75rem;--sidebar-collapsed:4rem;--radius-sm:.375rem;--radius-md:.625rem;--radius-lg:.875rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--font-body:"Inter", system-ui, sans-serif;--font-size-base:1rem;--font-size-sm:.9rem;--font-size-xs:.8rem;--font-size-tiny:.75rem;--icon-size:1.125rem;--transition:.15s cubic-bezier(.16, 1, .3, 1)}@media (width>=90rem){:root{--header-height:4rem;--sidebar-width:16.25rem;--sidebar-collapsed:4.5rem;--font-size-base:1.0625rem;--font-size-sm:.9375rem;--font-size-xs:.8125rem;--font-size-tiny:.875rem;--icon-size:1.25rem;--space-3:.875rem;--space-4:1.125rem;--space-5:1.375rem;--space-6:1.75rem}}@media (width>=120rem){:root{--header-height:4.25rem;--sidebar-width:17.5rem;--sidebar-collapsed:5rem;--font-size-base:1.125rem;--font-size-sm:1rem;--font-size-xs:.875rem;--font-size-tiny:.9375rem;--icon-size:1.375rem}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);font-size:var(--font-size-base);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased}.app-layout{grid-template-rows:var(--header-height) 1fr;grid-template-columns:var(--sidebar-width) 1fr;height:100dvh;transition:grid-template-columns var(--transition);grid-template-areas:"header header""sidebar main";display:grid;overflow:hidden}.app-layout.collapsed{grid-template-columns:var(--sidebar-collapsed) 1fr}.app-layout.no-header{grid-template-rows:1fr;grid-template-areas:"sidebar main"}.header{padding:0 var(--space-5);background:var(--color-surface);border-bottom:1px solid var(--color-border);box-sizing:border-box;height:var(--header-height);z-index:30;grid-area:header;justify-content:space-between;align-items:center;display:flex}.logo{font-size:var(--font-size-base);color:var(--color-primary);white-space:nowrap;font-weight:600;line-height:1;display:block}.header-auth{align-items:center;gap:var(--space-2);display:flex}.login-dropdown{top:calc(var(--header-height) + var(--space-2));right:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);gap:var(--space-3);z-index:100;flex-direction:column;min-width:12.5rem;display:flex;position:absolute;box-shadow:0 .5rem 1.5rem #00000014}.login-dropdown select{font-size:var(--font-size-sm);padding:.375rem var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);cursor:pointer}.btn{font-size:var(--font-size-sm);border-radius:var(--radius-sm);cursor:pointer;transition:opacity var(--transition), background var(--transition), color var(--transition);border:none;padding:.8rem 2rem;font-weight:600}.btn-primary{background:var(--gradient);color:#fff}.btn-primary:hover{opacity:.8}.btn-ghost{color:var(--color-text-muted);background:0 0;border:none;position:relative}.btn-ghost:before{content:"";border-radius:var(--radius-sm);background:var(--gradient);-webkit-mask-composite:xor;pointer-events:none;padding:2px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.btn-ghost:hover{background:var(--gradient);color:#fff}.btn-ghost:hover:before{display:none}.select{border:1px solid var(--color-border);border-radius:var(--radius-sm);height:1.875rem;font-size:var(--font-size-tiny);cursor:pointer;background:#f9fafb;padding:.25rem .5rem}.sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);padding:0 var(--space-3) var(--space-4);transition:width var(--transition), padding var(--transition);width:var(--sidebar-width);z-index:20;flex-direction:column;grid-area:sidebar;display:flex;overflow-y:auto}.sidebar.collapsed{width:var(--sidebar-collapsed);padding:0 var(--space-2) var(--space-4)}.sidebar.open{left:0;top:var(--header-height);height:calc(100% - var(--header-height));width:var(--sidebar-width);position:absolute;box-shadow:.5rem 0 1.5rem #0000001a}.sidebar-top{height:var(--header-height);min-height:var(--header-height);box-sizing:border-box;flex-shrink:0;position:relative}.sidebar-top:after{content:"";background:var(--color-border);height:1px;position:absolute;bottom:0;left:0;right:0}.sidebar-top-inner{place-items:center;width:100%;height:100%;display:grid}.sidebar-top.empty .sidebar-top-inner{visibility:hidden}.sidebar-top .logo{margin:1.5rem .5rem}.sidebar-logo-placeholder{border-radius:var(--radius-md);background:var(--color-primary-soft);width:2.5rem;height:2.5rem;color:var(--color-primary);font-size:var(--font-size-sm);place-items:center;margin:.8rem .5rem;font-weight:700;line-height:1;display:grid}.sidebar-nav{gap:var(--space-1);padding-top:var(--space-3);flex-direction:column;flex:1;display:flex}.sidebar-nav-item{align-items:center;gap:var(--space-3);padding:.5625rem var(--space-3);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:var(--font-size-sm);transition:background var(--transition), color var(--transition);font-weight:500;text-decoration:none;display:flex}.sidebar-nav-item:hover,.sidebar-nav-icon:hover{background:var(--color-bg);color:var(--color-text)}.sidebar-nav-item.active{background:var(--color-primary-soft);color:var(--color-primary)}.sidebar-nav-icon{width:var(--icon-size);height:var(--icon-size);transition:opacity var(--transition);flex-shrink:0}.sidebar-tenant{padding:0 var(--space-3) var(--space-3)}.tenant-field{gap:var(--space-2);flex-direction:column;display:flex}.tenant-label,.role{font-size:var(--font-size-tiny);color:var(--color-text-muted)}.tenant-select{width:100%}.sidebar-bottom{padding:var(--space-3);margin-top:var(--space-4);border-top:1px solid var(--color-border);gap:var(--space-3);flex-direction:column;display:flex}.role{font-size:var(--font-size-sm);color:var(--color-primary);font-weight:700}.sidebar.collapsed .sidebar-nav-item{justify-content:center;gap:0;padding-inline:0}.sidebar.collapsed .sidebar-nav-icon{width:var(--icon-size);height:var(--icon-size)}.sidebar.collapsed .sidebar-nav-item:hover .sidebar-nav-icon,.sidebar.collapsed .sidebar-nav-item.active .sidebar-nav-icon{opacity:1}main{background:var(--color-bg);transition:all var(--transition);grid-area:main;padding:0;overflow:hidden}.view{height:100%;padding:var(--space-6);background:var(--color-bg);overflow-y:auto}.view--iframe{padding:0;overflow:hidden}.view h1{letter-spacing:-.02em;margin-bottom:var(--space-2);font-size:1.25rem;font-weight:600}.subtitle{color:var(--color-text-muted);font-size:var(--font-size-sm);margin-bottom:var(--space-6)}.iframe-wrapper{background:var(--color-surface);width:100%;height:100%;overflow:hidden}.iframe-wrapper iframe{border:none;width:100%;height:100%;display:block}.landing{min-height:100%;padding:var(--space-10);text-align:center;flex-direction:column;justify-content:center;align-items:center;margin-top:5%;display:flex}.landing-hero{width:100%;max-width:56.25rem}.landing-hero h1{letter-spacing:-.04em;margin-bottom:var(--space-5);background:var(--gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:800;line-height:1.05;font-size:clamp(2.625rem,6vw,4.5rem)!important}.landing-desc{color:var(--color-text-muted);max-width:58ch;margin:0 auto;font-size:.9375rem;line-height:1.75}.landing-pillars{gap:var(--space-4);width:100%;max-width:56.25rem;margin-top:var(--space-10);grid-template-columns:repeat(3,1fr);display:grid}.pillar{gap:var(--space-3);padding:var(--space-6);background:var(--color-surface);border-radius:var(--radius-lg);text-align:left;background-clip:padding-box;border:1px solid #0000;flex-direction:column;display:flex;position:relative}.pillar:before{content:"";border-radius:var(--radius-lg);background:var(--gradient);-webkit-mask-composite:xor;pointer-events:none;padding:1px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.pillar-label{font-size:var(--font-size-tiny);letter-spacing:.06em;text-transform:uppercase;background:var(--gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:700}.pillar p{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0;line-height:1.65}.overlay{background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.overlay-content{background:#fff;border-radius:.625rem;width:18.75rem;padding:1.25rem}.overlay-actions{justify-content:space-between;margin-top:.625rem;display:flex}.input{width:100%;margin-top:var(--space-2);padding:.375rem}.module-row{justify-content:space-between;align-items:center;display:flex}.actions{gap:.375rem;display:flex}.empty{font-size:var(--font-size-tiny);color:var(--color-text-muted)}.admin-list{margin-top:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);flex-direction:column;gap:0;display:flex;overflow:hidden}.admin-section+.admin-section{border-top:1px solid var(--color-border)}.admin-section-header{padding:var(--space-3) var(--space-4);background:var(--color-bg)}.admin-modules{padding:var(--space-2) 0;list-style:none}.admin-modules li{padding:var(--space-2) var(--space-4)}.module-row--default{color:var(--color-text-muted);justify-content:space-between;align-items:center;display:flex}@media (width<=64rem){.app-layout{grid-template-columns:var(--sidebar-collapsed) 1fr}.sidebar{width:var(--sidebar-collapsed)}.sidebar:not(.open) .sidebar-nav-item span,.sidebar:not(.open) .sidebar-bottom{display:none}.sidebar:not(.open) .sidebar-nav-item{justify-content:center;gap:0;padding-inline:0}}
