/* Shared, progressively enhanced interactions. No dependency or third-party requests. */
:root{--ux-accent:#365f86;--ux-line:#dce4eb;--ux-ease:cubic-bezier(.22,1,.36,1)}
:focus-visible{outline:3px solid #4c91c8;outline-offset:4px}
html{scroll-padding-top:100px}
.ux-skip{position:fixed;left:16px;top:-100px;z-index:10001;padding:12px 18px;background:#fff;color:#1b2a41;border-radius:10px}
.ux-skip:focus{top:12px}
.ux-quick,.ux-top,.ux-password{font:inherit;cursor:pointer}
.ux-quick{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:8px 12px!important;border:1px solid var(--ux-line)!important;border-radius:10px!important;background:#fff!important;color:#284663!important;font-size:13px!important;white-space:nowrap;font-weight:700!important}
.ux-quick kbd{font:inherit;font-size:11px;color:#697987;border:1px solid #dce4eb;border-radius:4px;padding:1px 4px}
.ux-dialog{box-sizing:border-box;width:min(580px,calc(100% - 24px));max-height:min(78dvh,680px);padding:0;border:1px solid var(--ux-line);border-radius:20px;background:#fff;color:#1b2a41;box-shadow:0 28px 100px #13273a40;overflow:auto}
.ux-dialog::backdrop{background:#11233480;backdrop-filter:blur(5px)}
.ux-dialog[open]{animation:ux-enter .24s var(--ux-ease)}
.ux-dialog-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 12px;gap:12px}
.ux-dialog h2{margin:0;font-size:20px;line-height:1.4}
.ux-dialog button{min-height:40px;cursor:pointer;font:inherit;border:1px solid #dce4eb;border-radius:8px;background:#f4f7fa;color:#284663;padding:8px 12px}
.ux-dialog label{display:block;margin:0 20px 6px;font-size:13px;color:#647587}
.ux-dialog input{box-sizing:border-box;width:calc(100% - 40px);margin:0 20px 12px;padding:13px 14px;font:inherit;font-size:16px;border:1px solid var(--ux-line);border-radius:10px;background:#f7f9fc;color:#1b2a41}
.ux-command-list{padding:0 12px 12px;display:grid;gap:4px}
.ux-command-list a{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px;border-radius:10px;text-decoration:none;color:#284663;min-height:44px;box-sizing:border-box}
.ux-command-list a:hover,.ux-command-list a:focus-visible{background:#edf3f9}
.ux-command-list small{font-size:12px;color:#697987;white-space:nowrap}
.ux-command-empty{padding:14px;color:#697987}
.ux-dialog-foot{margin:0;padding:12px 20px;border-top:1px solid var(--ux-line);color:#697987;font-size:12px;background:#f8fafc}
.ux-network{position:fixed;bottom:calc(92px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:9999;width:max-content;max-width:calc(100% - 32px);box-sizing:border-box;padding:12px 18px;border:1px solid #efcb87;border-radius:12px;background:#fff6df;color:#745018;box-shadow:0 8px 28px #14293c20;font-size:14px;line-height:1.5}
.ux-top{position:fixed;right:20px;bottom:calc(90px + env(safe-area-inset-bottom));z-index:6;border:1px solid var(--ux-line);border-radius:50%;width:44px;height:44px;background:#fff;color:#365f86;box-shadow:0 6px 20px #14293c15;font-size:22px}
.ux-network[hidden],.ux-top[hidden],.ux-filter-empty[hidden],.ux-filtered{display:none!important}
.ux-filter{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 20px;padding:14px 16px;border:1px solid var(--ux-line);border-radius:14px;background:#fff;box-shadow:0 4px 18px #1b2a4105}
.ux-filter label{font-size:14px;color:#284663;font-weight:700}
.ux-filter input{flex:1;min-width:120px;max-width:440px;padding:11px 12px;font:inherit;font-size:16px;border:1px solid #dce4eb;border-radius:8px;background:#f7f9fc;color:#1b2a41}
.ux-filter button{border:1px solid #dce4eb;border-radius:8px;padding:10px 12px;background:#fff;color:#365f86;font:inherit;cursor:pointer;min-height:44px}
.ux-filter-status{color:#687787;font-size:13px}
.ux-filter-empty{border:1px dashed #c4d2dd;border-radius:14px;padding:28px;text-align:center;color:#657786;background:#f8fafc}
.ux-password{display:block;margin-top:8px;padding:6px 10px!important;min-height:36px!important;font-size:13px!important;background:#f0f5fa!important;color:#365f86!important;border:1px solid #dce4eb!important;border-radius:8px!important}
.site-public{--bg:#f5f7fa;--surface-soft:#edf3f8;--ink:#213346;--muted:#657586;--line:#dce4e9;--green:#365f86;background:radial-gradient(ellipse at 85% 0,#e4eef8,transparent 46%),#f7f9fb}
.site-public .site-header{background:#f7f9fbea;border-color:#dce4e9}
.site-public .hero{padding-top:62px;padding-bottom:62px}
.site-public .hero-copy h1{letter-spacing:-.035em;line-height:1.18}
.site-public :is(.note-card,.album-card,.idea-card,.admin-card){border-radius:18px;border-color:#dce4e9;box-shadow:0 8px 28px #14293c06}
.site-public .primary-link{background:#365f86;border-color:#365f86;box-shadow:0 6px 20px #365f8622}
.site-public .nav-links a[aria-current=page]{color:#284663;text-decoration:underline;text-underline-offset:8px}
.site-shell .site-top{gap:20px;background:#ffffffed;backdrop-filter:blur(16px)}
.site-shell .site-nav{flex-wrap:wrap;justify-content:flex-end}
.site-shell .panel{border-radius:16px;box-shadow:0 5px 24px #1b2a4105}
.site-shell .login-card{padding:30px;border-top:3px solid #365f86;box-shadow:0 18px 64px #1b2a4110}
.site-shell .login-card input{min-height:46px;background:#f8fafc}
.site-shell .login-card button[type=submit]{width:100%;min-height:46px;margin-top:10px}
.site-album .story-photo{border-radius:16px;box-shadow:0 6px 24px #14293c0a}
.site-album .hero{background:radial-gradient(ellipse at 80% 0,#40628380,transparent 55%),linear-gradient(135deg,#15283b,#243b51)}
.site-album .hero-shot{border-radius:14px}
.dashboard-shell-v22 .dashboard-card-v22{border-radius:14px}
.dashboard-shell-v22 .workspace-module-v5148.active{animation:ux-enter .28s var(--ux-ease)}
.site-portal{--page:#f3f6fa;--ink:#213346;--muted:#667789;--line:#dbe4ee;--green:#365f86;--green-soft:#edf3f9;background:radial-gradient(ellipse at 80% 0,#ddeaf7,transparent 55%),#f6f8fb}
.site-portal .wrap{width:min(1180px,calc(100% - 40px));padding-top:24px}
.site-portal .mark{background:linear-gradient(145deg,#223b55,#7eabc8);border-radius:7px;width:28px;height:28px}
.site-portal .top-actions{align-items:center}
.site-portal .top-actions a{border-radius:10px;font-size:13px}
.site-portal .hero{padding:48px;border-radius:26px;border-color:#d6e1ed;background:linear-gradient(150deg,#fff,#f7faff);box-shadow:0 20px 70px #21334609}
.site-portal .portal-kicker{margin:0 0 18px;color:#527593;font-size:11px;font-weight:800;letter-spacing:.16em}
.site-portal h1{font-size:clamp(34px,5vw,60px);line-height:1.2;letter-spacing:-.04em;color:#213a53}
.site-portal .lead{max-width:630px;font-size:16px}
.site-portal .portal-actions{display:flex;gap:12px;flex-wrap:wrap;margin:24px 0 40px}
.site-portal .portal-actions a{display:inline-flex;gap:22px;align-items:center;justify-content:space-between;padding:14px 18px;border:1px solid #d5e1ed;border-radius:12px;background:#fff;color:#365f86;font-size:14px;font-weight:700}
.site-portal .portal-actions a:first-child{background:#284c6e;color:#fff;border-color:#284c6e;box-shadow:0 8px 24px #284c6e22}
.site-portal .portal-section-title{font-size:17px;margin:0 0 16px}
.site-portal .grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:0}
.site-portal .card{border-radius:16px;min-height:182px;background:#fff;padding:22px;gap:24px}
.site-portal .card strong{font-size:17px}
.site-portal .card span:last-child{font-size:13px}
.site-portal .card:hover{border-color:#a8c1d6;box-shadow:0 12px 30px #2133460d}
.site-portal .ux-filter{box-shadow:none;background:#f7f9fc}
@media(max-width:800px){.site-portal .hero{padding:28px}.site-portal .grid{grid-template-columns:repeat(2,minmax(0,1fr))}.site-portal .top{align-items:flex-start}.site-portal .top-actions{justify-content:flex-end}}
@media(max-width:560px){.site-portal .wrap{width:calc(100% - 24px);padding-top:18px}.site-portal .top{gap:14px;margin-bottom:18px}.site-portal .top-actions{display:flex;justify-content:flex-start;gap:8px}.site-portal .top-actions a{padding:0 10px}.site-portal .hero{padding:24px 18px;border-radius:20px}.site-portal .grid{grid-template-columns:1fr}.site-portal .card{min-height:136px;padding:18px;gap:18px}.site-portal .portal-actions{display:grid;grid-template-columns:1fr;margin-bottom:32px}.site-portal h1{font-size:36px}.site-portal .lead{font-size:15px}}
@keyframes ux-enter{from{opacity:.45;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:no-preference){
  .ux-revealed{animation:ux-enter .5s var(--ux-ease) both}
  :is(.ux-quick,.ux-top,.primary-link,.ghost-link,.admin-card,.note-card,.album-card,.idea-card,.story-photo,.site-shell .btn){transition:transform .22s var(--ux-ease),box-shadow .22s,border-color .22s}
  :is(.ux-quick,.ux-top,.primary-link,.ghost-link,.site-shell .btn):active{transform:scale(.97)}
}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
  :is(.site-public .admin-card,.site-public .note-card,.site-public .album-card,.site-public .idea-card,.site-album .story-photo):hover{transform:translateY(-3px);box-shadow:0 14px 34px #14293c12;border-color:#b9cddd}
}
@media(max-width:700px){.site-public .nav{gap:10px;align-items:flex-start;padding:14px 0}.site-public .nav-links{gap:8px 12px}.site-public .hero{padding-top:30px;padding-bottom:30px}.ux-quick kbd{display:none}.ux-filter input{max-width:none}.ux-filter label{width:100%}.ux-filter-status{width:100%}.site-shell .site-top{padding:14px 12px;gap:12px}.site-shell .site-nav{font-size:12px;gap:8px 10px}.site-shell .login-card{padding:22px}.ux-top{right:14px}.site-album .topbar nav .ux-quick{min-height:36px;padding:6px 9px!important}.ux-dialog{max-height:80dvh}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
