:root{--pm-primary: #0E8F87;--pm-primary-d: #0B6F69;--pm-coral: #FF6B5B;--pm-terc: #4FBDB5;--pm-bg: #EAF6F4;--pm-ink: #123A37;--pm-ink-soft: #4A6B68;--pm-line: #D6E7E4;--pm-white: #ffffff;--pm-ok-bg: #E6FAF3;--pm-ok-fg: #1A6B4A;--pm-warn-bg: #FFF8E1;--pm-warn-fg: #B7791F;--pm-rej-bg: #FEF2F2;--pm-rej-fg: #9B1C1C;--pm-shadow: 0 4px 20px rgba(18, 58, 55, .08);--pm-radius: 14px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:Plus Jakarta Sans,system-ui,sans-serif;color:var(--pm-ink);background:var(--pm-bg);-webkit-font-smoothing:antialiased}button{font-family:inherit}a{color:inherit}.pu-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(1200px 500px at 50% -10%,#ffffff 0%,transparent 60%),var(--pm-bg)}.pu-card{width:100%;max-width:360px;background:var(--pm-white);border-radius:20px;box-shadow:var(--pm-shadow);padding:32px 28px;text-align:center;display:flex;flex-direction:column;align-items:center}.pu-badge{width:58px;height:58px;display:flex;align-items:center;justify-content:center;font-size:26px;background:var(--pm-bg);border-radius:16px;margin-bottom:12px}.pu-name{margin:0;font-size:22px;font-weight:800;color:var(--pm-ink)}.pu-hint{margin:6px 0 18px;font-size:14px;color:var(--pm-ink-soft);max-width:260px}.pu-dots{display:flex;gap:16px;margin:4px 0 6px}.pu-dot{width:16px;height:16px;border-radius:50%;border:2px solid var(--pm-primary);background:transparent;transition:background .12s}.pu-dot--on{background:var(--pm-primary)}.pu-dots--shake{animation:pu-shake .5s}@keyframes pu-shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-8px)}40%,80%{transform:translate(8px)}}.pu-error{margin:6px 0 10px;font-size:13px;font-weight:600;color:transparent;min-height:18px}.pu-error--show{color:var(--pm-coral)}.pu-pad{display:grid;grid-template-columns:repeat(3,72px);gap:12px;margin-top:6px}.pu-key{width:72px;height:72px;border-radius:50%;border:1.5px solid var(--pm-line);background:#fff;font-size:24px;font-weight:700;color:var(--pm-ink);cursor:pointer}.pu-key:hover{background:var(--pm-bg)}.pu-key:active{transform:scale(.94)}.pu-key--erase{font-size:20px;border-color:transparent;background:transparent}.pu-key-ghost{width:72px;height:72px}.pu-input{width:100%;padding:12px 14px;margin-bottom:10px;border-radius:11px;border:1.5px solid var(--pm-line);font-size:22px;letter-spacing:6px;text-align:center;outline:none;color:var(--pm-ink)}.pu-input:focus{border-color:var(--pm-primary)}.pu-submit{width:100%;padding:12px 0;margin-top:4px;border:none;border-radius:11px;background:var(--pm-primary);color:#fff;font-size:15px;font-weight:700;cursor:pointer}.pu-submit:hover{background:var(--pm-primary-d)}.pu-submit:disabled{opacity:.55;cursor:default}.pu-forgot{margin-top:18px;border:none;background:transparent;color:var(--pm-primary-d);font-size:13px;font-weight:600;cursor:pointer}.pu-forgot:hover{text-decoration:underline}.sh-root{display:grid;grid-template-columns:248px 1fr;min-height:100vh}.sh-sidebar{background:var(--pm-white);border-right:1px solid var(--pm-line);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}.sh-brand{display:flex;align-items:center;gap:10px;padding:20px 20px 16px;border-bottom:1px solid var(--pm-line)}.sh-brand-mark{font-size:22px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--pm-bg);border-radius:12px}.sh-brand-text{display:flex;flex-direction:column;line-height:1.15}.sh-brand-text strong{font-size:16px;font-weight:800;color:var(--pm-ink)}.sh-brand-text span{font-size:12px;color:var(--pm-ink-soft)}.sh-nav{padding:12px 12px 24px;display:flex;flex-direction:column;gap:14px}.sh-nav-group{display:flex;flex-direction:column;gap:2px}.sh-nav-group-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--pm-ink-soft);margin:6px 10px;opacity:.7}.sh-nav-item{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:10px;text-decoration:none;color:var(--pm-ink);font-size:14px;font-weight:600;position:relative}.sh-nav-item:hover{background:var(--pm-bg)}.sh-nav-item--active{background:var(--pm-bg);color:var(--pm-primary-d)}.sh-nav-item--active:before{content:"";position:absolute;left:-12px;top:8px;bottom:8px;width:4px;border-radius:0 4px 4px 0;background:var(--pm-primary)}.sh-nav-icon{width:22px;text-align:center;font-size:15px}.sh-nav-label{flex:1}.sh-nav-soon{color:var(--pm-coral);font-size:18px;line-height:0}.sh-main{display:flex;flex-direction:column;min-width:0}.sh-topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:14px;padding:14px 24px;background:#ffffffe6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--pm-line)}.sh-burger{display:none;border:none;background:transparent;font-size:22px;cursor:pointer;color:var(--pm-ink);padding:0 4px}.sh-page-title{margin:0;font-size:20px;font-weight:800;display:flex;align-items:center;gap:9px}.sh-page-icon{font-size:18px}.sh-topbar-right{margin-left:auto;display:flex;align-items:center;gap:14px}.sh-user{display:flex;align-items:center;gap:10px}.sh-avatar{width:38px;height:38px;border-radius:50%;background:var(--pm-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px}.sh-user-text{display:flex;flex-direction:column;line-height:1.2}.sh-user-text strong{font-size:14px}.sh-user-text span{font-size:12px;color:var(--pm-ink-soft)}.sh-logout{border:1.5px solid var(--pm-line);background:#fff;color:var(--pm-ink);padding:8px 14px;border-radius:9px;font-weight:700;font-size:13px;cursor:pointer}.sh-logout:hover{border-color:var(--pm-coral);color:var(--pm-coral)}.sh-content{padding:24px;max-width:1200px;width:100%}.sh-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:15;background:#123a3759}@media (max-width: 900px){.sh-root{grid-template-columns:1fr}.sh-sidebar{position:fixed;z-index:20;width:260px;height:100vh;transform:translate(-100%);transition:transform .22s ease;box-shadow:var(--pm-shadow)}.sh-root--open .sh-sidebar{transform:translate(0)}.sh-burger{display:inline-flex}.sh-user-text{display:none}.sh-content{padding:18px}}
