@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:500;src:url(/assets/baloo-2-latin-500-normal-CmLZ27r7.woff2)format("woff2"),url(/assets/baloo-2-latin-500-normal-BSdEhq8m.woff)format("woff")}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:500;src:url(/assets/baloo-2-latin-ext-500-normal-Ba7mhTsk.woff2)format("woff2"),url(/assets/baloo-2-latin-ext-500-normal-D1XZow3C.woff)format("woff")}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:500;src:url(/assets/baloo-2-vietnamese-500-normal-Cj5RGu3k.woff2)format("woff2"),url(/assets/baloo-2-vietnamese-500-normal-ClyrcyJC.woff)format("woff")}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/baloo-2-latin-700-normal-CqTg7A15.woff2)format("woff2"),url(/assets/baloo-2-latin-700-normal-Ld3Zm3l2.woff)format("woff")}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/baloo-2-latin-ext-700-normal-Mlh7kdab.woff2)format("woff2"),url(/assets/baloo-2-latin-ext-700-normal-D6LeXASg.woff)format("woff")}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/baloo-2-vietnamese-700-normal-h4tlcePq.woff2)format("woff2"),url(/assets/baloo-2-vietnamese-700-normal-DoF59Mjc.woff)format("woff")}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:800;src:url(/assets/baloo-2-latin-800-normal-BbF3Etk1.woff2)format("woff2"),url(/assets/baloo-2-latin-800-normal-B8BXfZF7.woff)format("woff")}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:800;src:url(/assets/baloo-2-latin-ext-800-normal-C_Iwmf1s.woff2)format("woff2"),url(/assets/baloo-2-latin-ext-800-normal-D-iCxxqE.woff)format("woff")}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:800;src:url(/assets/baloo-2-vietnamese-800-normal-ConLnEgt.woff2)format("woff2"),url(/assets/baloo-2-vietnamese-800-normal-GQACmpuv.woff)format("woff")}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-ext-wght-normal-D4X5GqEv.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-wght-normal-CY6AOgYE.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-vietnamese-wght-normal-U01xdrZh.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-ext-wght-normal-CXYtwYOx.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-wght-normal-BzFMHfZw.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ow2-ink:#17304f;--ow2-sun:#ffc93c;--ow2-sea:#0f6fb0;--ow2-leaf:#0b7a47;--ow2-orange:#f2762e;--ow2-grape:#6b4ee6;--ow2-berry:#c7352d;--ow2-sand:#fff4d6;--ow2-muted:#4a6280;--ow2-sky:#dff4ff;--ow2-font-heading:"Baloo 2", system-ui, sans-serif;--ow2-font-body:"Nunito Variable", "Nunito", system-ui, sans-serif}html,body{background:var(--ow2-sky);color:var(--ow2-ink);font-family:var(--ow2-font-body);-webkit-tap-highlight-color:transparent;margin:0}*,:before,:after{box-sizing:border-box}.ow2-btn{cursor:pointer;transition:transform 80ms,box-shadow 80ms}.ow2-btn:active:not(:disabled){transform:translateY(4px);box-shadow:none!important}.ow2-btn:focus-visible{outline:4px solid var(--ow2-sea);outline-offset:3px}.ow2-btn:disabled{cursor:not-allowed;opacity:.5}.admin-auth{min-height:100dvh;color:var(--ow2-ink);font-family:var(--ow2-font-body);background:#f3f7fb;justify-content:center;align-items:center;padding:24px 16px;display:flex}.admin-auth__card{background:#fff;border:1px solid #dce6f0;border-radius:24px;flex-direction:column;gap:14px;width:100%;max-width:440px;padding:28px 24px;display:flex}.admin-auth__card p{margin:0;font-size:16px;font-weight:600;line-height:1.4}.admin-auth__brand{align-items:center;gap:12px;display:flex}.admin-auth__card .admin-auth__app{font-family:var(--ow2-font-heading);font-size:22px;font-weight:800;line-height:1.1}.admin-auth__card .admin-auth__role{color:var(--ow2-muted);font-size:14px;font-weight:700}.admin-auth__title{font-family:var(--ow2-font-heading);margin:0;font-size:28px;font-weight:800;line-height:1.15}.admin-auth__card .admin-auth__intro{color:var(--ow2-muted)}.admin-field{flex-direction:column;gap:6px;font-size:15px;font-weight:800;display:flex}.admin-field input{min-height:48px;color:var(--ow2-ink);font:600 17px var(--ow2-font-body);background:#fff;border:2px solid #9fb6c7;border-radius:14px;padding:0 14px}.admin-field input:focus-visible{outline:3px solid var(--ow2-sea);outline-offset:2px;border-color:var(--ow2-sea)}.admin-code{flex-direction:column;gap:14px;display:flex}.admin-field .admin-code__input{text-align:center;letter-spacing:.35em;font-family:var(--ow2-font-heading);font-size:28px;font-weight:800}.admin-auth__error{min-height:1.4em;color:var(--ow2-berry);font-size:15px;font-weight:800}.admin-auth__qr{background:#fff;border:1px solid #dce6f0;border-radius:12px;align-self:center;padding:8px}.admin-auth__card .admin-auth__secret{color:var(--ow2-muted);overflow-wrap:anywhere;font-size:14px}.admin-auth__secret code{color:var(--ow2-ink);font-weight:800}.admin-link{min-height:44px;color:var(--ow2-sea);font:800 15px var(--ow2-font-body);cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:0 4px;text-decoration:underline}.admin-link:focus-visible{outline:3px solid var(--ow2-sea);outline-offset:2px}body{background:#f3f7fb}.admin-shell{min-height:100dvh;color:var(--ow2-ink);font-family:var(--ow2-font-body);background:#f3f7fb;display:flex}.admin-skip{z-index:100;background:var(--ow2-sun);min-height:44px;color:var(--ow2-ink);border-radius:12px;align-items:center;padding:0 16px;font-weight:800;text-decoration:none;display:inline-flex;position:absolute;top:-80px;left:8px}.admin-skip:focus{outline:3px solid var(--ow2-sea);outline-offset:2px;top:8px}.admin-nav{background:var(--ow2-ink);color:#fff}.admin-nav__item{color:#fff;align-items:center;min-height:48px;font-weight:700;text-decoration:none;display:flex;position:relative}.admin-nav__item:focus-visible,.admin-signout:focus-visible,.admin-main:focus-visible{outline:3px solid var(--ow2-sun);outline-offset:-3px}.admin-nav__badge{background:var(--ow2-sun);min-width:24px;height:24px;color:var(--ow2-ink);border-radius:12px;justify-content:center;align-items:center;padding:0 6px;font-size:14px;font-weight:800;display:inline-flex}.admin-nav__icon{flex-shrink:0}.admin-brand{align-items:center;gap:10px;display:flex}.admin-brand__text{flex-direction:column;display:flex}.admin-brand__name{font-family:var(--ow2-font-heading);font-size:20px;font-weight:800;line-height:1.1}.admin-brand__role{color:#b7c8da;font-size:13px;font-weight:700}.admin-nav[data-layout=sidebar]{flex-direction:column;flex:0 0 240px;align-self:flex-start;gap:6px;height:100dvh;padding:24px 16px;display:flex;position:sticky;top:0;overflow-y:auto}.admin-nav[data-layout=sidebar] .admin-brand{padding:0 8px 18px}.admin-nav[data-layout=sidebar] .admin-nav__item{border-radius:14px;gap:12px;padding:0 14px;font-size:16px}.admin-nav[data-layout=sidebar] .admin-nav__label{flex:1}.admin-nav[data-layout=sidebar] .admin-nav__item[aria-current=page]{color:var(--ow2-ink);background:#fff;font-weight:800}.admin-nav[data-layout=tabbar]{z-index:50;color:var(--ow2-muted);padding:6px 4px calc(10px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #dce6f0;display:flex;position:fixed;bottom:0;left:0;right:0}.admin-nav[data-layout=tabbar] .admin-brand{display:none}.admin-nav[data-layout=tabbar]>.admin-nav__item,.admin-nav[data-layout=tabbar] .admin-more{flex:1 1 0;min-width:0}.admin-nav[data-layout=tabbar] .admin-nav__item{min-height:56px;color:var(--ow2-muted);border-radius:12px;flex-direction:column;justify-content:center;gap:2px;padding:0 4px;font-size:12px}.admin-nav[data-layout=tabbar] .admin-nav__item[aria-current=page],.admin-nav[data-layout=tabbar] .admin-nav__more[data-current=true],.admin-nav[data-layout=tabbar] .admin-nav__more[aria-expanded=true]{color:var(--ow2-sea);font-weight:800}.admin-more{display:flex}.admin-nav__more{width:100%;font-family:var(--ow2-font-body);cursor:pointer;background:0 0;border:0}.admin-more__panel{background:#fff;border:1px solid #dce6f0;border-radius:18px;flex-direction:column;gap:4px;min-width:220px;padding:8px;display:flex;position:absolute;bottom:calc(100% + 8px);right:8px;box-shadow:0 12px 32px #17304f2e}.admin-nav[data-layout=tabbar] .admin-more__panel .admin-nav__item{min-height:48px;color:var(--ow2-ink);flex-direction:row;justify-content:flex-start;gap:12px;padding:0 14px;font-size:16px}.admin-nav[data-layout=tabbar] .admin-more__panel .admin-nav__item[aria-current=page]{color:var(--ow2-sea);background:#eaf4fc}.admin-nav[data-layout=tabbar] .admin-nav__item:focus-visible{outline-color:var(--ow2-sea)}.admin-nav[data-layout=tabbar] .admin-nav__badge{background:var(--ow2-berry);color:#fff;min-width:20px;height:20px;font-size:12px;position:absolute;top:2px;left:54%}.admin-body{flex-direction:column;flex:1 1 0;min-width:0;display:flex}.admin-shell[data-layout=tabbar] .admin-body{padding-bottom:calc(76px + env(safe-area-inset-bottom))}.admin-top{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;padding:16px 32px 0;display:flex}.admin-shell[data-layout=tabbar] .admin-top{padding:12px 16px 0}.admin-who{background:#fff;border:1px solid #dce6f0;border-radius:24px;align-items:center;gap:10px;min-height:48px;padding:0 18px 0 8px;font-size:15px;font-weight:800;display:inline-flex}.admin-who__avatar{background:var(--ow2-sun);border-radius:16px;justify-content:center;align-items:center;width:32px;height:32px;font-weight:800;display:inline-flex}.admin-who__role:before{content:"·";margin-right:6px}.admin-signout{border:2px solid var(--ow2-ink);min-height:44px;color:var(--ow2-ink);font:800 15px var(--ow2-font-body);cursor:pointer;background:#fff;border-radius:14px;padding:0 18px}.admin-main{flex:1;min-width:0;padding:16px 32px 32px}.admin-shell[data-layout=tabbar] .admin-main{padding:12px 16px 24px}.admin-main h1{font-family:var(--ow2-font-heading);margin:0 0 8px;font-size:36px;font-weight:800;line-height:1.1}.admin-shell[data-layout=tabbar] .admin-main h1{font-size:30px}.admin-visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.st{flex-direction:column;gap:18px;min-width:0;display:flex}.st--narrow{max-width:640px}.st h1,.st-failure__title{margin:0}.st h2{font-family:var(--ow2-font-heading);margin:0;font-size:22px;font-weight:800;line-height:1.15}.st-loading,.st-intro,.st-summary,.st-empty{color:var(--ow2-muted);margin:0;font-size:16px;font-weight:700}.st-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.st-head__sub{color:var(--ow2-muted);margin:0;font-size:15px;font-weight:700}.st-head__actions,.st-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.st-btn{border:2px solid var(--ow2-ink);min-height:44px;color:var(--ow2-ink);font:800 15px var(--ow2-font-body);cursor:pointer;background:#fff;border-radius:14px;justify-content:center;align-items:center;padding:0 20px;text-decoration:none;display:inline-flex}.st-btn--primary{border-color:var(--ow2-sea);background:var(--ow2-sea);color:#fff}.st-btn--danger{border-color:var(--ow2-berry);background:var(--ow2-berry);color:#fff}.st-btn--quiet{color:var(--ow2-muted);border-color:#9fb6c7}.st-btn--small{padding:0 14px;font-size:14px}.st-btn:focus-visible,.st-sort:focus-visible,.st-name:focus-visible,.st-tablewrap:focus-visible,.st-file:focus-within,.st-dialog:focus-visible,.st-done:focus-visible{outline:3px solid var(--ow2-sea);outline-offset:2px}.st-btn:disabled{cursor:not-allowed;opacity:.55}.st-field{flex-direction:column;gap:6px;display:flex}.st-field label{font-size:15px;font-weight:800}.st-field input,.st-field textarea{min-height:48px;color:var(--ow2-ink);font:600 17px var(--ow2-font-body);background:#fff;border:2px solid #9fb6c7;border-radius:14px;padding:0 14px}.st-field textarea{resize:vertical;padding:12px 14px;line-height:1.4}.st-field input:focus-visible,.st-field textarea:focus-visible{outline:3px solid var(--ow2-sea);outline-offset:2px;border-color:var(--ow2-sea)}.st-field [aria-invalid=true]{border-color:var(--ow2-berry)}.st-form{flex-direction:column;gap:18px;display:flex}.st-hint{color:var(--ow2-muted);font-size:14px;font-weight:600}.st-error{color:var(--ow2-berry);font-size:15px;font-weight:800}.st-error--block{background:#fdedeb;border-radius:14px;margin:0;padding:12px 16px}.st-error--block p{margin:0}.st-file{position:relative}.st-file__input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.st-tools{flex-wrap:wrap;align-items:flex-end;gap:14px;display:flex}.st-search{flex:260px;max-width:420px}.st-chip{background:var(--ow2-sand);border:1px solid #e8ddb8;border-radius:24px;flex-wrap:wrap;align-items:center;gap:8px;padding:4px 6px 4px 14px;font-size:15px;font-weight:700;display:inline-flex}.st-notice,.st-stale{color:var(--ow2-ink);background:#e7f6ee;border-radius:14px;margin:0;padding:12px 16px;font-size:15px;font-weight:800}.st-stale{background:var(--ow2-sand);flex-wrap:wrap;align-items:center;gap:10px;display:flex}.st-failure{background:var(--ow2-sand);border:1px solid #e8ddb8;border-radius:20px;flex-direction:column;align-items:flex-start;gap:10px;margin:0;padding:18px 20px;font-size:16px;font-weight:700;display:flex}.st-failure p{margin:0}.st-failure__title{font-family:var(--ow2-font-heading);font-size:24px;font-weight:800;line-height:1.1}.st-tablewrap{background:#fff;border:1px solid #dce6f0;border-radius:20px;overflow-x:auto}.st-table{border-collapse:collapse;width:100%;min-width:760px;font-size:15px}.st-table th,.st-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #e8eef5;padding:10px 14px}.st-table tbody tr:last-child td{border-bottom:0}.st-table th{color:var(--ow2-muted);white-space:nowrap;background:#f3f7fb;font-size:14px;font-weight:800}.st-table .st-num{font-variant-numeric:tabular-nums}.st-row--bad td{background:#fdf6f5}.st-sort{min-height:44px;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;margin:-10px -6px;padding:0 6px;display:inline-flex}.st-name{min-height:44px;color:var(--ow2-ink);overflow-wrap:anywhere;align-items:center;font-size:16px;font-weight:800;display:flex}.st-username{color:var(--ow2-muted);margin-top:-8px;font-size:13px;font-weight:600;display:block}.st-badges,.st-rowactions{flex-wrap:wrap;gap:6px;display:flex}.st-badge{white-space:nowrap;border-radius:14px;align-items:center;min-height:28px;padding:0 10px;font-size:13px;font-weight:800;display:inline-flex}.st-badge--locked{color:var(--ow2-berry);background:#fdedeb}.st-badge--help{background:var(--ow2-sun);color:var(--ow2-ink)}.st-status{font-weight:800}.st-status--created{color:var(--ow2-leaf)}.st-status--exists{color:var(--ow2-sea)}.st-status--error{color:var(--ow2-berry)}.st-sub{color:var(--ow2-muted);font-size:13px;font-weight:600;display:block}.st-pin{font-family:var(--ow2-font-heading);letter-spacing:.12em;font-size:18px;font-weight:800}.st-section{flex-direction:column;gap:12px;display:flex}.st-overlay{z-index:200;color:var(--ow2-ink);font-family:var(--ow2-font-body);background:#17304f8c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.st-dialog{background:#fff;border-radius:24px;flex-direction:column;gap:14px;width:100%;max-width:520px;max-height:calc(100dvh - 32px);padding:24px;display:flex;overflow-y:auto}.st-dialog__title{font-family:var(--ow2-font-heading);margin:0;font-size:24px;font-weight:800;line-height:1.15}.st-dialog__body{flex-direction:column;gap:12px;display:flex}.st-dialog__body p{margin:0;font-size:16px;font-weight:600;line-height:1.4}.st-dialog__footer{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.st-reveal{flex-direction:column;gap:12px;display:flex}.st-done{font-family:var(--ow2-font-heading);color:var(--ow2-leaf);font-size:24px;font-weight:800}.st-card{border:3px dashed var(--ow2-sea);background:#fff;border-radius:20px;padding:20px 22px}.st-card__list{flex-direction:column;gap:12px;margin:0;display:flex}.st-card__list dt{color:var(--ow2-muted);font-size:14px;font-weight:700}.st-card__list dd{overflow-wrap:anywhere;margin:0}.st-card__name{font-size:22px;font-weight:800}.st-card__big{font-family:var(--ow2-font-heading);font-size:40px;font-weight:800;line-height:1.1}.st-card__pin{letter-spacing:.25em}.st-card__address{font-size:16px;font-weight:700}.st-note{color:var(--ow2-muted);margin:0;font-size:15px;font-weight:700}.st-note--warn{background:var(--ow2-sand);color:var(--ow2-ink);border:1px solid #e8ddb8;border-radius:14px;padding:12px 16px}.st-copied{min-height:1.4em;color:var(--ow2-leaf);margin:0;font-size:15px;font-weight:800}@media print{body[data-print=card] *{visibility:hidden}body[data-print=card] .st-card,body[data-print=card] .st-card *{visibility:visible}body[data-print=card] .st-card{box-sizing:border-box;border-color:#000;width:100%;position:fixed;top:0;left:0}}.hp{flex-direction:column;gap:16px;min-width:0;display:flex}.hp-head h1{margin:0}.hp-head__sub{color:var(--ow2-muted);margin:0;font-size:15px;font-weight:700}.hp-columns{flex-wrap:wrap;align-items:flex-start;gap:18px;display:flex}.hp-list{flex-direction:column;flex:320px;gap:12px;min-width:0;display:flex}.hp-right{flex:2 420px;min-width:0}.hp-cards{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.hp-card{width:100%;min-height:44px;color:var(--ow2-ink);font-family:var(--ow2-font-body);text-align:left;cursor:pointer;background:#fff;border:1px solid #dce6f0;border-radius:20px;align-items:center;gap:12px;padding:14px 16px;display:flex}.hp-card--current{border:3px solid var(--ow2-ink);box-shadow:0 5px 0 var(--ow2-ink);padding:12px 14px}.hp-card--quiet{background:#f8fbfe;padding:8px 14px}.hp-card:focus-visible,.hp-phrase:focus-visible,.hp-sticker:focus-visible,.hp-send:focus-visible,.hp-done:focus-visible,.hp-composer__input:focus-visible,.hp-chime input:focus-visible,.hp-link:focus-visible{outline:3px solid var(--ow2-sea);outline-offset:2px}.hp-avatar{font-family:var(--ow2-font-heading);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:800;display:inline-flex}.hp-card__text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.hp-card__top{justify-content:space-between;gap:8px;display:flex}.hp-card__name{overflow-wrap:anywhere;font-size:17px;font-weight:800}.hp-card__ago{color:#c7352d;white-space:nowrap;font-size:13px;font-weight:700}.hp-card__where{color:var(--ow2-muted);overflow-wrap:anywhere;font-size:14px;font-weight:600}.hp-subtitle{color:var(--ow2-muted);font-family:var(--ow2-font-body);margin:8px 4px 0;font-size:14px;font-weight:800}.hp-panel{background:#fff;border:1px solid #dce6f0;border-radius:24px;flex-direction:column;gap:14px;padding:22px;display:flex}.hp-panel__head{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.hp-panel__who{flex:200px;min-width:0}.hp-panel__name{font-family:var(--ow2-font-heading);overflow-wrap:anywhere;margin:0;font-size:26px;font-weight:800;line-height:1.1}.hp-link{min-height:44px;color:var(--ow2-sea);align-items:center;font-size:15px;font-weight:800;display:inline-flex}.hp-where{background:#f3f7fb;border-radius:18px;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:12px 16px;display:flex}.hp-where__label{color:var(--ow2-muted);font-size:14px;font-weight:700}.hp-where__place{overflow-wrap:anywhere;font-size:16px;font-weight:800}.hp-where__ago,.hp-where__none{color:var(--ow2-muted);font-size:14px;font-weight:600}.hp-bubbles{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.hp-bubble{background:#d6ecfb;border-radius:20px 20px 6px;flex-direction:column;align-self:flex-end;gap:2px;max-width:80%;padding:10px 16px;display:flex}.hp-bubble__body{overflow-wrap:anywhere;font-size:16px;font-weight:700}.hp-bubble__meta{color:var(--ow2-muted);font-size:12px;font-weight:600}.hp-unread{color:#8a5a00;font-weight:800}.hp-read{color:#1d7a4b;font-weight:800}.hp-history__empty{color:var(--ow2-muted);margin:0;font-size:14px;font-weight:600}.hp-phrases,.hp-stickers,.hp-actions{flex-wrap:wrap;gap:8px;display:flex}.hp-phrase{min-height:44px;color:var(--ow2-ink);font:800 15px var(--ow2-font-body);cursor:pointer;background:#fff;border:2px solid #9fb6c7;border-radius:22px;padding:0 16px}.hp-composer{border:2px solid #9fb6c7;border-radius:20px;align-items:center;gap:10px;padding:6px 6px 6px 18px;display:flex}.hp-composer__input{min-width:0;min-height:44px;color:var(--ow2-ink);font:600 16px var(--ow2-font-body);background:0 0;border:0;flex:1}.hp-composer__input:focus-visible{outline-offset:6px}.hp-count{color:var(--ow2-muted);white-space:nowrap;font-size:13px;font-weight:700}.hp-count--over{color:#c7352d}.hp-send{background:var(--ow2-sun);min-height:44px;color:var(--ow2-ink);font:800 16px var(--ow2-font-body);cursor:pointer;border:0;border-radius:16px;padding:0 22px}.hp-send:disabled,.hp-phrase:disabled,.hp-sticker:disabled,.hp-done:disabled{opacity:.55;cursor:not-allowed}.hp-sticker{cursor:pointer;background:#fff;border:2px solid #9fb6c7;border-radius:16px;min-width:52px;min-height:44px;font-size:24px}.hp-done{min-height:44px;color:var(--ow2-ink);font:800 16px var(--ow2-font-body);cursor:pointer;background:#d3f3e1;border:0;border-radius:16px;padding:0 20px}.hp-chime{min-height:44px;color:var(--ow2-ink);align-items:center;gap:10px;font-size:15px;font-weight:700;display:flex}.hp-chime label{cursor:pointer}.hp-chime input{appearance:none;cursor:pointer;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='1' y='1' width='22' height='22' rx='5' fill='%23fff' stroke='%2317304f' stroke-width='2'/%3E%3C/svg%3E") 50%/24px 24px no-repeat;border-radius:12px;flex-shrink:0;width:44px;height:44px;margin:0 -10px}.hp-chime input:checked{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='1' y='1' width='22' height='22' rx='5' fill='%230f6fb0' stroke='%230f6fb0' stroke-width='2'/%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%23fff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.hp-chime input:focus-visible{outline-offset:-6px}@media (forced-colors:active){.hp-chime input{appearance:auto;-webkit-appearance:checkbox;background:0 0;width:24px;height:24px;margin:10px 0}}.hp-chime__hint{color:var(--ow2-muted);font-size:13px;font-weight:600;display:block}.op{max-width:960px}.op-card{background:#fff;border:1px solid #dce6f0;border-radius:24px;flex-direction:column;gap:14px;min-width:0;padding:22px;display:flex}.op-card__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 16px;display:flex}.op-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:0;display:grid}.op-stat{background:var(--ow2-sky);border-radius:16px;flex-direction:column-reverse;gap:2px;padding:12px 14px;display:flex}.op-stat dt{color:var(--ow2-muted);font-size:14px;font-weight:800}.op-stat dd{font-family:var(--ow2-font-heading);margin:0;font-size:30px;font-weight:800;line-height:1.1}.op-db{flex-direction:column;gap:6px;display:flex}.op-db p{margin:0}.op-db__title{font-size:16px;font-weight:800}.op-db__text{font-family:var(--ow2-font-heading);font-size:22px;font-weight:800}.op-db__unknown{color:var(--ow2-muted);font-size:18px;font-weight:800}.op-db__limit{color:var(--ow2-muted);font-size:14px;font-weight:600}.op-bar{background:#e6edf4;border-radius:999px;height:18px;overflow:hidden}.op-bar__fill{background:var(--ow2-leaf);border-radius:999px;height:100%;display:block}.op-bar[data-level=warn] .op-bar__fill{background:var(--ow2-sun)}.op-bar[data-level=danger] .op-bar__fill{background:var(--ow2-berry)}.op-db__level{font-size:15px;font-weight:800}.op-db__level--ok{color:var(--ow2-leaf)}.op-db__level--warn{color:#8a5a00}.op-db__level--danger{color:var(--ow2-berry)}.op-table{min-width:620px}.op-message{overflow-wrap:anywhere;min-width:220px}.op-page{overflow-wrap:anywhere;color:var(--ow2-muted)}.ov{flex-direction:column;gap:22px;display:flex}.ov-loading{color:var(--ow2-muted);margin:0;font-size:16px;font-weight:700}.ov-head{flex-direction:column;gap:2px;display:flex}.ov-head h1{margin:0}.ov-head__sub{color:var(--ow2-muted);margin:0;font-size:15px;font-weight:700}.ov-alerts{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;display:grid}.ov-alert{min-height:44px;color:var(--ow2-ink);background:#fff;border:1px solid #dce6f0;border-radius:20px;flex-direction:column;gap:4px;padding:16px 18px;text-decoration:none;display:flex}.ov-alert--urgent{border:2px solid var(--ow2-berry);background:#fdedeb}.ov-alert--warn{background:var(--ow2-sand);border-color:#e8ddb8}.ov-alert__count{font-family:var(--ow2-font-heading);font-size:34px;font-weight:800;line-height:1}.ov-alert--urgent .ov-alert__count{color:var(--ow2-berry)}.ov-alert__label{font-size:16px;font-weight:800}.ov-alert__action{color:var(--ow2-sea);font-size:14px;font-weight:700}.ov-alert:focus-visible,.ov-person:focus-visible,.ov-link:focus-visible,.ov-button:focus-visible{outline:3px solid var(--ow2-sea);outline-offset:2px}.ov-stats{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;display:grid}.ov-stat{background:#fff;border:1px solid #dce6f0;border-radius:20px;padding:16px 18px}.ov-stat__label{color:var(--ow2-muted);font-size:14px;font-weight:700}.ov-stat__value{font-family:var(--ow2-font-heading);font-size:32px;font-weight:800;line-height:1.2}.ov-stat__unit,.ov-stat__note{color:var(--ow2-muted);font-size:18px}.ov-stat__note--up{color:var(--ow2-leaf)}.ov-stat__note--down{color:var(--ow2-berry)}.ov-columns{flex-wrap:wrap;align-items:stretch;gap:18px;display:flex}.ov-column{flex-direction:column;gap:18px;min-width:0;display:flex}.ov-column--wide{flex:2 440px}.ov-column--narrow{flex:320px}.ov-card{background:#fff;border:1px solid #dce6f0;border-radius:24px;flex-direction:column;gap:14px;padding:22px;display:flex}.ov-card h2{font-family:var(--ow2-font-heading);margin:0;font-size:22px;font-weight:800;line-height:1.1}.ov-card__head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.ov-card__note{color:var(--ow2-muted);font-size:14px;font-weight:700}.ov-link{min-height:44px;color:var(--ow2-sea);align-items:center;font-size:15px;font-weight:800;display:inline-flex}.ov-chart{max-width:100%;height:auto;display:block}.ov-chart text{font-family:var(--ow2-font-body)}.ov-chart__axis{stroke:#9fb6c7;stroke-width:1.5px}.ov-chart__grid{stroke:#e1e9f1;stroke-width:1px}.ov-chart__tick,.ov-chart__day{fill:var(--ow2-muted);font-size:13px;font-weight:700}.ov-chart__value{fill:var(--ow2-ink);font-size:13px;font-weight:800}.ov-chart__bar{fill:var(--ow2-sea)}.ov-chart__bar--today{fill:#cfe4f5;stroke:var(--ow2-sea);stroke-width:2px;stroke-dasharray:5 4}.ov-skills{flex-direction:column;gap:14px;display:flex}.ov-skill{align-items:center;gap:12px;font-size:16px;font-weight:800;display:flex}.ov-skill__name{flex:0 0 56px}.ov-skill__track{background:#e1e9f1;border-radius:9px;flex:1;height:18px;overflow:hidden}.ov-skill__fill{height:18px;display:block}.ov-skill__fill--listening{background:var(--ow2-sea)}.ov-skill__fill--speaking{background:var(--ow2-orange)}.ov-skill__fill--reading{background:var(--ow2-grape)}.ov-skill__fill--writing{background:var(--ow2-leaf)}.ov-skill__value{text-align:right;flex:0 0 44px}.ov-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.ov-person{min-height:56px;color:var(--ow2-ink);border-radius:18px;align-items:center;gap:12px;padding:6px 12px;text-decoration:none;display:flex}.ov-person--urgent{background:#fdedeb}.ov-person--warn{background:var(--ow2-sand)}.ov-person--plain{background:#f3f7fb;min-height:48px;padding:4px 12px}.ov-avatar{width:44px;height:44px;font-family:var(--ow2-font-heading);border-radius:22px;flex:0 0 44px;justify-content:center;align-items:center;font-size:22px;font-weight:800;display:inline-flex}.ov-person__text{flex-direction:column;gap:2px;min-width:0;display:flex}.ov-person__name{overflow-wrap:anywhere;font-size:16px;font-weight:800}.ov-person__detail{color:var(--ow2-muted);font-size:14px;font-weight:600}.ov-empty{color:var(--ow2-muted);margin:0;font-size:15px;font-weight:700}.ov-error,.ov-stale{background:var(--ow2-sand);border:1px solid #e8ddb8;border-radius:20px;flex-direction:column;align-items:flex-start;gap:10px;padding:18px 20px;font-size:16px;font-weight:700;display:flex}.ov-error p{margin:0}.ov-error__title{font-family:var(--ow2-font-heading);margin:0;font-size:24px;font-weight:800;line-height:1.1}.ov-stale{flex-flow:wrap;align-items:center;margin:0}.ov-button{border:2px solid var(--ow2-ink);min-height:44px;color:var(--ow2-ink);font:800 15px var(--ow2-font-body);cursor:pointer;background:#fff;border-radius:14px;padding:0 20px}.ov-button:disabled{cursor:progress;opacity:.6}.ps{flex-direction:column;gap:18px;min-width:0;display:flex}.ps-card{background:#fff;border:1px solid #dce6f0;border-radius:24px;flex-direction:column;gap:16px;max-width:720px;padding:22px;display:flex}.ps-card__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 16px;display:flex}.ps-current{color:var(--ow2-muted);margin:0;font-size:15px;font-weight:800}.ps-field{flex-direction:column;gap:6px;display:flex}.ps-field__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;display:flex}.ps-field__head label{font-size:16px;font-weight:800}.ps-value{background:var(--ow2-sky);min-width:4.5em;color:var(--ow2-ink);font-family:var(--ow2-font-heading);text-align:center;border-radius:999px;padding:2px 12px;font-size:18px;font-weight:800}.ps-range{width:100%;min-height:44px;accent-color:var(--ow2-sea);cursor:pointer;margin:0}.ps-range:focus-visible{outline:3px solid var(--ow2-sea);outline-offset:2px;border-radius:8px}.ps-range:disabled{cursor:not-allowed;opacity:.55}.ps-hint{color:var(--ow2-muted);margin:0;font-size:14px;font-weight:600}.ps-next{background:var(--ow2-sand);border-radius:14px;margin:0;padding:10px 14px;font-size:15px;font-weight:800}.ps-history{flex-direction:column;gap:10px;min-width:0;max-width:920px;display:flex}.ps-table{min-width:620px}.ps-why{overflow-wrap:anywhere;min-width:200px}.ps-badge{color:var(--ow2-muted);background:#eef3f8;border-radius:999px;padding:2px 10px;font-size:13px;font-weight:800;display:inline-block}.ps-badge--active{color:var(--ow2-leaf);background:#e7f6ee}.sd{flex-direction:column;gap:18px;min-width:0;display:flex}.sd h1{font-family:var(--ow2-font-heading);overflow-wrap:anywhere;margin:0;font-size:32px;font-weight:800;line-height:1.1}.sd-crumbs{color:var(--ow2-muted);flex-wrap:wrap;align-items:center;gap:4px;font-size:15px;font-weight:700;display:flex}.sd-link{min-height:44px;color:var(--ow2-sea);align-items:center;font-weight:800;display:inline-flex}.sd-link:focus-visible{outline:3px solid var(--ow2-sea);outline-offset:2px}.sd-head{background:#fff;border:1px solid #dce6f0;border-radius:24px;flex-wrap:wrap;align-items:center;gap:16px;padding:20px 22px;display:flex}.sd-avatar{width:72px;height:72px;font-family:var(--ow2-font-heading);border-radius:36px;flex:0 0 72px;justify-content:center;align-items:center;font-size:38px;font-weight:800;display:inline-flex}.sd-head__main{flex-direction:column;flex:260px;gap:4px;min-width:0;display:flex}.sd-head__meta{color:var(--ow2-muted);overflow-wrap:anywhere;margin:0;font-size:15px;font-weight:700}.sd-actions{flex-wrap:wrap;gap:10px;display:flex}.sd-btn--sun{border-color:var(--ow2-sun);background:var(--ow2-sun)}.sd-facts{background:#fff;border:1px solid #dce6f0;border-radius:20px;flex-wrap:wrap;align-items:baseline;gap:8px 14px;padding:14px 22px;display:flex}.sd-facts__label{color:var(--ow2-muted);font-size:14px;font-weight:700}.sd-facts__value{font-family:var(--ow2-font-heading);font-size:22px;font-weight:800}.sd-columns{flex-wrap:wrap;align-items:flex-start;gap:18px;display:flex}.sd-column{flex-direction:column;gap:18px;min-width:0;display:flex}.sd-column--wide{flex:2 440px;min-width:0}.sd-column--narrow{flex:300px;min-width:0}.sd-card{background:#fff;border:1px solid #dce6f0;border-radius:24px;flex-direction:column;gap:14px;min-width:0;padding:22px;display:flex}.sd-card h2{font-family:var(--ow2-font-heading);margin:0;font-size:22px;font-weight:800;line-height:1.1}.sd-card__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.sd-card__note,.sd-hint,.sd-empty,.sd-sub,.sd-muted{color:var(--ow2-muted)}.sd-card__note{font-size:14px;font-weight:700}.sd-hint,.sd-empty{margin:0;font-size:14px;font-weight:700}.sd-empty{font-size:15px}.sd-weekly{align-self:stretch}.sd-tablewrap{overflow-x:auto}.sd-tablewrap:focus-visible{outline:3px solid var(--ow2-sea);outline-offset:2px}.sd-table{border-collapse:collapse;width:100%;min-width:360px;font-size:15px}.sd-table th,.sd-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #e1e9f1;padding:10px 6px;font-weight:700}.sd-table thead th{color:var(--ow2-muted);white-space:nowrap;border-bottom:2px solid #e1e9f1;font-size:13px;font-weight:800}.sd-table tbody tr:last-child th,.sd-table tbody tr:last-child td{border-bottom:0}.sd-table .sd-num{text-align:right;font-variant-numeric:tabular-nums}.sd-word{overflow-wrap:anywhere;display:block}.sd-sub{font-size:13px;font-weight:600;display:block}.sd-muted{overflow-wrap:anywhere;font-weight:600}.sd-box{gap:3px;display:inline-flex}.sd-box__cell{background:#e1e9f1;border-radius:4px;width:14px;height:8px;display:block}.sd-box__cell--low{background:var(--ow2-berry)}.sd-box__cell--mid{background:var(--ow2-orange)}.sd-box__cell--high{background:var(--ow2-leaf)}.sd-speech{background:#f3f7fb;border-radius:16px;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.sd-speech__line{overflow-wrap:anywhere}.sd-speech__line--target,.sd-speech__line--at{color:var(--ow2-muted);font-size:13px;font-weight:700}.sd-speech__line--heard{font-size:16px;font-weight:800}.sd-diff{border-bottom:3px solid var(--ow2-berry)}.wk-head{align-items:flex-end}.wk-controls{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.wk-week select{min-width:200px;min-height:48px;color:var(--ow2-ink);font:700 16px var(--ow2-font-body);background:#fff;border:2px solid #9fb6c7;border-radius:14px;padding:0 14px}.wk-week select:focus-visible{outline:3px solid var(--ow2-sea);outline-offset:2px;border-color:var(--ow2-sea)}.wk-empty{background:#fff;border:1px solid #dce6f0;border-radius:24px;flex-direction:column;align-items:flex-start;gap:10px;padding:24px;display:flex}.wk-empty__title{font-family:var(--ow2-font-heading);margin:0;font-size:24px;font-weight:800;line-height:1.15}.wk-empty__body{max-width:52ch;color:var(--ow2-muted);margin:0 0 6px;font-size:16px;font-weight:700;line-height:1.45}.wk-table{min-width:880px}.wk-table td:first-child{min-width:120px}.wk-table .st-num,.wk-table .st-name{overflow-wrap:normal;white-space:nowrap}.wk-message{min-width:200px;max-width:32ch}.wk-ai{color:var(--ow2-muted);margin-top:4px;font-size:13px;font-weight:600;display:block}.wk-link{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.wk-link__row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.wk-expiry{color:var(--ow2-muted);font-size:13px;font-weight:700}.wk-field{width:100%;min-height:48px;color:var(--ow2-ink);font:600 15px var(--ow2-font-body);background:#f3f7fb;border:2px solid #9fb6c7;border-radius:14px;padding:0 14px}.wk-field:focus-visible{outline:3px solid var(--ow2-sea);outline-offset:2px;border-color:var(--ow2-sea)}@media print{.admin-nav,.admin-top,.admin-skip,.wk-noprint{display:none!important}body,.admin-shell{background:#fff}.admin-shell{display:block}.admin-shell[data-layout=tabbar] .admin-body{padding-bottom:0}.admin-main,.admin-shell[data-layout=tabbar] .admin-main{padding:0}.wk,.wk *{visibility:visible}.wk-tablewrap{background:#fff;border:0;border-radius:0;overflow:visible}.wk-table{width:100%;min-width:0;font-size:12px}.wk-table th{color:#000;background:#fff;border-bottom:2px solid #000}.wk-table th,.wk-table td{padding:6px 8px}.wk-table td{border-bottom:1px solid #999}.wk-table tr{break-inside:avoid}.wk-table thead{display:table-header-group}.wk-message{max-width:none}}.pr-page{min-height:100dvh;padding:24px 20px calc(32px + env(safe-area-inset-bottom));background:var(--ow2-sky);color:var(--ow2-ink);font-family:var(--ow2-font-body)}.pr{flex-direction:column;gap:16px;max-width:520px;margin:0 auto;display:flex}.pr--centered{text-align:center;background:#fff;border-radius:28px;gap:10px;padding:28px 24px}.pr--centered h1{font-family:var(--ow2-font-heading);margin:0;font-size:30px;font-weight:800;line-height:1.1}.pr--centered p{margin:0;font-size:17px;font-weight:600;line-height:1.5}.pr-loading{color:var(--ow2-muted);text-align:center;margin:0;padding:24px 0;font-size:17px;font-weight:700}.pr-head{align-items:center;gap:12px;display:flex}.pr-avatar{background:var(--ow2-sun);width:56px;height:56px;font-family:var(--ow2-font-heading);border-radius:28px;flex:0 0 56px;justify-content:center;align-items:center;font-size:30px;font-weight:800;display:inline-flex}.pr-head__text{min-width:0}.pr-eyebrow{color:var(--ow2-sea);letter-spacing:1.5px;margin:0;font-size:13px;font-weight:800}.pr-head h1{font-family:var(--ow2-font-heading);overflow-wrap:anywhere;margin:0;font-size:30px;font-weight:800;line-height:1.05}.pr-card{background:#fff;border-radius:28px;flex-direction:column;gap:12px;padding:20px;display:flex}.pr-card--family{border:3px solid var(--ow2-sun);background:var(--ow2-sand)}.pr-h2{font-family:var(--ow2-font-heading);margin:0;font-size:22px;font-weight:800;line-height:1}.pr-tiles{gap:10px;display:flex}.pr-tile{background:var(--ow2-sand);text-align:center;border-radius:20px;flex:1;padding:12px 8px}.pr-tile__value{font-family:var(--ow2-font-heading);margin:0;font-size:32px;font-weight:800;line-height:1}.pr-tile__label{color:var(--ow2-muted);margin:4px 0 0;font-size:14px;font-weight:700}.pr-text{white-space:pre-line;overflow-wrap:anywhere;margin:0;font-size:16px;font-weight:600;line-height:1.5}.pr-big{font-family:var(--ow2-font-heading);color:var(--ow2-sea);margin:0;font-size:48px;font-weight:800;line-height:1}.pr-skill{flex-direction:column;gap:6px;display:flex}.pr-skill__line{justify-content:space-between;font-size:16px;font-weight:800;display:flex}.pr-bar{border-radius:8px;height:16px;overflow:hidden}.pr-bar__fill{height:16px}.pr-note{color:var(--ow2-muted);margin:0;font-size:14px;font-weight:600;line-height:1.4}.pr-chips{flex-wrap:wrap;gap:8px;margin:0 0 6px;padding:0;list-style:none;display:flex}.pr-chip{overflow-wrap:anywhere;border-radius:16px;padding:6px 14px;font-size:15px;font-weight:800}.pr-chip--strong{background:#d3f3e1}.pr-chip--weak{background:#ffe3d1}.pr-footnote{color:var(--ow2-muted);text-align:center;margin:0;font-size:13px;font-weight:600;line-height:1.5}.pr-print{border:2px solid var(--ow2-ink);min-height:44px;color:var(--ow2-ink);font:800 15px var(--ow2-font-body);cursor:pointer;background:#fff;border-radius:14px;align-self:center;padding:0 22px}.pr-print:focus-visible{outline:3px solid var(--ow2-sea);outline-offset:2px}@media print{.pr-noprint{display:none!important}.pr-page,.pr-page *{visibility:visible}.pr-page{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fff;min-height:0;padding:0}.pr-card{break-inside:avoid;border:1px solid #c9d6e4}.pr-card--family{border:2px solid var(--ow2-sun)}}
