/* Shared, local iOS-inspired presentation. Bootstrap still owns component behavior. */
/* Apple reference palette. Semantic roles adapt to appearance and contrast.
   Accent fills use Default (dark); primary buttons and links use contrast variants. */
:root{
 --system-red:#ff4245;--system-orange:#ff9230;--system-yellow:#ffd600;--system-green:#30d158;
 --system-mint:#00dac3;--system-teal:#00d2e0;--system-cyan:#3cd3fe;--system-blue:#0091ff;
 --system-indigo:#6d7cff;--system-purple:#db34f2;--system-pink:#ff375f;--system-brown:#b78a66;
 --ios-primary-fill:#1e6ef4;--ios-primary-pressed:#0040dd;--ios-primary-ink:#fff;--ios-danger-fill:#c51527;--ios-success-fill:#008932;
 --ios-fill-ink:#1c1c1e;--ios-font-body:1rem;--ios-font-callout:.9412rem;--ios-font-subhead:.8824rem;
 --ios-font-footnote:.7647rem;--ios-font-caption:.7059rem;--ios-font-title:2rem;
 --ios-tabbar-height:78px;
 font-size:106.25%;
}
@supports(font:-apple-system-body){:root{font:-apple-system-body}}
:root,[data-bs-theme="light"]{
 color-scheme:light;
 --system-gray:#8e8e93;--system-gray2:#aeaeb2;--system-gray3:#c7c7cc;
 --system-gray4:#d1d1d6;--system-gray5:#e5e5ea;--system-gray6:#f2f2f7;
 --paper:var(--system-gray6);--ink:#1c1c1e;--muted:#636366;--brand:#0040dd;--line:var(--system-gray4);--accent:var(--system-gray5);
 --ios-card:#fff;--ios-ink:var(--ink);--ios-muted:var(--muted);--ios-line:var(--line);
 --ios-glass:rgba(242,242,247,.88);--ios-shadow:0 4px 20px #00000012;
 --ios-control:var(--ios-card);--ios-control-muted:var(--system-gray6);--ios-control-border:var(--system-gray);
 --ios-control-pressed:var(--system-gray5);--ios-control-ring:rgba(0,64,221,.24);
 --ios-elevation:0 2px 8px #00000005;--ios-danger:#c51527;--ios-success:#008932;--ios-warning:#a16a00;
 --ios-glass-edge:rgba(255,255,255,.8);--ios-glass-highlight:rgba(255,255,255,.8);
 --ios-selection-bg:var(--system-blue);--ios-selection-ink:var(--ios-fill-ink);
 --bs-body-bg:var(--paper);--bs-body-color:var(--ink);--bs-body-color-rgb:28,28,30;
 --bs-border-color:var(--line);--bs-tertiary-bg:var(--system-gray6);--bs-secondary-bg:var(--system-gray5);
 --bs-secondary-color:var(--muted);--bs-emphasis-color:var(--ink);--bs-emphasis-color-rgb:28,28,30;
 --bs-primary:var(--system-blue);--bs-primary-rgb:0,145,255;--bs-link-color:var(--brand);--bs-link-color-rgb:0,64,221;
 --bs-link-hover-color:var(--ink);--bs-link-hover-color-rgb:28,28,30;
 --bs-primary-bg-subtle:var(--system-gray5);--bs-primary-text-emphasis:var(--brand);
 --bs-border-radius:.75rem;--bs-border-radius-lg:1.25rem;
}
[data-bs-theme="dark"]{
 color-scheme:dark;
 --system-gray:#8e8e93;--system-gray2:#636366;--system-gray3:#48484a;
 --system-gray4:#3a3a3c;--system-gray5:#2c2c2e;--system-gray6:#1c1c1e;
 --paper:var(--system-gray6);--ink:#fff;--muted:#aeaeb2;--brand:#5cb8ff;--line:var(--system-gray4);--accent:var(--system-gray3);
 --ios-card:var(--system-gray5);--ios-glass:rgba(44,44,46,.9);--ios-shadow:0 4px 20px #00000033;
 --ios-control-muted:var(--system-gray6);--ios-control-border:var(--system-gray);--ios-control-pressed:var(--system-gray4);
 --ios-control-ring:rgba(0,145,255,.35);--ios-elevation:0 2px 8px #00000012;--ios-danger:#ff6165;--ios-success:var(--system-green);--ios-warning:var(--system-yellow);
 --ios-glass-edge:rgba(255,255,255,.2);--ios-glass-highlight:rgba(255,255,255,.22);
 --bs-body-color-rgb:255,255,255;--bs-emphasis-color-rgb:255,255,255;
 --bs-link-color-rgb:92,184,255;--bs-link-hover-color:var(--ink);--bs-link-hover-color-rgb:255,255,255;
}
.ios-app{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;background:var(--paper);color:var(--ink);font-size:var(--ios-font-body);line-height:1.45;letter-spacing:normal}
.ios-app .main-content{padding-top:30px;padding-bottom:44px}
.ios-app h1{font-size:clamp(2rem,4vw,2.35rem);font-weight:700;line-height:1.13;letter-spacing:-.045em}
.ios-app h2{letter-spacing:-.025em;font-weight:600}.ios-app h3{letter-spacing:-.018em}
.ios-app .content-card,.ios-app .post-card,.ios-app .auth-card,.ios-app .error-panel{background:var(--ios-card);border-color:var(--line);border-radius:23px}
.ios-app .content-card{padding:24px}.ios-app .auth-card{padding:30px}
.ios-app .card{--bs-card-bg:var(--ios-card);--bs-card-border-color:var(--line);--bs-card-border-radius:23px}
.ios-app .accordion{--bs-accordion-bg:var(--ios-card);--bs-accordion-btn-bg:var(--ios-card);--bs-accordion-color:var(--ink);--bs-accordion-btn-color:var(--ink);--bs-accordion-active-bg:var(--accent);--bs-accordion-active-color:var(--ink)}
.ios-app .btn{border-radius:12px;font-weight:550;padding:.6rem .95rem;transition:background-color .18s ease,box-shadow .18s ease}
.ios-app .btn-outline-dark{--bs-btn-color:var(--ink);--bs-btn-bg:var(--ios-card);--bs-btn-border-color:var(--line);--bs-btn-hover-color:var(--ink);--bs-btn-hover-bg:var(--accent);--bs-btn-hover-border-color:var(--line);--bs-btn-active-color:var(--ink);--bs-btn-active-bg:var(--accent);--bs-btn-active-border-color:var(--brand);--bs-btn-disabled-color:var(--muted);--bs-btn-disabled-border-color:var(--line)}
.ios-app .btn-outline-primary{--bs-btn-color:var(--brand);--bs-btn-bg:transparent;--bs-btn-border-color:var(--line);--bs-btn-hover-bg:var(--accent);--bs-btn-hover-border-color:var(--brand);--bs-btn-hover-color:var(--brand)}
.ios-app .form-control,.ios-app .form-select{border-radius:12px;background-color:var(--ios-card);color:var(--ink);border-color:var(--line);padding-top:.65rem;padding-bottom:.65rem}
.ios-app .form-control::placeholder{color:var(--muted);opacity:1}.ios-app .form-control:disabled,.ios-app .form-select:disabled{background-color:var(--bs-tertiary-bg)}
.ios-app .form-text{color:var(--muted)}.ios-app .form-label{font-size:.92rem}
.ios-app .form-check-input{border-color:var(--muted)}.ios-app .form-switch .form-check-input{width:2.6em;height:1.45em;margin-top:.1em}
.ios-app .badge{border-radius:7px}.ios-app .bg-white{background-color:var(--ios-card)!important}
.ios-app .table{--bs-table-bg:var(--ios-card);--bs-table-color:var(--ink);--bs-table-border-color:var(--line);--bs-table-striped-bg:var(--bs-tertiary-bg);--bs-table-striped-color:var(--ink);--bs-table-hover-bg:var(--accent);--bs-table-hover-color:var(--ink)}
.ios-app .users-table-container{background:var(--ios-card)}.ios-app .table-light{--bs-table-bg:var(--bs-tertiary-bg);--bs-table-color:var(--ink);--bs-table-border-color:var(--line)}
.ios-app .users-table .user-action{border-radius:10px;padding:0}
.ios-app .site-header{background:var(--ios-glass);border-bottom-color:var(--line);padding-top:calc(10px + var(--safe-top));padding-bottom:10px;backdrop-filter:blur(22px) saturate(145%);-webkit-backdrop-filter:blur(22px) saturate(145%)}
.ios-app .site-header.is-scrolled{box-shadow:0 2px 15px #10264508}
.ios-app .navbar-brand.brand{font-size:1.08rem;font-weight:700;letter-spacing:-.035em;gap:10px;color:var(--ink)}
.ios-app .brand-mark{width:34px;height:34px;border-radius:10px}
.ios-app .navbar .nav-link{color:var(--muted);font-size:.9rem;border-radius:11px;display:flex;align-items:center;white-space:nowrap}
.ios-app .navbar .nav-link.active,.ios-app .navbar .nav-link:hover{color:var(--brand);background:var(--accent)}
.ios-app .navbar .dropdown-menu{border:1px solid var(--line);border-radius:17px;background:var(--ios-card);padding:7px;box-shadow:var(--ios-shadow)}
.ios-app .dropdown-item{border-radius:9px;color:var(--ink)}
.ios-app .ios-header-action{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;font-size:1.25rem;color:var(--brand);background:var(--ios-card);border:1px solid var(--line);border-radius:50%;text-decoration:none}
.ios-tabbar{position:fixed;z-index:1030;left:calc(16px + var(--safe-left));right:calc(16px + var(--safe-right));bottom:calc(10px + var(--safe-bottom));max-width:520px;margin-inline:auto;display:flex;gap:4px;padding:5px;border:1px solid var(--line);border-radius:28px;background:var(--ios-glass);box-shadow:var(--ios-shadow);backdrop-filter:blur(24px) saturate(150%);-webkit-backdrop-filter:blur(24px) saturate(150%)}
.ios-tab{flex:1;min-width:0;min-height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:0;border-radius:23px;background:transparent;color:var(--muted);text-decoration:none;font-family:inherit;font-size:var(--ios-font-caption);font-weight:600;line-height:1.2;padding:5px 4px;transition:background-color .18s ease,color .18s ease}
.ios-tab .bi{font-size:1.3rem;line-height:1.2}.ios-tab.active{color:var(--brand);background:var(--accent)}.ios-tab:hover{color:var(--brand)}
.ios-app .offcanvas,.ios-app .modal-content{background:var(--ios-card);color:var(--ink);border-color:var(--line)}
.ios-app .offcanvas-bottom{border-radius:26px 26px 0 0;border-top:1px solid var(--line);height:auto;max-height:calc(100dvh - var(--safe-top) - 18px)}
.ios-app .offcanvas-header{padding:22px 22px 14px}.ios-app .offcanvas-body{padding:10px 22px calc(22px + var(--safe-bottom));overscroll-behavior-y:contain}
.ios-app .offcanvas-header .btn-close,.ios-app .modal .btn-close{min-width:44px;min-height:44px;padding:0;flex-shrink:0;background-size:12px;border-radius:50%;margin:0 0 0 auto}
.ios-app .offcanvas-header .btn-close:hover{background-color:var(--accent)}
.ios-app .modal-content{border-radius:24px}.ios-app .modal-fullscreen .modal-content{border-radius:0}
.ios-app .list-group{--bs-list-group-bg:var(--ios-card);--bs-list-group-color:var(--ink);--bs-list-group-border-color:var(--line);--bs-list-group-action-hover-bg:var(--accent);--bs-list-group-action-hover-color:var(--ink)}
.ios-app .app-update-banner{z-index:1040;background:var(--ios-card);border-color:var(--line);box-shadow:var(--ios-shadow)}
.ios-app .site-footer{color:var(--muted);font-size:.75rem;padding-top:20px;padding-bottom:24px}
.ios-app .empty-state{background:var(--ios-card);border-color:var(--line);border-radius:23px}.ios-app .empty-state>span{color:var(--brand)}
.ios-app .file-dropzone{background:var(--bs-tertiary-bg);border-color:var(--line);border-radius:17px}.ios-app .file-dropzone.is-dragging{border-color:var(--brand);background:var(--accent)}
.ios-app .pdf-toolbar{background:var(--bs-tertiary-bg);border-radius:14px}.ios-app .pdf-canvas-wrapper{background:var(--bs-tertiary-bg);border-radius:8px}
.ios-app .pdf-expanded .pdf-toolbar{background:var(--ios-card);border-radius:0}.ios-app .pdf-expanded .pdf-canvas-wrapper{border-radius:0}
.ios-app .post-detail{padding:20px 24px}.ios-app .post-detail h1{font-size:clamp(1.7rem,3.2vw,2.25rem)}
[data-bs-theme="dark"] .ios-app .welcome-panel,[data-bs-theme="dark"] .ios-app .feature-number,[data-bs-theme="dark"] .ios-app .setup-note{background:var(--ios-card);border-color:var(--line)}
[data-bs-theme="dark"] .ios-app .profile-navigation,[data-bs-theme="dark"] .ios-app .post-label{background:var(--accent);color:var(--ink)}
[data-bs-theme="dark"] .ios-app .post-body{background:#fff;color:#24324b;border-radius:12px;padding:16px}
[data-bs-theme="dark"] .ios-app .post-body a{color:#435d91}
[data-bs-theme="dark"] .ios-app .btn-outline-secondary{--bs-btn-color:var(--muted);--bs-btn-border-color:var(--line);--bs-btn-hover-color:var(--ink);--bs-btn-hover-bg:var(--accent);--bs-btn-hover-border-color:var(--muted)}
[data-bs-theme="dark"] .ios-app .category-label{background:var(--accent);color:var(--ink)}
[data-bs-theme="dark"] .ios-app .swal2-popup{background:var(--ios-card);color:var(--ink)}
[data-bs-theme="dark"] .ios-app .jodit-container{color:#24324b;color-scheme:light}
@media(max-width:1199.98px){
 .ios-signed-in{padding-top:var(--safe-top);padding-bottom:calc(var(--ios-tabbar-height) + 24px + var(--safe-bottom))}
 .ios-signed-in.has-context-header{padding-top:calc(var(--safe-top) + 52px)}
 .ios-signed-in .site-header{display:none!important}
 .ios-signed-in .connection-status{top:var(--safe-top)}
 .ios-signed-in.has-context-header .connection-status{top:calc(var(--safe-top) + 52px)}
 .ios-signed-in.has-connection-warning{padding-top:calc(var(--safe-top) + var(--connection-status-height,48px))}
 .ios-signed-in.has-context-header.has-connection-warning{padding-top:calc(var(--safe-top) + 52px + var(--connection-status-height,48px))}
 .ios-app .main-content{padding-top:25px;min-height:calc(100dvh - var(--safe-top) - 160px)}
 html:has(.ios-signed-in){scroll-padding-top:calc(var(--safe-top) + 20px)}
 html:has(.ios-signed-in.has-context-header){scroll-padding-top:calc(var(--safe-top) + 68px)}
 .ios-context-header{position:fixed;z-index:1030;top:0;left:0;right:0;padding-top:var(--safe-top);height:calc(var(--safe-top) + 52px);background:var(--ios-glass);border-bottom:1px solid var(--line);backdrop-filter:blur(22px) saturate(145%);-webkit-backdrop-filter:blur(22px) saturate(145%)}
 .ios-context-inner{height:52px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr) minmax(0,1fr);align-items:center;gap:8px}
 .ios-context-back{display:inline-flex;align-items:center;gap:3px;min-width:0;width:max-content;max-width:100%;min-height:44px;color:var(--brand);text-decoration:none;font-size:.95rem;font-weight:600}
 .ios-context-back .bi{font-size:1.3rem;line-height:1}.ios-context-back span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .ios-context-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;font-size:.93rem;font-weight:700;opacity:0;transform:translateY(4px);transition:opacity .2s ease,transform .2s ease}
 .ios-context-header.is-scrolled .ios-context-title{opacity:1;transform:translateY(0)}
 .ios-context-back:hover{color:var(--brand);text-decoration:underline}
 .ios-app .site-header .container{min-height:44px}
 .ios-app .navbar-brand.brand{font-size:1rem;max-width:calc(100% - 60px)}
 .ios-app .site-footer{padding-bottom:18px}
 .ios-signed-in .app-update-banner{bottom:calc(var(--ios-tabbar-height) + 18px + var(--safe-bottom));padding-bottom:16px;border:1px solid var(--line);border-radius:20px;left:calc(12px + var(--safe-left));right:calc(12px + var(--safe-right))}
 .ios-signed-in.has-app-update{padding-bottom:calc(var(--app-update-height,180px) + var(--ios-tabbar-height) + 32px + var(--safe-bottom))}
 .ios-signed-in:has(.offcanvas.show,.offcanvas.showing,.modal.show) .ios-tabbar{visibility:hidden}
 .ios-app .offcanvas-bottom{max-width:640px;margin-inline:auto}
}
@media(max-width:575.98px){
 .ios-app .content-card{padding:20px}.ios-app .auth-card{padding:24px}
 .ios-app .post-detail{padding:18px}.ios-app .main-content>h1{margin-bottom:22px}
 .ios-app .board-nav{gap:8px}.ios-app .board-nav .btn{font-size:.85rem;padding:.55rem .7rem}
 .ios-app .site-footer{font-size:.72rem}.ios-app .modal-content{border-radius:20px}.ios-app .modal-fullscreen-sm-down .modal-content{border-radius:0}
}
@media(prefers-reduced-motion:reduce){.ios-context-title{transition:none}}
@media(prefers-reduced-transparency:reduce){.ios-app .site-header,.ios-tabbar,.ios-context-header{background:var(--ios-card);backdrop-filter:none;-webkit-backdrop-filter:none}}
@media(prefers-contrast:more){.ios-tabbar,.ios-app .site-header,.ios-context-header,.ios-app .content-card{border-color:var(--muted)}.ios-tab.active{outline:2px solid currentColor;outline-offset:-2px}}
@media print{.ios-tabbar,.ios-app .site-header,.ios-context-header{display:none!important}.ios-signed-in,.ios-signed-in.has-context-header{padding:0}.ios-app .main-content{padding:0}}
