[hidden] { display:none !important; }

:root { color-scheme: light; --ink:#13223b; --muted:#66758d; --blue:#2662db; --line:#e2e8f0; --canvas:#f7f9fc; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--canvas); font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif; }
button,input { font:inherit; }
button { cursor:pointer; }
a { color:inherit; }
.eyebrow { margin:0; color:var(--blue); font-size:.75rem; font-weight:750; line-height:1.4; letter-spacing:.17em; }
.eyebrow.light { color:#9fbfff; }
.brand-symbol { display:inline-flex; width:38px; height:38px; align-items:center; justify-content:center; border-radius:11px; background:#3474f5; color:#fff; font-size:1.55rem; line-height:1; font-weight:400; }

/* Entrance */
.login-shell { min-height:100vh; padding:clamp(16px,2.5vw,34px); display:grid; place-items:center; background:radial-gradient(circle at 90% 10%,#e4edff 0,transparent 34%),#f2f5fa; }
.login-frame { display:grid; grid-template-columns:minmax(360px,.94fr) minmax(420px,1.06fr); width:min(1120px,100%); min-height:min(720px,calc(100vh - 68px)); background:white; border:1px solid #dce3ee; border-radius:22px; overflow:hidden; box-shadow:0 26px 75px rgba(21,42,78,.13); }
.login-showcase { display:flex; flex-direction:column; justify-content:space-between; padding:39px 42px; color:white; background:radial-gradient(circle at 92% 8%,rgba(69,127,237,.27),transparent 34%),linear-gradient(150deg,#172945,#0e1b32 72%); position:relative; overflow:hidden; }
.login-showcase:after { content:""; width:620px; height:620px; position:absolute; border:1px solid rgba(255,255,255,.08); border-radius:50%; right:-380px; bottom:-260px; box-shadow:0 0 0 120px rgba(255,255,255,.018),0 0 0 260px rgba(255,255,255,.012); pointer-events:none; }
.brand-mark,.side-brand,.admin-logo { display:flex; gap:12px; align-items:center; font-size:.78rem; font-weight:800; letter-spacing:.13em; }
.showcase-center { position:relative; z-index:1; margin:32px 0 16px; }
.showcase-center h1 { font-size:clamp(2.55rem,4.3vw,4.3rem); line-height:1.08; margin:17px 0 32px; letter-spacing:-.055em; font-weight:660; }
.showcase-line { width:55px; height:3px; background:#4d8bff; border-radius:4px; margin-bottom:38px; }
.brand-stack { display:flex; flex-wrap:wrap; gap:9px; max-width:385px; }
.brand-stack span { border:1px solid rgba(202,219,253,.25); background:rgba(201,222,255,.075); border-radius:7px; padding:8px 10px; font-size:.76rem; color:#d3dff4; }
.showcase-footer { position:relative; z-index:1; margin:0; color:#93a9cc; font-size:.72rem; letter-spacing:.17em; font-weight:700; }
.login-content { display:flex; flex-direction:column; justify-content:space-between; padding:38px 49px 32px; }
.login-topline { display:flex; align-items:center; gap:12px; color:#9aa8bc; font-size:.72rem; font-weight:750; letter-spacing:.16em; justify-content:flex-end; }
.topline-rule { display:block; width:28px; height:1px; background:#b8c3d3; }
.login-form-wrap { width:min(390px,100%); margin:10px auto 28px; }
.login-mobile-brand { display:none; }
.login-form-wrap h2 { margin:18px 0 15px; font-size:clamp(2.5rem,4vw,3.55rem); font-weight:670; line-height:1.1; letter-spacing:-.055em; }
.login-intro { margin:0 0 39px; color:#71819a; font-size:.99rem; line-height:1.6; }
.access-form { display:flex; flex-direction:column; }
.access-form label { margin:0 0 9px; color:#34445d; font-size:.88rem; font-weight:700; }
.access-form input { width:100%; height:52px; padding:0 15px; border:1px solid #d8e0eb; border-radius:8px; background:#f9fbfe; outline:none; color:#15243c; font-size:1rem; margin-bottom:21px; transition:border-color .15s,box-shadow .15s; }
.access-form input:focus { border-color:#4380e8; box-shadow:0 0 0 3px rgba(67,128,232,.13); }
.access-form button,.admin-primary { display:inline-flex; align-items:center; justify-content:center; min-height:53px; margin-top:9px; padding:12px 22px; border:0; border-radius:8px; background:#245fd6; color:white; font-size:.95rem; font-weight:720; text-decoration:none; box-shadow:0 8px 18px rgba(38,98,219,.18); transition:background .15s,transform .15s; }
.access-form button:hover,.admin-primary:hover { background:#174fac; transform:translateY(-1px); }
.access-form button:disabled { opacity:.6; cursor:wait; transform:none; }
.form-error,.form-success { margin:0 0 14px; padding:12px 14px; border-radius:7px; font-size:.9rem; line-height:1.45; }
.form-error { background:#fff0ef; color:#a8322b; }
.form-success { background:#eaf7f1; color:#176747; }
.login-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; border-top:1px solid #e7ebf1; padding-top:22px; color:#9ca9ba; font-size:.78rem; }
.login-footer a { text-decoration:none; color:#6880a6; }
.login-footer a:hover { color:#245fd6; text-decoration:underline; }

/* Guide */
.guide-shell { display:grid; grid-template-columns:262px minmax(0,1fr); min-height:100vh; }
.guide-sidebar { position:sticky; top:0; height:100vh; display:flex; flex-direction:column; background:#13243f; color:#f3f7ff; padding:28px 16px 27px; }
.side-brand { padding:0 11px; font-size:.7rem; }
.side-brand .brand-symbol { width:34px; height:34px; font-size:1.35rem; border-radius:9px; }
.side-divider { height:1px; background:rgba(214,230,255,.14); margin:31px 11px 31px; }
.side-label { display:flex; justify-content:space-between; padding:0 14px 13px; color:#8fa6c9; font-size:.69rem; font-weight:760; letter-spacing:.15em; }
.side-label span { color:#55739e; }
.card-tabs { display:flex; flex-direction:column; gap:4px; }
.card-tab { display:grid; grid-template-columns:31px 1fr; gap:7px; align-items:center; width:100%; min-height:55px; padding:10px 13px; color:#bac9df; background:transparent; border:1px solid transparent; border-radius:8px; text-align:left; font-size:.88rem; line-height:1.25; transition:background .15s,color .15s; }
.card-tab:hover { background:rgba(255,255,255,.07); color:#fff; }
.card-tab.active { color:#fff; background:#284c80; border-color:#315a95; box-shadow:inset 3px 0 #65a1ff; font-weight:680; }
.tab-index { color:#7691b9; font-size:.72rem; font-weight:740; letter-spacing:.08em; }
.card-tab.active .tab-index { color:#9cc5ff; }
.sidebar-bottom { margin-top:auto; padding:16px 14px 0; color:#6e88ac; border-top:1px solid rgba(214,230,255,.12); font-size:.79rem; line-height:1.5; }
.guide-main { min-width:0; }
.guide-topbar { display:flex; align-items:center; justify-content:space-between; height:74px; padding:0 clamp(26px,4.2vw,70px); background:white; border-bottom:1px solid var(--line); }
.guide-breadcrumb { font-size:.72rem; color:#8190a6; font-weight:750; letter-spacing:.15em; }
.guide-breadcrumb span { margin:0 12px; color:#b7c2d1; }
.top-actions a,.top-actions button { background:none; border:0; color:#45648f; font-size:.84rem; font-weight:700; text-decoration:none; }
.top-actions a:hover,.top-actions button:hover { color:var(--blue); text-decoration:underline; }
.guide-mobile-brand,.mobile-tabs { display:none; }
.guide-content { max-width:1510px; margin:0 auto; padding:48px clamp(26px,4.2vw,70px) 90px; }
.guide-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:15px; padding-bottom:35px; border-bottom:1px solid #dce4ef; }
.guide-heading h1 { margin:12px 0 0; color:#152740; font-size:clamp(2.2rem,3vw,3.25rem); line-height:1.12; font-weight:670; letter-spacing:-.047em; }
.step-count { white-space:nowrap; border:1px solid #d9e2ef; background:white; padding:9px 12px; border-radius:6px; color:#6480a8; font-size:.72rem; font-weight:760; letter-spacing:.12em; }
.guide-columns { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(275px,.85fr); gap:clamp(28px,4vw,65px); padding-top:33px; }
.section-label { display:flex; align-items:center; gap:14px; margin-bottom:25px; color:#8291a8; font-size:.7rem; font-weight:780; letter-spacing:.15em; white-space:nowrap; }
.section-label .line { flex:1; height:1px; background:#dce4ef; }
.steps-list { position:relative; }
.steps-list:before { content:""; position:absolute; top:20px; bottom:35px; left:20px; width:1px; background:#d8e3f0; }
.step { position:relative; display:grid; grid-template-columns:42px minmax(0,1fr); gap:20px; padding-bottom:30px; }
.step-marker { position:relative; z-index:1; display:grid; place-items:center; width:41px; height:41px; border:1px solid #c9d9f3; border-radius:10px; color:#2865d8; background:#eaf1ff; font-size:.75rem; font-weight:800; letter-spacing:.03em; }
.step-copy { padding:4px 0 0; }
.step-copy h2 { margin:0 0 10px; font-size:1.05rem; font-weight:720; line-height:1.42; color:#1c2e48; }
.step-copy p { margin:0 0 7px; color:#50617a; font-size:1rem; line-height:1.7; overflow-wrap:anywhere; }
.step-copy a,.note-box a { color:#245fd6; text-decoration:underline; text-underline-offset:3px; }
.note-box { display:grid; grid-template-columns:26px minmax(0,1fr); gap:14px; margin:1px 0 40px 62px; padding:22px 22px 20px; border:1px solid #cddbf3; border-left:3px solid #3973dc; border-radius:9px; background:#eff5ff; }
.note-icon { width:21px; height:21px; display:grid; place-items:center; border-radius:50%; background:#3b73d9; color:white; font-size:.8rem; font-weight:800; }
.note-box h2 { margin:0 0 7px; font-size:1rem; color:#244875; }
.note-box p { margin:0; color:#425a7d; font-size:.94rem; line-height:1.65; overflow-wrap:anywhere; }
.images-column { min-width:0; }
.image-list { display:flex; flex-direction:column; gap:16px; }
.image-tile { display:block; width:100%; padding:9px; border:1px solid #dfe6f0; border-radius:12px; background:white; text-align:left; box-shadow:0 10px 27px rgba(23,50,85,.045); transition:transform .15s,border-color .15s,box-shadow .15s; }
.image-tile:hover { transform:translateY(-2px); border-color:#9bbbee; box-shadow:0 13px 30px rgba(23,50,85,.1); }
.image-tile img { display:block; width:100%; max-height:450px; object-fit:contain; background:#f4f7fb; border-radius:6px; }
.image-caption { display:flex; justify-content:space-between; gap:8px; padding:11px 5px 3px; color:#8596ae; font-size:.68rem; font-weight:770; letter-spacing:.11em; }
.image-caption span:last-child { color:#4978c5; }
.image-overlay { position:fixed; inset:0; z-index:20; display:grid; place-items:center; padding:28px; background:rgba(8,20,40,.84); }
.image-dialog { position:relative; display:grid; place-items:center; max-width:min(1450px,100%); max-height:100%; }
.image-dialog img { display:block; max-width:100%; max-height:calc(100vh - 56px); object-fit:contain; background:white; border-radius:5px; box-shadow:0 30px 80px rgba(0,0,0,.35); }
.close-image { position:absolute; right:-15px; top:-17px; z-index:1; width:38px; height:38px; border:0; border-radius:50%; background:white; color:#1b2a44; font-size:1.75rem; line-height:1; box-shadow:0 6px 20px rgba(0,0,0,.25); }

/* Owner settings */
.admin-shell { min-height:100vh; display:grid; place-items:center; padding:28px; background:radial-gradient(circle at 0 0,#dce9ff,transparent 30%),#f1f5fb; }
.admin-card { width:min(510px,100%); padding:44px; border:1px solid #dbe4f0; border-radius:16px; background:white; box-shadow:0 25px 65px rgba(21,42,78,.11); }
.admin-card.admin-wide { width:min(620px,100%); }
.admin-card h1 { margin:12px 0; font-size:2.2rem; letter-spacing:-.04em; }
.admin-card p { line-height:1.65; }
.admin-card>a { color:#245fd6; }
.admin-card .admin-primary { margin-top:14px; color:white; }
.admin-header { display:flex; align-items:center; justify-content:space-between; margin:-7px 0 47px; padding-bottom:22px; border-bottom:1px solid #e5ebf3; }
.admin-logo { color:#1e385e; font-size:.72rem; }
.admin-logo .brand-symbol { width:30px; height:30px; border-radius:8px; font-size:1.2rem; }
.admin-header a { font-size:.82rem; color:#376bc0; text-decoration:none; }
.admin-intro { color:#697a91; margin:0 0 26px; }
.admin-current { display:flex; flex-wrap:wrap; align-items:center; gap:9px 15px; padding:15px 17px; margin-bottom:26px; background:#f4f7fb; border:1px solid #e4ebf3; border-radius:8px; font-size:.82rem; color:#71819a; }
.admin-current strong { color:#243c5f; font-size:.89rem; }
.admin-current small { flex-basis:100%; color:#8b9aaf; font-size:.73rem; }
.admin-form input { margin-bottom:18px; }
.admin-footnote { font-size:.79rem; color:#8291a5; margin:22px 0 0; }

@media (max-width:1080px) { .guide-columns { grid-template-columns:minmax(0,1fr) 300px; gap:28px; } .guide-sidebar { width:235px; } .guide-shell { grid-template-columns:235px minmax(0,1fr); } .card-tab { font-size:.81rem; } }
@media (max-width:850px) { .guide-shell { display:block; } .guide-sidebar { display:none; } .guide-topbar { height:65px; padding:0 24px; } .guide-mobile-brand { display:flex; align-items:center; gap:8px; font-size:.71rem; font-weight:800; letter-spacing:.1em; } .guide-mobile-brand .brand-symbol { width:29px; height:29px; font-size:1.1rem; border-radius:7px; } .guide-breadcrumb { display:none; } .mobile-tabs { display:flex; overflow-x:auto; gap:8px; padding:13px 24px; border-bottom:1px solid #e3e9f2; background:white; scrollbar-width:thin; } .mobile-tabs button { white-space:nowrap; padding:10px 13px; border:1px solid #dfe6f0; border-radius:7px; background:white; color:#526680; font-size:.84rem; font-weight:680; } .mobile-tabs button.active { background:#eaf1ff; color:#245fd6; border-color:#a9c6f4; } .guide-content { padding:31px 24px 70px; } }
@media (max-width:660px) { .login-shell { padding:0; background:white; } .login-frame { display:block; min-height:100vh; border:0; border-radius:0; box-shadow:none; } .login-showcase,.login-topline { display:none; } .login-content { min-height:100vh; padding:29px 25px 23px; } .login-form-wrap { margin:45px auto 40px; } .login-mobile-brand { display:flex; align-items:center; gap:9px; margin-bottom:61px; color:#263d61; font-size:.71rem; font-weight:800; letter-spacing:.12em; } .login-mobile-brand .brand-symbol { width:31px; height:31px; border-radius:8px; font-size:1.2rem; } .login-form-wrap h2 { font-size:2.6rem; } .guide-heading { align-items:flex-start; } .guide-heading h1 { font-size:2.25rem; } .step-count { display:none; } .guide-columns { display:flex; flex-direction:column; gap:10px; } .note-box { margin-left:0; } .image-list { display:grid; grid-template-columns:1fr; } .images-column { margin-top:4px; } .admin-shell { padding:14px; } .admin-card { padding:28px 22px; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*:before,*:after { transition-duration:.01ms!important; animation-duration:.01ms!important; } }
