/* Shared visual tokens from the approved local V115 preview. Login is independent. */
.portal-app{font:14px 'Segoe UI',Arial,sans-serif}
.portal-app .shell{grid-template-columns:248px minmax(0,1fr)}
.portal-app main{padding:0 38px 32px}
.portal-app .portal-header{min-height:105px;padding:22px 0}
.portal-app h1{font-size:29px;letter-spacing:-.8px;margin:6px 0}
.portal-app h2{font-size:20px;margin:0 0 12px}
.portal-app h3{font-size:16px;margin:0 0 10px}
.portal-app .eyebrow{font-size:10px;font-weight:800;letter-spacing:1.5px}
.portal-app .panel,.portal-app .hero{padding:24px;border-radius:16px;box-shadow:0 6px 22px #183f3507;margin-bottom:20px}
.portal-app .hero{padding:25px 28px;border-left-width:4px}
.portal-app .button,.portal-app button{font-size:13px;padding:11px 16px;border-radius:10px}
.portal-app label{font-size:12px}
.portal-app input:not([type=checkbox]),.portal-app select{font-size:14px;padding:11px 12px;border-radius:9px}
.portal-app .tag{font-size:11px;padding:5px 9px}
.portal-app td,.portal-app th{padding:14px 12px}
.portal-app th{font-size:11px}
.portal-app td small{font-size:12px;margin-top:5px}
.portal-app .masterdata-heading{margin-bottom:18px}
.portal-app .filters{gap:12px;margin:22px 0;align-items:end}
.portal-app .table-wrap{overflow-x:auto;max-height:none;height:auto;padding-bottom:1px}
.portal-app .actions-menu>summary{display:inline-grid;place-items:center;list-style:none;width:38px;height:38px;padding:0;border:1px solid #dce7e1;border-radius:10px;background:white;color:#315e50;font-size:26px;line-height:1;cursor:pointer}
.portal-app .actions-menu>summary::-webkit-details-marker{display:none}
.portal-app .actions-menu>summary:hover,.portal-app .actions-menu[open]>summary{background:#eaf6ef}
.portal-action-popover,.portal-app .actions-menu>.portal-action-popover{box-sizing:border-box;position:fixed;inset:auto;margin:0;padding:6px;min-width:190px;width:max-content;height:auto;min-height:0;background:white;color:#183f35;border:1px solid #dce7e1;border-radius:12px;box-shadow:0 12px 40px #183f3526;z-index:1000;overflow-y:auto}
.portal-action-popover:popover-open{display:flex;flex-direction:column;gap:2px}
.portal-action-popover form{display:flex;flex-direction:column;gap:2px;margin:0;max-width:none}
.portal-action-popover a,.portal-action-popover button{display:block;box-sizing:border-box;text-align:left;font:13px 'Segoe UI',Arial,sans-serif;font-weight:400;line-height:18px;min-height:40px;padding:11px 12px;border:0;border-radius:7px;background:white;color:#315e50;text-decoration:none;white-space:nowrap;width:100%;margin:0}
.portal-action-popover .danger{color:#a53636;background:white}
.portal-action-popover a:hover,.portal-action-popover button:hover,.portal-action-popover a:focus-visible,.portal-action-popover button:focus-visible{background:#eaf6ef}
.portal-action-popover button:disabled{opacity:.45;cursor:not-allowed}
.portal-app .floating-cart{width:62px;height:62px;border-radius:50%;display:flex;align-items:center;justify-content:center;right:24px;bottom:24px;padding:0;background:#3f705b}
.portal-app .floating-cart span{position:absolute;right:-3px;top:-5px;min-width:24px;height:24px;background:white;border:2px solid #3f705b;color:#315e50;border-radius:14px;display:grid;place-items:center;font-size:12px;font-weight:700;padding:2px 5px}
@media(max-width:1100px){.portal-app .shell{grid-template-columns:210px minmax(0,1fr)}.portal-app main{padding:0 24px 24px}}
@media(max-width:720px){.portal-app .shell{display:block}.portal-app main{padding:0 16px 24px}.portal-app .panel{padding:18px}.portal-app h1{font-size:25px}.portal-app .floating-cart{width:56px;height:56px;right:18px;bottom:18px}}

.category-root-drop{padding:18px;border:1px dashed #528b73;border-radius:10px;color:#416e59;margin:20px 0}.category-drop{outline:2px solid #078a62;background:#eaf6ef}.category-dragging{opacity:.5}.category-grip{cursor:grab;color:#718681;margin-right:10px}tr[draggable=true]{cursor:grab}.portal-app nav .category-nav>summary{padding:0;gap:5px}.portal-app nav .category-nav>summary a{flex:1;min-width:0;margin:0;border:0}.portal-app nav .category-nav .nav-submenu{margin-left:14px}.portal-app nav .category-nav>summary .chevron{padding:10px}

.portal-app .floating-cart .cart-symbol{display:block;color:#fff;stroke:#fff;flex:0 0 28px}.portal-app .add-dialog button:disabled{background:#edf2ef;color:#718681;border-color:#dce7e1;cursor:not-allowed;opacity:.8}

.category-tree-name{display:flex;align-items:center;gap:4px;padding-left:calc(var(--category-depth,0)*18px)}.portal-app .category-tree-toggle{display:inline-flex;align-items:center;gap:9px;padding:6px 0;background:transparent;color:#183f35;border:0;border-radius:0;font-size:14px;font-weight:650;text-align:left}.category-toggle-arrow{width:14px;color:#718681}.category-leaf-name{padding:6px 0}.category-tree-name .category-grip{flex-shrink:0}

/* PN-Partner branding and company-specific credential sharing */
.portal-app .brand { display: flex; justify-content: center; align-items: center; padding: 4px 0 26px; }
.portal-app .partner-brand-frame { position: relative; display: block; width: 100%; max-width: 220px; aspect-ratio: 1.65; overflow: hidden; }
.portal-app .brand .partner-brand-logo { position: absolute; width: 118%; max-width: none; height: auto; left: -9%; top: -35%; }

.log-sharing { margin: 24px 0; padding: 20px; border: 1px solid var(--line, #d9e6df); border-radius: 16px; }
.log-share-options { display: grid; gap: 10px; margin-top: 16px; max-height: 320px; overflow: auto; }
.log-share-options label { display: flex; gap: 12px; align-items: center; padding: 12px; border-radius: 10px; background: #f4f9f6; }
.log-share-options label[hidden] { display: none; }
.log-share-options input { width: auto; flex: 0 0 auto; }
