:root{font-family:Inter,"Segoe UI","Microsoft YaHei",Arial,sans-serif;color:#171717;background:#fafafa;font-size:14px;line-height:1.5;font-synthesis:none;--bg:#fafafa;--panel:#fff;--text:#171717;--muted:#818181;--line:#e6e6e6;--soft:#f5f5f5;--primary:#171717;--inverse:#fff;--danger:#dc2626;--shadow:0 1px 3px #0000000c;--ring:#c6c6c6}
*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}a{color:inherit;text-decoration:none}button{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);min-height:36px;padding:7px 12px;box-shadow:var(--shadow);white-space:nowrap}button:hover:not(:disabled){background:var(--soft)}button.primary{background:var(--primary);color:var(--inverse);border-color:var(--primary)}button.primary:hover:not(:disabled){opacity:.88}button.danger{color:var(--danger)}button.ghost{background:transparent;border-color:transparent;box-shadow:none}button.icon-btn{width:34px;min-width:34px;padding:7px;box-shadow:none}button.small{min-height:29px;padding:3px 8px;font-size:12px}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--ring);outline-offset:2px}input,textarea,select{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:8px;min-height:36px;padding:8px 11px;width:100%;box-shadow:var(--shadow)}input::placeholder,textarea::placeholder{color:#999}textarea{resize:vertical;min-height:90px}input[type=checkbox]{width:16px;height:16px;min-height:0;accent-color:var(--primary);box-shadow:none}input[type=file]{padding:6px}label{display:block;font-weight:500;margin-bottom:6px}.field{margin-bottom:18px}.field small,.help{display:block;color:var(--muted);font-size:12px;line-height:1.6;margin-top:6px}.icon{width:17px;height:17px;display:inline-block;vertical-align:middle;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}h1,h2,h3,p{margin:0}h1{font-size:24px;font-weight:650;line-height:1.35;letter-spacing:-.5px}h2{font-size:19px;font-weight:600}h3{font-size:15px;font-weight:600}.muted{color:var(--muted)}.description{color:var(--muted);margin-top:3px}.row{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:16px}.grow{flex:1}.mono,code,pre{font-family:Consolas,"Cascadia Mono",monospace}.mono{font-size:12px;overflow-wrap:anywhere}code{font-size:12px;background:var(--soft);padding:2px 5px;border-radius:4px}pre{padding:18px;white-space:pre-wrap;overflow:auto;border-radius:9px;background:var(--soft);font-size:12px;line-height:1.75}.tag{display:inline-flex;align-items:center;border-radius:6px;background:var(--soft);padding:1px 7px;font-size:12px;white-space:nowrap}.tag.green{color:#15803d;background:#f0fdf4}.tag.red{color:#dc2626;background:#fef2f2}.tag.blue{color:#2563eb;background:#eff6ff}.section-label{font-size:12px;font-weight:500;color:var(--muted)}
.shell{min-height:100vh;padding:8px 8px 8px 256px}.sidebar{position:fixed;left:0;top:0;bottom:0;width:256px;display:flex;flex-direction:column;padding:16px;background:var(--bg);z-index:20}.brand{height:54px;display:flex;gap:9px;align-items:flex-start;padding:8px;margin-bottom:12px}.brand-logo{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;background:#171717;color:#fff}.brand .name{font-size:14px;font-weight:650;line-height:18px}.brand .caption{font-size:12px;color:var(--muted);line-height:16px}.nav-group-label{padding:10px 8px;font-size:12px;color:#626262}.nav{display:flex;flex-direction:column;gap:3px}.nav a{display:flex;align-items:center;gap:10px;padding:7px 8px;min-height:33px;border-radius:8px;white-space:nowrap}.nav a:hover{background:var(--soft)}.nav a.active{background:var(--primary);color:var(--inverse)}.sidebar-footer{margin-top:auto;display:flex;align-items:center;gap:10px;padding:9px 0}.avatar{height:32px;min-width:32px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;color:var(--muted);font-size:12px}.sidebar-footer .account{font-size:13px;font-weight:550;overflow:hidden;text-overflow:ellipsis}.workspace{background:var(--panel);border:1px solid #f0f0f0;border-radius:16px;box-shadow:0 1px 3px #00000010;min-height:calc(100vh - 16px)}.topbar{height:48px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 16px;gap:10px;position:sticky;top:0;z-index:10;background:var(--panel);border-radius:16px 16px 0 0}.topbar .divider{height:17px;border-left:1px solid var(--line)}.topbar .right{display:flex;margin-left:auto;gap:10px}.content{padding:24px}.page-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:16px}.page-heading .description{font-size:14px}.software-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:18px}.software-card{border:1px solid var(--line);border-radius:16px;padding:24px;max-width:410px;min-height:203px;box-shadow:var(--shadow)}.software-card:hover{border-color:#bbb}.software-card .card-head{display:flex;gap:12px;align-items:center}.app-icon{height:40px;width:40px;border-radius:9px;background:#ededed;display:grid;place-items:center}.app-icon .icon{height:23px;width:23px}.software-card .title{font-size:16px;font-weight:600}.software-card .date{font-size:12px;color:var(--muted);margin-top:2px}.software-card .description{margin:26px 0 30px;min-height:21px}.software-card .tags{display:flex;gap:6px}.software-card .tags span{border:1px solid var(--line);border-radius:20px;padding:0 7px;font-size:12px}.software-card .state{margin-left:auto}.pagination{display:flex;align-items:center;gap:8px;margin-top:28px;padding:8px;color:var(--muted);font-size:12px}.pagination select{width:90px;height:34px;min-height:34px}.pagination .controls{margin-left:auto;display:flex;gap:6px}.pagination button{width:34px;height:34px;padding:0}.empty{text-align:center;border:1px dashed var(--line);border-radius:12px;padding:58px 20px;color:var(--muted);margin-top:12px}.empty .icon{width:28px;height:28px;margin-bottom:9px}.empty h3{color:var(--text);margin-bottom:6px}.empty button{margin-top:18px}.initial-loading{min-height:50vh;display:grid;place-items:center;color:var(--muted)}.loading{padding:80px 20px;text-align:center;color:var(--muted)}.error-box{padding:22px;border:1px solid #fecaca;border-radius:10px;background:#fef2f2;color:#991b1b}.error-box button{margin-top:12px}
.shell.detail{padding-left:240px}.detail .sidebar{width:64px;padding:8px}.detail .brand{padding:8px;margin:0 0 12px;height:52px}.detail .brand-copy,.detail .sidebar .nav span,.detail .nav-group-label,.detail .sidebar-footer .account,.detail .sidebar-footer .caption,.detail .sidebar-footer button{display:none}.detail .sidebar .nav a{justify-content:center;width:32px;padding:7px;margin:0 auto}.detail .sidebar-footer{justify-content:center}.app-nav{position:fixed;left:64px;top:8px;bottom:0;width:176px;padding:48px 16px 20px 8px;overflow-y:auto;border-right:1px solid var(--line);background:var(--bg);z-index:19}.app-nav .section-label{padding:4px 10px 10px;border-bottom:1px solid var(--line);margin-bottom:8px}.app-nav a{font-size:13px;min-height:32px;color:#737373}.app-header{display:flex;align-items:center;gap:20px;margin-bottom:22px}.app-header .back{font-size:13px;display:flex;gap:5px;align-items:center}.app-header .description{font-size:13px}.panel{border:1px solid var(--line);border-radius:12px;padding:22px;background:var(--panel)}.panel+.panel{margin-top:20px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}.panel-head h2{font-size:18px}.panel-head p{font-size:12px;color:var(--muted);margin-top:5px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.form-grid .full{grid-column:1/-1}.config-form{max-width:1050px}.config-form .field{max-width:760px}.config-form .field input,.config-form .field select{max-width:460px}.config-divider{margin:24px 0;border:0;border-top:1px solid var(--line)}.switch-field{display:flex;gap:16px;justify-content:space-between;align-items:center;max-width:760px;margin:20px 0}.switch-field label{margin:0}.switch-field .help{max-width:650px}.switch{appearance:none;width:34px!important;height:19px!important;min-height:19px!important;border-radius:20px!important;border:0!important;background:#e5e5e5;position:relative;cursor:pointer;padding:0!important;flex-shrink:0;box-shadow:none}.switch:after{content:"";position:absolute;width:15px;height:15px;top:2px;left:2px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0002;transition:transform .13s}.switch:checked{background:#171717}.switch:checked:after{transform:translateX(15px)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}.stat{border:1px solid var(--line);border-radius:12px;padding:20px}.stat-top{display:flex;justify-content:space-between;font-size:13px}.stat-top .icon{color:var(--muted)}.stat-value{font-size:29px;font-weight:650;margin:7px 0 1px;letter-spacing:-1px}.stat-caption{font-size:12px;color:var(--muted)}.dashboard-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:20px;margin-bottom:20px}.quota-row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line)}.quota-row:last-child{border:0}.quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.quick-actions button{justify-content:flex-start;padding:14px}.toolbar{display:flex;align-items:center;gap:10px;margin:16px 0}.toolbar input{max-width:300px}.toolbar select{width:150px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px}table{border-collapse:collapse;width:100%;font-size:13px;white-space:nowrap}th{text-align:left;padding:12px 14px;font-weight:500;color:var(--muted);border-bottom:1px solid var(--line);background:var(--panel)}td{padding:14px;border-bottom:1px solid var(--line);max-width:330px;overflow:hidden;text-overflow:ellipsis}tr:last-child td{border-bottom:0}tbody tr:hover{background:var(--soft)}td.actions{overflow:visible;max-width:none}.actions .row{gap:4px}.cell-sub{font-size:12px;color:var(--muted);margin-top:4px}.resource-layout{display:grid;grid-template-columns:220px 1fr;border:1px solid var(--line);border-radius:12px;overflow:hidden}.resource-tree{padding:16px;border-right:1px solid var(--line);background:var(--bg)}.resource-tree button{border:0;box-shadow:none;justify-content:flex-start;width:100%;background:transparent;font-size:13px;margin:3px 0;white-space:normal;text-align:left}.resource-tree button.active{background:var(--soft);font-weight:600}.resource-tree .count{margin-left:auto;font-size:12px;color:var(--muted)}.resource-main{padding:20px;min-width:0}.permission-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.permission-card{padding:14px;border:1px solid var(--line);border-radius:9px}.permission-card h3{font-size:13px}.permission-card code{display:block;margin-top:6px;background:none;padding:0;font-size:12px;color:var(--muted)}.tabs{display:flex;gap:5px;margin:16px 0;padding:3px;background:var(--soft);border-radius:8px;width:max-content;max-width:100%;overflow:auto}.tabs button{box-shadow:none;border:0;background:transparent;min-height:30px;padding:4px 12px}.tabs button.active{background:var(--panel);box-shadow:var(--shadow)}.note{padding:12px 15px;border:1px solid var(--line);border-radius:8px;background:var(--soft);font-size:13px;line-height:1.7}.code-input{font-family:Consolas,monospace;min-height:160px;font-size:13px}.check-list{display:flex;flex-direction:column;gap:10px;max-height:260px;overflow:auto;padding:12px;border:1px solid var(--line);border-radius:8px}.check-list label{display:flex;align-items:center;gap:9px;font-weight:400;margin:0}.check-list input[type=datetime-local]{width:auto;min-width:170px;margin-left:auto;font-size:12px}.details-line{display:grid;grid-template-columns:160px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.details-line:last-child{border:0}
dialog{padding:24px;border:1px solid var(--line);border-radius:16px;background:var(--panel);color:var(--text);width:min(450px,calc(100vw - 32px));box-shadow:0 25px 60px #0002;max-height:90vh;overflow:auto}dialog.wide{width:min(750px,calc(100vw - 32px))}dialog::backdrop{background:#0002;backdrop-filter:blur(4px)}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:3px}.modal-head h2{font-size:15px;font-weight:600}.modal-head button{min-height:24px;height:24px;width:24px;padding:3px}.modal-description{font-size:13px;color:var(--muted);margin-bottom:30px}.modal-body{margin-top:28px}.modal-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:32px}.modal-error{color:var(--danger);font-size:13px;margin-top:12px;white-space:pre-wrap}.modal-success{color:#15803d}.export-area{min-height:200px;resize:vertical;font-family:Consolas,monospace}.toast{padding:13px 18px;border:1px solid var(--line);border-radius:10px;background:var(--panel);box-shadow:0 5px 20px #0001;max-width:360px;margin-top:8px;font-size:13px}.toast.error{color:var(--danger)}#toasts{position:fixed;right:22px;bottom:22px;z-index:100}.login-shell{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(84deg,#fff 36%,#0b0b0b 36.2%);padding:24px}.login-card{width:704px;display:grid;grid-template-columns:1fr 1fr;background:#fff;color:#171717;border:1px solid #eee;border-radius:18px;box-shadow:0 24px 30px #0001;overflow:hidden}.login-form{padding:28px 24px}.login-brand{text-align:center;margin-bottom:20px}.login-brand .brand-logo{margin:0 auto 12px;width:48px;height:48px;border-radius:50%}.login-brand h1{font-size:20px}.login-brand p{font-size:12px;color:#888;margin-top:6px}.login-tabs{display:flex;align-items:center;justify-content:center;background:#f5f5f5;border-radius:8px;padding:3px;margin:23px 0}.login-tabs span{background:#fff;border-radius:6px;box-shadow:var(--shadow);padding:4px 18px;font-size:13px;display:flex;gap:6px;align-items:center}.login-form input{color:#171717;background:#fff;border-color:#e9e9e9}.login-form button.primary{background:#171717;color:#fff;width:100%;margin-top:8px}.login-form .help{text-align:center;margin-top:20px}.login-intro{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px;text-align:center;border-left:1px solid #f0f0f0}.login-intro>.icon{width:55px;height:55px;margin-bottom:28px}.login-intro h2{font-size:19px;margin-bottom:10px}.login-intro p{font-size:13px;color:#999;line-height:1.8}.login-features{margin-top:34px;display:flex;flex-direction:column;gap:10px;text-align:left;font-size:13px;color:#888}.login-features span{display:flex;align-items:center;gap:8px}.login-features .icon{width:17px;height:17px;background:#f3f3f3;border-radius:50%;padding:3px}.login-error{color:#dc2626;font-size:13px;min-height:20px;margin-top:8px}.api-layout{display:grid;grid-template-columns:210px 1fr;gap:28px}.api-nav{border-right:1px solid var(--line);padding-right:18px}.api-nav a{display:block;padding:8px;border-radius:7px;color:var(--muted);font-size:13px}.api-nav a:hover{background:var(--soft)}.api-section{margin-bottom:25px;scroll-margin-top:70px}
:root[data-theme=dark]{color-scheme:dark;--bg:#101010;--panel:#171717;--text:#ededed;--muted:#919191;--line:#303030;--soft:#232323;--primary:#f2f2f2;--inverse:#171717;--shadow:0 1px 3px #0002;--ring:#666;background:var(--bg);color:var(--text)}[data-theme=dark] .workspace{border-color:#272727}[data-theme=dark] .app-icon{background:#2b2b2b}[data-theme=dark] .switch:checked{background:#dedede}[data-theme=dark] .switch:checked:after{background:#171717}[data-theme=dark] .tag.green{background:#163225;color:#86efac}[data-theme=dark] .tag.red{background:#3c1d1d;color:#fca5a5}[data-theme=dark] .tag.blue{background:#172c4f;color:#93c5fd}
@media(min-width:1500px){.software-grid{grid-template-columns:repeat(3,minmax(290px,1fr))}.software-card{max-width:none}}
@media(max-width:1050px){.stats-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.permission-grid{grid-template-columns:repeat(2,1fr)}.resource-layout{grid-template-columns:180px 1fr}.toolbar{flex-wrap:wrap}.form-grid{grid-template-columns:1fr}}
@media(max-width:760px){.shell,.shell.detail{padding:0}.sidebar,.app-nav{display:none}.shell.nav-open .sidebar{display:flex;width:230px;box-shadow:10px 0 30px #0002}.shell.detail.nav-open .app-nav{display:block;left:64px;width:176px}.shell.detail.nav-open .sidebar{width:64px}.workspace{border-radius:0;min-height:100vh}.topbar{border-radius:0}.content{padding:20px 16px}.page-heading{align-items:flex-start}h1{font-size:22px}.software-grid{grid-template-columns:1fr}.software-card{max-width:none}.stats-grid{gap:10px}.stat{padding:16px}.stat-value{font-size:25px}.resource-layout{grid-template-columns:1fr}.resource-tree{border-right:0;border-bottom:1px solid var(--line);max-height:220px;overflow:auto}.resource-main{padding:14px}.permission-grid{grid-template-columns:1fr}.login-shell{background:#fafafa;padding:18px}.login-card{max-width:390px;display:block}.login-intro{display:none}.login-form{padding:30px 24px}.api-layout{grid-template-columns:1fr}.api-nav{display:none}.details-line{grid-template-columns:1fr;gap:4px}.pagination{padding:0}.pagination .controls{gap:3px}.pagination .summary{max-width:110px}.app-header{gap:12px}.modal-description{margin-bottom:20px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.portal-shell{max-width:820px;margin:64px auto;padding:0 24px}.portal-header{margin-bottom:28px}.portal-header h1{margin:16px 0 10px}.portal-panel{padding:32px}.portal-panel form{display:grid;gap:14px;margin:24px 0}.portal-panel .row{flex-wrap:wrap;margin-top:20px}.portal-welcome{white-space:pre-wrap;line-height:1.8;padding-bottom:20px;border-bottom:1px solid var(--line)}.portal-shell footer{margin-top:24px;text-align:center}

/* Detailed software navigation must keep its labels when the main rail collapses. */
.shell.detail{padding-left:248px}.detail .sidebar .brand{height:48px;margin-bottom:8px}.detail .content{padding-top:28px}.app-nav{padding-right:8px}.app-nav .nav{gap:2px}.app-nav .nav a{width:100%;justify-content:flex-start;min-height:32px;height:32px;margin:0;padding:6px 10px}.app-nav .nav a span{display:inline}.app-header{gap:28px}.app-header .back{padding:8px 10px}.panel{border-radius:16px;padding:24px}.tag.black{background:var(--primary);color:var(--inverse);vertical-align:middle}.rights-panel .panel-head{margin-bottom:8px}.rights-panel .add-right{width:224px;min-height:32px;height:32px;margin-bottom:20px}.rights-row{display:flex;align-items:center;gap:10px;min-height:60px;padding:12px 8px}.rights-row code{color:var(--muted);background:none}.rights-list .tag{background:var(--primary);color:var(--inverse);border-radius:999px}.rights-empty{padding:16px 0}.rights-panel .pagination{margin-top:8px}.resource-panel{margin:24px 0}.resource-layout{border:0;grid-template-columns:210px minmax(0,1fr);gap:16px}.resource-tree{border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:14px}.resource-tree h3{margin-bottom:18px}.resource-tree>button:last-child{border-top:1px solid var(--line);border-radius:0;margin-top:16px;padding-top:16px}.resource-main{padding:0}.resource-main .toolbar{gap:8px}.resource-filters input{min-width:120px;flex:1}.resource-filters select{width:110px;min-width:90px}.resource-filters{flex-wrap:wrap}.group-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin:16px 0}.group-tiles button{justify-content:flex-start;padding:16px}.group-tiles .count{margin-left:auto;color:var(--muted)}.selection-widget>input{margin-bottom:10px}.selection-head{margin-bottom:8px}.selection-head label{margin:0}.selection-head button{font-size:12px;min-height:30px}.selection-options{display:grid;grid-template-columns:1fr 1fr;padding:12px;border:1px solid var(--line);border-radius:8px;gap:14px}.selection-options label{display:flex;align-items:center;gap:7px;font-weight:400;margin:0;font-size:13px;min-width:0}.selection-options code{background:none;padding:0;font-size:11px;color:var(--muted);overflow-wrap:anywhere}.selection-options input{flex-shrink:0}.selection-widget .pagination{margin:12px 0 24px}.grant-summary{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grant-box{border:1px solid var(--line);padding:16px;border-radius:8px;min-height:64px;max-height:240px;overflow:auto}.active-grant{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0}.active-grant small{display:block;color:var(--muted);font-size:12px}.grant-issue{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}.grant-issue .field{margin:0}.grants-modal.wide{width:min(896px,calc(100vw - 32px))}.grants-modal .modal-description{margin-bottom:24px}.grants-modal .modal-body{margin-top:20px}.grants-modal .config-divider{margin:20px 0 12px}.resource-modal .modal-description:empty{display:none}.resource-modal .modal-body{margin-top:20px}.resource-modal .field{margin-bottom:12px}.resource-modal .form-grid{gap:12px}.resource-modal .modal-footer{position:sticky;bottom:-24px;background:var(--panel);padding:16px 0;margin-top:12px;border-top:1px solid var(--line)}.resource-modal .modal-footer>[data-close]{display:none}#resource-editor{border:1px solid var(--line);border-radius:8px;margin:16px 0}#resource-editor>.row{padding:8px 12px;border-bottom:1px solid var(--line)}#resource-editor label{margin:0}#resource-editor small{font-size:11px;color:var(--muted)}#resource-editor textarea{border:0;min-height:320px;box-shadow:none;resize:vertical;font-size:13px;padding:16px}#resource-editor[hidden],#resource-upload[hidden]{display:none}.resource-modal.editor-fullscreen{width:calc(100vw - 40px);height:calc(100vh - 40px)}.resource-modal.editor-fullscreen textarea{min-height:55vh}.security-form{width:100%;max-width:none}.security-form>.panel-head{margin-bottom:24px}.security-form .panel-head p{font-size:13px}.security-form .field,.security-form .switch-field{max-width:none}.security-form .field input,.security-form .field select{max-width:none}.security-form .field{margin-bottom:20px}.security-form .form-grid .field{margin-bottom:0}.security-form .form-grid{gap:16px}.security-form .key-field{margin-top:22px}.security-form .switch-field{margin:0 0 20px}.security-form .switch-field:last-child{margin-bottom:0}.security-box{border:1px solid var(--line);border-radius:10px;padding:16px;margin-top:16px}.signature-row,.signature-head{display:grid;grid-template-columns:1fr 2fr 1fr 34px;gap:10px;margin-bottom:10px}.signature-head{font-size:12px;color:var(--muted)}.security-form .note{background:var(--soft)}
@media(max-width:1050px){.resource-layout{grid-template-columns:170px minmax(0,1fr)}.resource-identity{grid-template-columns:1fr 1fr}.selection-options{grid-template-columns:1fr}.grant-issue{grid-template-columns:1fr 1fr auto}}
@media(max-width:760px){.shell.detail{padding-left:0}.detail .content{padding:20px 16px}.panel{padding:16px}.resource-layout{grid-template-columns:1fr}.grant-summary{grid-template-columns:1fr}.grant-issue{grid-template-columns:1fr}.signature-row,.signature-head{grid-template-columns:1fr}.signature-head{display:none}.app-header{gap:12px}.security-form .form-grid{grid-template-columns:1fr}.resource-tree{max-height:220px}}

.shell{height:100vh;overflow:hidden}.workspace{height:calc(100vh - 16px);min-height:0;display:flex;flex-direction:column}.topbar{flex-shrink:0}.content{flex:1;min-height:0;overflow:auto}.detail .content{padding-top:24px}.app-header{margin-bottom:16px}.app-header .description{margin-top:0}.security-form .field:first-child{margin-bottom:6px}.security-form .key-field{margin-top:20px}.security-form input,.security-form select{padding-top:6px;padding-bottom:6px}.selection-options input{margin:0}.app-nav .nav a{font-size:14px}@media(max-width:760px){.workspace{height:100vh}.detail .content{padding-top:20px}}

.survey-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:16px;min-height:calc(100vh - 235px)}.survey-sidebar,.survey-detail{border:1px solid var(--line);border-radius:10px;min-width:0;overflow:hidden}.survey-search{padding:12px;border-bottom:1px solid var(--line)}.survey-search select,.survey-search>.custom-select{margin-top:12px}.survey-item{display:block;width:calc(100% - 16px);margin:8px;padding:12px;box-shadow:none;border-color:transparent;text-align:left;white-space:normal}.survey-item.active{border-color:#999;background:var(--soft)}.survey-item .row{gap:8px}.survey-item .row+.row{margin-top:8px;font-size:12px}.survey-item strong{font-size:14px;font-weight:500}.survey-item .tag{border-radius:999px}.survey-welcome{min-height:70vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px;text-align:center}.survey-welcome>.icon{width:40px;height:40px;color:var(--muted);margin-bottom:8px}.survey-welcome h2{font-size:18px}.survey-detail-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;border-bottom:1px solid var(--line);flex-wrap:wrap}.survey-detail-head h2{font-size:16px}.survey-detail-head code{font-size:12px;font-weight:400;margin-left:6px}.survey-detail-head .row{gap:8px}.survey-detail-head .help{margin-top:4px}.survey-tabs{display:flex;gap:2px;padding:20px 16px 0;border-bottom:1px solid var(--line)}.survey-tabs button{border:0;box-shadow:none;background:var(--soft);color:var(--muted);min-height:34px;padding:5px 10px;border-radius:6px}.survey-tabs button.active{background:var(--panel);color:var(--text);box-shadow:0 0 0 1px var(--line),0 1px 3px #0001}.survey-body{padding:24px 20px}.survey-body .field{margin-bottom:14px}.survey-body .field textarea{min-height:64px}.survey-dates{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.survey-switches{display:grid;grid-template-columns:1fr 1fr;gap:20px;border:1px solid var(--line);padding:16px;border-radius:8px}.survey-switches .switch-field{margin:0;gap:10px}.survey-question-head{margin-top:24px;padding-top:24px;border-top:1px solid var(--line)}.survey-question{border:1px solid var(--line);border-radius:10px;padding:16px;margin-bottom:16px}.survey-question>.row{margin-bottom:14px}.survey-question>.row strong{font-size:13px;font-weight:500}.question-identity{display:grid;grid-template-columns:1fr 2fr;gap:12px}.question-options>.row{margin-bottom:8px}.question-required{display:flex;gap:8px;align-items:center;font-weight:400;margin:16px 0 0}.rotate-up{transform:rotate(90deg)}.rotate-down{transform:rotate(-90deg)}.survey-totals{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:20px}.survey-totals>div{border:1px solid var(--line);border-radius:8px;padding:16px}.survey-totals p{color:var(--muted)}.survey-totals strong{display:block;font-size:30px;margin-top:6px}.survey-stat-question{border:1px solid var(--line);border-radius:8px;padding:16px;margin-bottom:20px}.survey-stat-question h3{font-size:14px;font-weight:500}.stat-bars{display:grid;gap:12px;margin-top:20px}.stat-track{height:8px;border-radius:4px;overflow:hidden;background:var(--soft);margin-top:4px}.stat-track span{display:block;height:100%;background:var(--primary)}.stat-numbers{margin-top:22px}.survey-answer{border:1px solid var(--line);border-radius:8px;padding:18px;margin-top:20px}.survey-answer>code{display:block;color:var(--muted);background:none;padding:8px 0}.answer-item{padding:14px 0;border-top:1px solid var(--line)}.answer-item p{white-space:pre-wrap;overflow-wrap:anywhere}.mobile-app-nav{display:none}
@media(max-width:1250px){.survey-layout{grid-template-columns:230px minmax(0,1fr)}.survey-dates{grid-template-columns:1fr}.survey-switches{grid-template-columns:1fr}}
@media(max-width:1024px){.shell,.shell.detail{padding:0}.sidebar,.app-nav{display:none}.workspace{height:100vh;border-radius:0}.topbar{border-radius:0}.mobile-app-nav{display:flex;overflow-x:auto;gap:8px;border:1px solid var(--line);border-radius:10px;padding:8px;margin:24px 0;max-width:100%;scrollbar-width:thin}.mobile-app-nav a{display:flex;align-items:center;gap:8px;flex-shrink:0;padding:8px 10px;color:var(--muted);border-radius:8px}.mobile-app-nav a.active{background:var(--primary);color:var(--inverse)}.shell.nav-open .sidebar{display:flex;width:230px;box-shadow:10px 0 30px #0002}.shell.detail.nav-open .sidebar{width:64px}.shell.detail.nav-open .app-nav{display:none}.survey-layout{min-height:600px}.panel-head,.page-heading{flex-wrap:wrap}.panel-head>.row,.page-heading>.row{flex-wrap:wrap}.form-grid{grid-template-columns:1fr 1fr}.survey-switches{grid-template-columns:1fr}}
@media(max-width:640px){.survey-layout{grid-template-columns:1fr}.survey-sidebar{max-height:280px;overflow:auto}.survey-search{position:sticky;top:0;background:var(--panel);z-index:2}.survey-welcome{min-height:300px}.survey-body{padding:16px}.survey-detail-head{padding:16px}.survey-detail-head>.row{flex-wrap:wrap}.survey-tabs{padding:12px 12px 0}.survey-switches,.form-grid,.question-identity{grid-template-columns:1fr}.survey-dates{gap:0}.survey-question{padding:12px}.question-options>.row{flex-wrap:wrap}.question-options input{width:calc(50% - 28px);flex:1}.survey-totals{gap:8px}.toolbar{flex-wrap:wrap}.toolbar input{width:100%;max-width:none}.resource-identity{grid-template-columns:1fr 1fr}.mobile-app-nav{margin:20px 0}.app-header h1{font-size:22px;overflow-wrap:anywhere}.app-header{align-items:flex-start}.app-header .back{white-space:nowrap}.panel-head>.row{width:100%}.modal-footer{flex-wrap:wrap}}

.custom-select{width:100%;min-width:0;position:relative}.custom-select>select[hidden]{display:none}.select-trigger{width:100%;height:36px;min-height:36px;justify-content:space-between;border-radius:8px;padding:6px 11px;text-align:left;font-weight:400}.select-trigger>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-chevron{transform:rotate(90deg);height:14px;width:14px;color:var(--muted)}.select-popup{position:fixed;z-index:1000;padding:4px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text);box-shadow:0 4px 12px #0002,0 1px 3px #0001;overflow:auto;min-width:120px;font-size:14px}.select-option{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 10px;min-height:34px;border-radius:7px;cursor:pointer}.select-option.selected,.select-option.focused,.select-option:hover{background:var(--soft)}.select-option[aria-disabled=true]{opacity:.45;cursor:not-allowed}.number-control{position:relative;min-width:0;width:100%}.number-control>input{padding-right:36px!important;border-radius:10px}.number-control>input::-webkit-inner-spin-button,.number-control>input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.number-control>input{appearance:textfield}.number-steps{position:absolute;right:10px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column}.number-steps button{height:12px;min-height:12px;width:14px;padding:0;border:0;border-radius:2px;color:#888;background:transparent;box-shadow:none;font-size:13px;line-height:10px}.number-steps button:hover{color:var(--text);background:var(--soft)}.toolbar>.custom-select{width:150px}.resource-filters>.custom-select{width:110px}.pagination>.custom-select{width:90px}.pagination .select-trigger{height:34px;min-height:34px}.config-form>.field>.custom-select,.config-form>.field>.number-control{max-width:460px}.security-form .field>.custom-select,.security-form .field>.number-control{max-width:none}.custom-select>.select-trigger{background:var(--panel)}.custom-select>.select-trigger:hover{background:var(--panel)}@media(max-width:640px){.toolbar>.custom-select{flex:1;min-width:110px}.pagination>.custom-select{min-width:75px;width:75px;flex:none}}

*{scrollbar-color:#999 var(--soft)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--soft)}::-webkit-scrollbar-thumb{background:#999;border:2px solid var(--soft);border-radius:8px}.select-option{white-space:nowrap}.select-popup{min-width:160px}.survey-tabs{position:relative}.survey-item strong{overflow-wrap:anywhere}.survey-item .muted span:first-child{overflow-wrap:anywhere}.grants-modal .grant-issue .field>.custom-select{max-width:none}@media(max-width:900px){.survey-layout{grid-template-columns:1fr}.survey-sidebar{max-height:250px;overflow:auto}.survey-search{position:sticky;top:0;background:var(--panel);z-index:2}.survey-welcome{min-height:300px}}@media(max-width:420px){.app-header{gap:8px}.app-header h1{font-size:20px}.page-heading>.row{flex-shrink:0}.rights-row{gap:4px}.rights-row>.grow{min-width:0}.rights-row code{display:block;overflow-wrap:anywhere}.rights-row .icon-btn{width:28px;min-width:28px}.grant-box{padding:12px}.selection-options{grid-template-columns:1fr}.modal-head h2{overflow-wrap:anywhere}.pagination .summary{max-width:100px}}

button.primary:hover:not(:disabled),button.primary:focus,button.primary:active{background:var(--primary);color:var(--inverse);border-color:var(--primary)}button.primary:disabled{background:var(--primary);color:var(--inverse)}.pagination>.custom-select{width:100px;min-width:100px;flex-shrink:0}.pagination .select-trigger{width:100%;min-width:100px;padding:6px 10px;gap:6px}.pagination .select-trigger>span{overflow:visible;text-overflow:clip}.pagination .controls button{flex-shrink:0}

input[type=checkbox]:not(.switch){appearance:none;display:inline-grid;place-items:center;flex-shrink:0;width:16px;height:16px;min-height:16px;padding:0;border:1px solid var(--line);border-radius:4px;background:var(--panel);cursor:pointer}input[type=checkbox]:not(.switch):checked{background:var(--primary);border-color:var(--primary)}input[type=checkbox]:not(.switch):checked:after{content:"";width:8px;height:4px;border-left:2px solid var(--inverse);border-bottom:2px solid var(--inverse);transform:rotate(-45deg);margin-top:-2px}input[type=checkbox]:not(.switch):disabled{opacity:.45;cursor:not-allowed}

.card-grant-list{max-height:340px;overflow:auto}.card-grant-row{display:grid;grid-template-columns:minmax(0,1fr) 140px;gap:16px;padding:12px 0;border-bottom:1px solid var(--line,#e5e7eb)}.card-grant-row>label{display:flex;align-items:center;gap:8px;min-width:0}.card-grant-row small{display:block;color:#737373;font-size:12px;overflow-wrap:anywhere}.card-grant-row input[type=number]{width:100%;min-width:0}@media(max-width:640px){.card-grant-row{grid-template-columns:minmax(0,1fr) 110px;gap:8px}}

.resource-versions-modal .rights-row{align-items:flex-start;flex-wrap:wrap}.resource-versions-modal .grow{min-width:200px}.resource-versions-modal .grow code{display:block;white-space:normal;overflow-wrap:anywhere}.resource-versions-modal .grow p{white-space:pre-wrap;overflow-wrap:anywhere}

/* Resource directory layout matching the supplied reference. */
.resource-panel{padding:0;overflow:hidden}
.resource-panel-heading{padding:28px 28px 36px;border-bottom:1px solid var(--line)}
.resource-panel-heading h3{display:flex;align-items:center;gap:8px;font-size:17px}
.resource-panel-heading p{margin-top:5px;color:var(--muted);font-size:14px}
.resource-panel .resource-layout{grid-template-columns:240px minmax(0,1fr);gap:0;padding:24px 16px 24px 12px;height:min(800px,75vh);min-height:420px;border-radius:0}
.resource-panel .resource-tree{padding:8px 12px 0 0;border:0;border-right:1px solid var(--line);border-radius:0;overflow-y:auto;min-height:0;max-height:none;background:var(--panel);scrollbar-gutter:stable}
.resource-tree-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 10px 12px}
.resource-tree-heading h3{margin:0;font-size:14px}
.resource-tree-heading p{color:var(--muted);font-size:12px}
.resource-tree-heading button{width:30px;min-width:30px;margin:0;padding:5px}
.resource-tree-items{display:flex;flex-direction:column;gap:4px}
.resource-tree-items button{margin:0;min-height:40px;gap:10px;padding:9px 10px;border-radius:8px;white-space:nowrap;color:var(--muted)}
.resource-tree-items button.active{background:color-mix(in srgb,var(--text) 10%,var(--panel));color:var(--text)}
.resource-tree-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.resource-tree-items .count{flex-shrink:0;font-weight:400}
.resource-panel .resource-main{padding:12px 0 0 18px;min-width:0;min-height:0;overflow:auto;scrollbar-gutter:stable;container-type:inline-size;container-name:resource-content}
.resource-main-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.resource-location{min-width:0}
.resource-location-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.resource-location-title h3{display:flex;align-items:center;gap:10px;font-size:19px;min-width:0}
.resource-location-title h3 span{overflow-wrap:anywhere}
.resource-location-title h3>.icon{width:23px;height:23px}
.resource-location>p{font-size:14px;color:var(--muted);margin-top:5px}
.resource-group-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.resource-group-actions button{min-height:36px}
.resource-panel .group-tiles{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;margin:0 0 22px}
.resource-panel .group-tiles button{width:100%;min-width:0;min-height:64px;padding:10px 14px;gap:12px;text-align:left;box-shadow:none;border-radius:9px;background:color-mix(in srgb,var(--soft) 25%,var(--panel))}
.resource-panel .group-tiles button:hover{background:var(--soft)}
.group-tiles button>.icon:first-child{width:23px;height:23px}
.group-tile-copy{display:flex;flex:1;flex-direction:column;min-width:0;gap:2px}
.group-tile-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;font-size:14px}
.group-tile-copy small{color:var(--muted);font-size:12px;font-weight:400;white-space:normal}
.group-tile-arrow{width:15px;height:15px;color:var(--muted)}
.resource-panel .resource-filters{margin-top:0}
@container resource-content (min-width:560px){.resource-panel .group-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container resource-content (min-width:850px){.resource-panel .group-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1100px){.resource-panel .resource-layout{grid-template-columns:200px minmax(0,1fr)}}
@media(max-width:760px){
 .resource-panel-heading{padding:20px}
 .resource-panel .resource-layout{grid-template-columns:minmax(0,1fr);height:auto;min-height:0;padding:0}
 .resource-panel .resource-tree{padding:12px;border-right:0;border-bottom:1px solid var(--line);max-height:240px}
 .resource-panel .resource-main{padding:18px 14px;max-height:none;overflow:visible}
 .resource-main-heading{gap:12px}
 .resource-group-actions{width:100%}
 .resource-group-actions button{flex:1;padding:7px 8px}
}
