:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#eef5ff;background:#0c1018;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button{cursor:pointer}#root{min-height:100vh}.shell{--bg: #070b14;--sidebar: #080d18;--panel: #101827;--panel-soft: #131c2c;--panel-hover: #162235;--border: rgba(161, 178, 201, .12);--border-strong: rgba(161, 178, 201, .2);--text: #f5f8fc;--muted: #97a6ba;--muted-strong: #c5d0de;--cyan: #22d3ee;--violet: #a78bfa;--orange: #fb923c;--blue: #60a5fa;--green: #86efac;--red: #fda4af;--focus: rgba(167, 139, 250, .22);display:grid;grid-template-columns:272px minmax(0,1fr);min-height:100vh;background:var(--bg);color:var(--text);font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;font-size:14px;letter-spacing:0}.shell.sidebar-collapsed{grid-template-columns:82px minmax(0,1fr)}.shell.light{--bg: #eef3f8;--sidebar: #f8fbff;--panel: #ffffff;--panel-soft: #f4f7fb;--panel-hover: #eef5fb;--border: rgba(20, 32, 51, .12);--border-strong: rgba(20, 32, 51, .2);--text: #142033;--muted: #5d6b7f;--muted-strong: #2f3d52;--blue: #2563eb;--green: #15803d;--red: #b91c1c;--focus: rgba(124, 58, 237, .16)}.sidebar{border-right:1px solid var(--border);background:var(--sidebar);padding:0}.brand{position:relative;display:flex;align-items:center;gap:12px;min-height:86px;border-bottom:1px solid var(--border);padding:14px 16px}.sidebar-toggle{position:absolute;right:8px;bottom:-13px;z-index:2;display:grid;width:32px;height:32px;place-items:center;border:0!important;border-radius:999px!important;background:transparent!important;color:var(--orange)!important;padding:6px!important}.sidebar-toggle:hover{background:color-mix(in srgb,var(--orange) 11%,transparent)!important}.sidebar-toggle svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.forky-logo{width:58px;height:58px;flex:0 0 auto}.brand strong,.brand small{display:block}.brand strong{font-size:17px;font-weight:900;letter-spacing:.06em;line-height:1.04;text-transform:uppercase}.brand strong span{display:block}.brand strong span:last-child{color:var(--orange)}.brand small{margin-top:6px;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.22em;text-transform:uppercase}nav{display:grid;gap:0;padding:8px 0 18px}button,input,select,textarea{font:inherit}nav button,.panel button,.form button,.topbar button{border:1px solid transparent;border-radius:8px;background:transparent;color:var(--muted-strong);padding:9px 12px;transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease}nav button{position:relative;display:grid;grid-template-columns:17px minmax(0,1fr) auto;align-items:center;gap:10px;width:calc(100% - 20px);min-height:40px;margin:0 10px 4px;text-align:left;font-size:13px;font-weight:750}.sidebar-collapsed .brand{justify-content:center;padding-inline:10px}.sidebar-collapsed .brand-text,.sidebar-collapsed .nav-title span:first-child,.sidebar-collapsed nav button span:not(.nav-count),.sidebar-collapsed .nav-count{display:none}.sidebar-collapsed .forky-logo{width:44px;height:44px}.sidebar-collapsed nav button{grid-template-columns:1fr;justify-items:center;width:46px;margin-inline:auto;padding:10px!important}.sidebar-collapsed .nav-title{justify-content:center;width:46px;margin-inline:auto}.sidebar-collapsed .nav-arrow{transform:rotate(45deg)}.sidebar-collapsed .nav-group.closed .nav-items{max-height:360px;opacity:1;pointer-events:auto}nav button:before{content:"";position:absolute;top:8px;bottom:8px;left:-1px;width:2px;border-radius:999px;background:transparent;transition:background .16s ease}nav button:hover{background:var(--panel-hover);color:var(--text)}nav button:hover:before,nav button.active:before{background:var(--orange)}nav button.active{background:color-mix(in srgb,var(--panel-hover) 82%,var(--text));color:var(--text);font-weight:850;box-shadow:inset 0 0 0 1px #a1b2c914}.nav-group{border-bottom:1px solid rgba(161,178,201,.08);padding:10px 0}.nav-main{padding-top:2px}.nav-title{display:flex;align-items:center;justify-content:space-between;width:calc(100% - 20px);min-height:30px;margin:0 10px 7px;border:0;border-radius:6px;background:transparent;padding:4px 7px;color:var(--muted);font-size:10px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.nav-title:before{display:none}.nav-title:hover{background:#a1b2c90d;color:var(--muted-strong)}.nav-arrow{display:inline-block;width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;color:var(--muted);transform:rotate(45deg);transition:transform .18s ease,color .16s ease}.nav-group.closed .nav-arrow{transform:rotate(-45deg)}.nav-title:hover .nav-arrow{color:var(--orange)}.nav-items{max-height:360px;overflow:hidden;transition:max-height .22s ease,opacity .18s ease}.nav-group.closed .nav-items{max-height:0;opacity:0;pointer-events:none}.nav-icon{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.nav-icon-cyan,.nav-icon-blue{color:var(--cyan)}.nav-icon-violet,.nav-icon-pink{color:var(--violet)}.nav-icon-yellow{color:var(--orange)}nav button.active .nav-icon{color:var(--orange)}nav button:hover .nav-icon{color:var(--muted-strong)}.nav-count{min-width:22px;border:1px solid rgba(151,166,186,.16);border-radius:999px;background:#97a6ba14;color:var(--muted);padding:1px 6px;text-align:center;font-size:11px;font-weight:800}nav button.active .nav-count,nav button:hover .nav-count{border-color:#fb923c38;background:#fb923c1a;color:var(--orange)}button:hover{border-color:var(--border-strong);background:#a1b2c914}button:disabled{cursor:not-allowed;opacity:.5}.main{min-width:0;padding:0}.topbar{display:flex;align-items:center;justify-content:flex-end;gap:16px;min-height:68px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--panel) 88%,var(--bg));padding:0 28px}.auth-shell{--bg: #070b14;--panel: #101827;--panel-soft: #131c2c;--border: rgba(161, 178, 201, .12);--border-strong: rgba(161, 178, 201, .2);--text: #f5f8fc;--muted: #97a6ba;--muted-strong: #c5d0de;--orange: #fb923c;--violet: #a78bfa;--cyan: #22d3ee;--focus: rgba(167, 139, 250, .22);position:relative;display:grid;width:100vw;min-height:100vh;place-items:center;overflow:hidden;background-image:url(/assets/login-background-CPE6hrmS.jpg);background-position:center;background-repeat:no-repeat;background-size:cover;color:var(--text);font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;padding:24px}.auth-shell:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:linear-gradient(135deg,#050a19b8,#050a1980 52%,#111827c2),#050a198c}.login-panel{position:relative;z-index:1;display:grid;gap:26px;width:min(440px,calc(100vw - 48px));border:1px solid rgba(255,255,255,.1);border-radius:18px;background:#0a1426e0;box-shadow:0 28px 80px #0000006b;padding:38px 40px 40px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.login-brand{display:grid;justify-items:center;gap:12px;text-align:center}.login-brand .forky-logo{width:132px;height:132px}.login-brand strong,.login-brand small{display:block}.login-brand strong{font-size:26px;font-weight:900;letter-spacing:.06em;line-height:1.02;text-transform:uppercase}.login-brand strong span{display:block}.login-brand strong span:last-child{color:var(--orange)}.login-brand small{margin-top:2px;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.22em;text-transform:uppercase}.login-form{display:grid;gap:16px}.login-form label{color:#edf5ffd6;font-weight:750}.login-form input{min-height:46px;border-color:#ffffff24;background:#070b14bd}.login-form input::placeholder{color:#97a6baa3}.login-remember{display:flex;align-items:center;gap:8px;color:#edf5ffb8;font-size:13px;font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none}.login-remember input[type=checkbox]{width:16px;height:16px;min-height:unset;cursor:pointer;accent-color:var(--orange)}.login-form .primary-action{width:100%;min-height:46px;margin-top:4px;justify-content:center}.user-chip{display:flex;align-items:center;gap:10px;color:var(--muted-strong);font-size:13px;font-weight:650;border:0!important;background:transparent!important;padding:0!important;cursor:pointer}.logout-button{border:1px solid var(--border-strong)!important;border-radius:999px!important;background:#a1b2c90f!important;color:var(--muted-strong)!important;font-size:12px;font-weight:800;padding:8px 12px!important;white-space:nowrap}.user-chip strong{display:grid;width:34px;height:34px;place-items:center;border:1px solid rgba(167,139,250,.3);border-radius:999px;background:#a78bfa29;color:#fff;font-size:12px}.user-chip:hover{color:var(--text)}.shell.light .user-chip strong{color:#5b3fb5}.theme-toggle{position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;width:58px;height:32px;border:1px solid var(--border-strong)!important;border-radius:999px!important;background:var(--panel-soft)!important;color:var(--muted-strong)!important;padding:3px!important}.theme-toggle:before{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:999px;background:#a78bfa2e;box-shadow:inset 0 0 0 1px #a78bfa38;transition:transform .16s ease}.theme-toggle svg{position:relative;z-index:1;width:15px;height:15px;margin:auto;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.shell.light .theme-toggle:before{transform:translate(26px)}.notice,.state{border:1px solid rgba(34,211,238,.22);border-radius:8px;background:#22d3ee14;padding:10px 12px}.notice{position:fixed;top:18px;right:18px;z-index:30;width:min(360px,calc(100vw - 36px));border-color:color-mix(in srgb,var(--green) 32%,var(--border));background:color-mix(in srgb,var(--panel) 92%,var(--green));box-shadow:0 16px 34px #0000003d;color:var(--text);font-size:13px;font-weight:700}.state.error{border-color:#fb923c59;background:#fb923c1a}.loading-spinner-wrap{display:inline-grid;place-items:center;min-width:1em;min-height:1em}.loading-spinner-wrap.centered{min-height:78px;width:100%}.loading-spinner{width:24px;height:24px;border:3px solid rgba(251,146,60,.22);border-top-color:var(--orange);border-radius:50%;animation:spinner-rotate .76s linear infinite}.loading-spinner.small{width:16px;height:16px;border-width:2px}.loading-spinner.large{width:34px;height:34px}.button-with-spinner{display:inline-flex!important;align-items:center;justify-content:center;min-width:92px;min-height:38px}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.metric,.panel{border:1px solid var(--border);border-radius:8px;background:var(--panel);box-shadow:0 14px 32px #0000002e}.shell.light .metric,.shell.light .panel{box-shadow:0 14px 26px #1f2d3d14}.metric{padding:18px}.metric span{color:var(--muted);text-transform:capitalize}.metric strong{display:block;margin-top:12px;font-size:34px}.reports-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;padding:14px}.report-table{min-width:0}.report-table h3{margin:0 0 10px;font-size:15px}.report-table table{min-width:0}.crud-page{display:grid;gap:18px;padding:28px}.page-titlebar{display:flex;align-items:center;justify-content:space-between;gap:16px}.page-titlebar h2{margin:0;font-size:20px;line-height:1.2}.breadcrumb-line{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 5px;color:var(--muted);font-size:12px;font-weight:800}.breadcrumb-button{border:0!important;background:transparent!important;color:var(--muted-strong)!important;padding:0!important;font:inherit;text-align:left}.breadcrumb-button:hover{color:var(--orange)!important}.panel{min-width:0;overflow:hidden;padding:0}.panel-head{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;margin-bottom:0;border-bottom:1px solid var(--border);padding:10px 14px}.panel-head input,.panel-head select{max-width:240px}.panel-head input{margin-right:auto}.table-tools{display:flex;gap:8px}input,select,textarea{width:100%;border:1px solid var(--border-strong);border-radius:8px;background:color-mix(in srgb,var(--panel-soft) 82%,var(--bg));color:var(--text);padding:8px 10px;outline:none;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}input:focus,select:focus,textarea:focus{border-color:color-mix(in srgb,var(--violet) 54%,var(--border-strong));box-shadow:0 0 0 3px var(--focus)}input::placeholder{color:var(--muted)}select option{background:#111827;color:#edf5ff}.shell.light select option{background:#fff;color:#172033}textarea{min-height:86px;resize:vertical}label{display:grid;gap:6px;color:var(--muted-strong);font-size:13px}.required{color:var(--red)}.form{display:grid;gap:14px;padding:16px}.inline-form{box-shadow:none}.form-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.form-heading.compact-heading{justify-content:flex-end;min-height:0}.form-heading h3{margin:0;font-size:18px}.form-heading-actions,.form-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start}.form-actions{margin-top:2px}.field-with-action{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.inline-secondary-action{border:1px solid var(--border-strong)!important;border-radius:8px!important;background:#a1b2c90f!important;color:var(--muted-strong)!important;white-space:nowrap}.danger-action{border:1px solid color-mix(in srgb,var(--red) 36%,var(--border))!important;background:color-mix(in srgb,var(--red) 10%,transparent)!important;color:var(--red)!important}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;align-items:start}.application-form{padding:18px}.application-form .form-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px 16px}.application-form .field-descripcion,.application-form .field-activo{grid-column:1 / -1}.application-form textarea{min-height:132px}.module-form .form-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.related-panel{display:grid}.related-panel-head{align-items:center;justify-content:space-between}.related-panel-head h3{margin:0;font-size:16px}.related-table{min-width:460px}.actions-heading{width:1%}.readonly-form input,.readonly-form select,.readonly-form textarea{background:color-mix(in srgb,var(--panel-soft) 54%,var(--bg));color:var(--text)}.readonly-form input[readonly],.readonly-form textarea[readonly],.readonly-form select:disabled,.readonly-form input:disabled{opacity:1;cursor:default}.provisioning-form{align-content:start}.provisioning-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.provisioning-grid fieldset{display:grid;gap:12px;min-width:0;margin:0;border:1px solid var(--border);border-radius:8px;padding:14px}.provisioning-grid legend{padding:0 6px;color:var(--text);font-size:13px;font-weight:800}.provisioning-result{padding:16px}.provisioning-result h3,.provisioning-result p{margin:0}.provisioning-result p+p{margin-top:6px}.form-grid .check{min-height:58px;align-items:center;align-self:end}.icon-select-field{min-width:0}.icon-select-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:10px;align-items:center}.icon-select-row img{width:48px;height:48px;border:1px solid var(--border);border-radius:8px;background:#090d16;object-fit:contain}.custom-icon-row{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;align-items:start;border:1px solid var(--border);border-radius:8px;background:color-mix(in srgb,var(--panel-soft) 68%,var(--bg));padding:12px}.custom-icon-preview{display:grid;width:72px;height:72px;place-items:center;border:1px solid var(--border);border-radius:8px;background:#090d16}.custom-icon-preview img{width:58px;height:58px;object-fit:contain}.custom-icon-controls{display:grid;gap:8px}.custom-icon-controls small{color:var(--muted);font-size:12px}.file-picker{display:inline-flex;align-items:center;justify-self:start;cursor:pointer}.file-picker input{display:none}.icon-manager{width:min(860px,calc(100vw - 32px));max-height:min(760px,calc(100vh - 40px));overflow:auto;border:1px solid var(--border);border-radius:8px;background:var(--panel);color:var(--text);box-shadow:0 26px 70px #0000006b}.icon-manager-form{border:1px solid var(--border);border-radius:8px;background:color-mix(in srgb,var(--panel-soft) 62%,var(--panel));padding:12px}.icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}.icon-card{display:grid;grid-template-columns:52px minmax(0,1fr);gap:10px;align-items:center;border:1px solid var(--border);border-radius:8px;background:var(--panel-soft);padding:10px}.icon-card.selected{border-color:color-mix(in srgb,var(--orange) 62%,var(--border));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--orange) 26%,transparent)}.icon-card img{width:52px;height:52px;border:1px solid var(--border);border-radius:8px;background:#090d16;object-fit:contain}.icon-card strong,.icon-card span{display:block}.icon-card strong{color:var(--text);line-height:1.2;overflow-wrap:anywhere}.icon-card span{margin-top:4px;color:var(--muted);font-size:12px}.icon-card .actions{grid-column:1 / -1;justify-content:flex-start}.check{display:flex;align-items:center;gap:10px}.check input,td input[type=checkbox],.role-group input{width:auto}.table-wrap{overflow:auto}.application-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;padding:16px}.application-card{display:grid;gap:12px;min-height:230px;border:1px solid var(--border);border-top:2px solid var(--app-color, var(--orange));border-radius:8px;background:var(--panel-soft);padding:14px;box-shadow:0 12px 24px #00000029}.application-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.application-card-top img{width:56px;height:56px;border-radius:8px;background:#090d16;object-fit:contain}.application-card h3{margin:0;font-size:17px;line-height:1.2}.application-card p{margin:-6px 0 0;color:var(--muted);font-size:12px}.application-card-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.application-card-stats span{border:1px solid var(--border);border-radius:8px;padding:8px;color:var(--muted-strong);font-size:12px}.application-card-stats strong{display:block;color:var(--text);font-size:18px}.application-card-details{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 10px;align-items:baseline}.application-card-details span{color:var(--muted);font-size:11px;font-weight:850;text-transform:uppercase}.application-card-details strong,.application-card-details a{min-width:0;color:var(--text);font-size:13px;overflow-wrap:anywhere;text-decoration:none}.application-card-details a:hover{color:var(--orange)}.application-card-actions{justify-content:flex-start;margin-top:auto}table{width:100%;min-width:720px;border-collapse:collapse}th,td{border-bottom:1px solid rgba(161,178,201,.09);padding:7px 12px;text-align:left;vertical-align:middle}th{color:var(--muted);font-size:12px;line-height:1.1;text-transform:none}td{font-size:13px;line-height:1.25}.actions{display:flex;flex-wrap:nowrap;gap:4px;justify-content:flex-end}.actions button{border:1px solid var(--border-strong);border-radius:8px;background:#a1b2c912;color:var(--muted-strong);padding:5px 9px;font-size:12px;font-weight:750}.actions .icon-action{display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center;border-color:transparent;background:transparent;padding:0;color:var(--muted-strong)}.actions .text-icon-action{display:inline-flex;align-items:center;gap:6px}.usuario-form .form-grid,.role-form .form-grid,.relation-form .form-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.relation-form .field-user_id{grid-column:1 / 2}.actions button:hover{background:#a1b2c91f}.actions .icon-action:hover{border-color:color-mix(in srgb,var(--orange) 28%,var(--border));background:#fb923c14;color:var(--orange)}.actions button:nth-child(2):not(.icon-action){border-color:color-mix(in srgb,var(--violet) 36%,var(--border));background:color-mix(in srgb,var(--violet) 10%,transparent);color:var(--violet)}.actions button:nth-child(3){border-color:#fb923c4d;background:#fb923c17;color:var(--orange)}.actions button:nth-child(4){border-color:color-mix(in srgb,var(--red) 36%,var(--border));background:color-mix(in srgb,var(--red) 10%,transparent);color:var(--red)}.primary-action{border:1px solid rgba(251,146,60,.78)!important;border-radius:8px!important;background:#fb923c!important;color:#111827!important;box-shadow:none;font-weight:850;padding:10px 18px!important}.primary-action:hover{border-color:#fb923c94!important;background:#f97316!important;box-shadow:0 8px 22px #fb923c1f}.secondary-action{border:1px solid var(--border-strong)!important;border-radius:8px!important;background:#a1b2c90f!important;color:var(--muted-strong)!important;font-weight:800;padding:8px 14px!important}.secondary-action:hover{background:#a1b2c91f!important}.pagination-bar{display:flex;align-items:center;gap:10px;justify-content:flex-start;padding:10px 14px;color:var(--muted);font-size:12px}.pagination-bar select{width:72px;padding:5px 8px}.pages{display:flex;gap:4px;margin-left:auto}.pages button{min-width:26px;padding:4px 7px}.pages button.active{border-color:color-mix(in srgb,var(--orange) 44%,var(--border-strong));background:#fb923c1f;color:var(--orange)}.pill{display:inline-flex;min-width:64px;justify-content:center;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:800}.pill.on{background:color-mix(in srgb,var(--green) 16%,transparent);color:var(--green)}.pill.off{background:color-mix(in srgb,var(--red) 14%,rgba(151,166,186,.08));color:var(--red)}dialog{width:min(720px,calc(100vw - 32px));border:1px solid var(--border);border-radius:8px;background:var(--panel);color:var(--text)}dialog pre{overflow:auto;white-space:pre-wrap}.record-view{display:grid;gap:14px;padding:18px}.record-detail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}.record-detail div{border:1px solid var(--border);border-radius:8px;padding:10px}.record-detail dt{color:var(--muted);font-size:12px;text-transform:capitalize}.record-detail dd{margin:4px 0 0;color:var(--text);overflow-wrap:anywhere}.section-manager{display:grid;gap:14px;max-height:min(720px,calc(100vh - 40px));overflow:auto;padding:18px}.section-manager-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-manager-head h3{margin:0}.section-manager-form{display:grid;gap:10px}.section-list{display:grid;gap:8px}.section-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;border:1px solid var(--border);border-radius:8px;padding:10px}.section-row button:disabled{opacity:.48}.section-row strong,.section-row span{display:block}.section-row span{color:var(--muted);font-size:12px}.close{float:right}.role-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.role-group{border:1px solid var(--border);border-radius:8px;padding:14px}.portal{display:grid;gap:18px;padding:20px 28px 32px}.portal-section{min-height:158px;border:1px solid var(--border);border-radius:8px;background:var(--panel);box-shadow:0 14px 32px #0000002e;overflow:hidden}.shell.light .portal-section{box-shadow:0 14px 26px #1f2d3d14}.portal-section h2{margin:0;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--panel-soft) 65%,var(--panel));padding:10px 14px;font-size:14px;font-weight:850;line-height:1.2}.app-grid{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start;justify-content:flex-start;min-height:116px;padding:16px}.app-tile{position:relative;width:124px;min-height:132px;border:1px solid var(--border);border-radius:8px;background:var(--panel-soft);color:var(--text);text-align:center;text-decoration:none;box-shadow:0 10px 22px #00000024;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.app-tile-link{display:grid;grid-template-rows:1fr auto;justify-items:center;align-items:center;width:100%;min-height:132px;border:0!important;border-radius:8px!important;background:transparent!important;color:inherit;text-align:center;text-decoration:none;box-shadow:none!important;cursor:pointer;padding:22px 9px 12px!important}.app-tile:hover{transform:translateY(-3px);border-color:var(--app-color, var(--orange));box-shadow:0 14px 28px color-mix(in srgb,var(--app-color, var(--orange)) 18%,rgba(0,0,0,.22))}.app-tile.disabled{opacity:.78}.app-tile.disabled:hover{transform:translateY(-1px)}.app-tile strong{width:100%;color:var(--text);font-size:13px;font-weight:850;line-height:1.25;overflow-wrap:anywhere}.app-tile small{width:100%;padding:4px 8px 10px;color:var(--muted);font-size:11px;line-height:1.2}.tile-info,.tile-favorite{position:absolute;top:7px;z-index:2}.tile-info{right:32px;display:flex;color:var(--muted);font-size:14px;line-height:1}.tile-info span{display:grid;width:15px;height:15px;place-items:center;border:1px solid currentColor;border-radius:999px;font-size:10px;font-weight:800}.tile-favorite{right:7px;border:0!important;background:transparent!important;color:var(--muted);padding:0!important;font-size:18px;line-height:1;box-shadow:none!important}.tile-favorite.active,.tile-favorite:hover{color:var(--orange)}.inventory-logo{width:58px;height:58px;margin-top:6px;object-fit:contain}.portal-empty{margin:0;color:var(--muted);font-size:13px}.profile-page{display:flex;justify-content:center;padding:42px 28px}.profile-form{width:min(700px,100%);max-width:700px;margin:0 auto;border:0;background:transparent;box-shadow:none;padding:0}.profile-form .form-heading{justify-content:center;margin-bottom:12px}.profile-form .form-heading h3{font-size:24px;text-align:center}.profile-form .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.profile-form label:last-child{grid-column:1 / -1}.profile-form .form-actions{justify-content:center;margin-top:8px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#030712b8;padding:20px}.password-dialog,.confirm-modal{width:min(520px,calc(100vw - 32px));border:1px solid var(--border);border-radius:8px;background:var(--panel);color:var(--text);box-shadow:0 26px 70px #0000006b;padding:18px}.confirm-modal{display:grid;gap:14px}.confirm-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.confirm-modal h3,.confirm-modal p{margin:0}.confirm-modal p{color:var(--muted-strong);line-height:1.5}.confirm-modal-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.modal-close{display:grid;width:32px;height:32px;place-items:center;border:1px solid var(--border-strong)!important;border-radius:8px!important;background:transparent!important;color:var(--muted-strong)!important;padding:0!important;font-size:22px!important;line-height:1}.role-group h3{margin:0 0 12px}.role-group label{display:flex;align-items:center;margin:9px 0}.launcher-page{display:grid;gap:18px;padding:28px}.launcher-header{min-height:48px;border-bottom:1px solid var(--border)}.launcher-header h2{margin:0;font-size:20px;font-weight:850}.launcher-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:22px;align-items:start}.launcher-card{display:grid;justify-items:center;align-content:center;gap:12px;min-height:158px;border:1px solid var(--border);border-radius:8px;background:var(--panel);color:var(--text);padding:18px 12px;text-align:center;box-shadow:0 14px 28px #00000029;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.launcher-card:hover{transform:translateY(-4px);border-color:var(--app-color, var(--orange));box-shadow:0 18px 34px color-mix(in srgb,var(--app-color, var(--orange)) 18%,rgba(0,0,0,.24))}.launcher-card.disabled{cursor:pointer}.launcher-icon{display:grid;width:74px;height:74px;place-items:center;border-radius:8px;background:color-mix(in srgb,var(--app-color, var(--orange)) 10%,var(--panel-soft))}.launcher-icon img{width:60px;height:60px;object-fit:contain}.launcher-card strong{max-width:120px;font-size:13px;font-weight:850;line-height:1.2}@media (max-width: 920px){.shell,.shell.sidebar-collapsed{grid-template-columns:1fr}.sidebar{position:static}.sidebar-toggle{display:none}.sidebar-collapsed .brand-text,.sidebar-collapsed .nav-title span:first-child,.sidebar-collapsed nav button span:not(.nav-count),.sidebar-collapsed .nav-count{display:initial}.sidebar-collapsed nav button{grid-template-columns:17px minmax(0,1fr) auto;justify-items:stretch;width:calc(100% - 20px);margin:0 10px 4px}.sidebar-collapsed .nav-title{justify-content:space-between;width:calc(100% - 20px);margin:0 10px 7px}.sidebar-collapsed .forky-logo{width:58px;height:58px}nav{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));padding:8px}.brand{min-height:76px}.crud-page{grid-template-columns:1fr}}@media (max-width: 560px){.auth-shell{padding:16px}.login-panel{width:calc(100% - 32px);gap:20px;padding:28px 22px 30px}.login-brand .forky-logo{width:104px;height:104px}.login-brand strong{font-size:22px}.sidebar{padding:0}.topbar{justify-content:stretch;flex-direction:column;align-items:stretch;min-height:0;padding:16px}.user-chip{justify-content:flex-start}.panel-head{align-items:stretch;flex-direction:column}.panel-head input,.panel-head select{max-width:none}.portal,.crud-page{padding:16px}.app-grid{justify-content:center}.pagination-bar{flex-wrap:wrap}.field-with-action,.section-row,.application-form .form-grid,.module-form .form-grid,.record-detail,.profile-form .form-grid,.custom-icon-row,.icon-select-row,.icon-card{grid-template-columns:1fr}}
