.portal-body{background:#f5f8fb}.portal-main{padding:36px clamp(14px,4vw,42px) 80px}.menu-portal{margin-left:auto}.portal-login-shell h1,.panel h1{font-size:clamp(2rem,4vw,3.4rem);color:var(--ocean);line-height:1.05}.login-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;max-width:1180px;margin:0 auto}.login-card,.module-card,.table-card{background:#fff;border:1px solid #dfe9f4;border-radius:22px;padding:24px;box-shadow:0 16px 42px rgba(11,44,60,.07)}.login-card h2,.module-card h2,.table-card h2,.table-card h3{color:#061b3b;margin-bottom:8px}.login-card p,.module-card p{color:#61708b;margin-bottom:18px;line-height:1.65}.admin-login{border-top:5px solid var(--sun-2)}.hint{display:block;color:#61708b;margin-top:12px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-grid.one{grid-template-columns:1fr}.form-grid.two textarea,.form-grid.two .full{grid-column:1/-1}input,select,textarea{width:100%;border:1px solid #d8e5f4;border-radius:14px;padding:14px 16px;font:inherit;background:#fff;color:#102025}textarea{min-height:96px;resize:vertical}.hidden{display:none!important}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:22px}.btn.small{min-height:44px;padding:10px 18px;background:#eaf2ff;color:#0c4bb3}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 22px}.tabs button{border:0;background:#eaf2ff;color:#064b5e;padding:12px 16px;border-radius:999px;font-weight:800;cursor:pointer}.tabs button.active{background:linear-gradient(135deg,var(--sun),var(--sun-2));color:#102025}.tab-content{display:none}.tab-content.active{display:grid;gap:18px}.table-card{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:720px}.data-table th,.data-table td{padding:12px;border-bottom:1px solid #edf2f7;text-align:left;vertical-align:top;font-size:.92rem}.data-table th{background:#f6f9fd;color:#1d3152}.row-actions{display:flex;gap:8px;flex-wrap:wrap}.mini-btn{border:0;border-radius:10px;padding:8px 10px;font-weight:800;cursor:pointer;background:#eaf2ff;color:#0c4bb3}.mini-btn.danger{background:#ffe8e8;color:#b91414}.action-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.action-card{display:grid;gap:10px;text-align:left;border:1px solid #dfe9f4;background:#fff;border-radius:18px;padding:22px;cursor:pointer;font:inherit;color:#061b3b;box-shadow:0 12px 30px rgba(11,44,60,.05)}.action-card strong{display:block}.action-card span{color:#61708b;font-size:.9rem}.messages-layout,.two-col{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(320px,1.5fr);gap:16px}.message{padding:12px;border-radius:14px;margin:8px 0;background:#f2f6fb}.message.admin{background:#fff3da}.message strong{display:block;color:#064b5e;margin-bottom:5px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.stats article{background:#fff;border:1px solid #dfe9f4;border-radius:18px;padding:18px}.stats span{display:block;color:#61708b;font-weight:700}.stats strong{display:block;color:#061b3b;font-size:1.8rem}.oc-card{background:#fff;border:1px solid #dfe9f4;border-radius:18px;padding:16px;margin:10px 0}.oc-card .badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.badge{border-radius:999px;padding:6px 10px;background:#eaf2ff;color:#0c4bb3;font-weight:800;font-size:.78rem}.badge.red{background:#ffe8e8;color:#b91414}.badge.green{background:#e7f8ec;color:#157c36}.danger{border-top:4px solid #df1717}.danger-btn{background:#df1717;color:#fff}.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#061f26;color:#fff;padding:14px 18px;border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.22);display:none;z-index:99}.toast.show{display:block}.btn{border:0;cursor:pointer}.module-card::before{content:'';display:block;height:5px;background:linear-gradient(90deg,#0c56c9,var(--sun-2));border-radius:999px;margin:-24px -24px 18px}.danger::before{background:linear-gradient(90deg,#df1717,var(--sun-2))}@media(max-width:900px){.login-grid,.messages-layout,.two-col{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}.action-grid{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}.panel-head{flex-direction:column}.menu-portal{width:100%}}@media(max-width:560px){.portal-main{padding-left:12px;padding-right:12px}.stats,.action-grid{grid-template-columns:1fr}.tabs button{width:100%}.login-card,.module-card,.table-card{padding:18px}.module-card::before{margin:-18px -18px 16px}}
