@font-face { font-family:"Ubuntu"; src:url("../assets/fonts/Ubuntu-Light.ttf") format("truetype"); font-style:normal; font-weight:300; font-display:swap; }
@font-face { font-family:"Ubuntu"; src:url("../assets/fonts/Ubuntu-Regular.ttf") format("truetype"); font-style:normal; font-weight:400; font-display:swap; }
@font-face { font-family:"Ubuntu"; src:url("../assets/fonts/Ubuntu-Medium.ttf") format("truetype"); font-style:normal; font-weight:500 600; font-display:swap; }
@font-face { font-family:"Ubuntu"; src:url("../assets/fonts/Ubuntu-Bold.ttf") format("truetype"); font-style:normal; font-weight:700; font-display:swap; }
@font-face { font-family:"Ubuntu"; src:url("../assets/fonts/Ubuntu-LightItalic.ttf") format("truetype"); font-style:italic; font-weight:300; font-display:swap; }
@font-face { font-family:"Ubuntu"; src:url("../assets/fonts/Ubuntu-Italic.ttf") format("truetype"); font-style:italic; font-weight:400; font-display:swap; }
@font-face { font-family:"Ubuntu"; src:url("../assets/fonts/Ubuntu-MediumItalic.ttf") format("truetype"); font-style:italic; font-weight:500 600; font-display:swap; }
@font-face { font-family:"Ubuntu"; src:url("../assets/fonts/Ubuntu-BoldItalic.ttf") format("truetype"); font-style:italic; font-weight:700; font-display:swap; }
@font-face { font-family:"Cabin"; src:url("../assets/fonts/Cabin-Variable.ttf") format("truetype"); font-style:normal; font-weight:400 700; font-display:swap; }
@font-face { font-family:"Cabin"; src:url("../assets/fonts/Cabin-Italic-Variable.ttf") format("truetype"); font-style:italic; font-weight:400 700; font-display:swap; }
@font-face { font-family:"Google Sans Flex"; src:url("../assets/fonts/GoogleSansFlex-Variable.ttf") format("truetype"); font-style:normal; font-weight:100 1000; font-display:swap; }
@font-face { font-family:"Onest"; src:url("../assets/fonts/Onest-Variable.ttf") format("truetype"); font-style:normal; font-weight:100 900; font-display:swap; }
@font-face { font-family:"Public Sans"; src:url("../assets/fonts/PublicSans-Variable.ttf") format("truetype"); font-style:normal; font-weight:100 900; font-display:swap; }
@font-face { font-family:"Public Sans"; src:url("../assets/fonts/PublicSans-Italic-Variable.ttf") format("truetype"); font-style:italic; font-weight:100 900; font-display:swap; }
@font-face { font-family:"Rubik"; src:url("../assets/fonts/Rubik-Variable.ttf") format("truetype"); font-style:normal; font-weight:300 900; font-display:swap; }
@font-face { font-family:"Rubik"; src:url("../assets/fonts/Rubik-Italic-Variable.ttf") format("truetype"); font-style:italic; font-weight:300 900; font-display:swap; }
@font-face { font-family:"Vision"; src:url("../assets/fonts/Vision-Light.otf") format("opentype"); font-style:normal; font-weight:300; font-display:swap; }
@font-face { font-family:"Vision"; src:url("../assets/fonts/Vision-Regular.otf") format("opentype"); font-style:normal; font-weight:400 500; font-display:swap; }
@font-face { font-family:"Vision"; src:url("../assets/fonts/Vision-Bold.otf") format("opentype"); font-style:normal; font-weight:600 700; font-display:swap; }
@font-face { font-family:"Vision"; src:url("../assets/fonts/Vision-LightItalic.otf") format("opentype"); font-style:italic; font-weight:300; font-display:swap; }
@font-face { font-family:"Vision"; src:url("../assets/fonts/Vision-Italic.otf") format("opentype"); font-style:italic; font-weight:400 500; font-display:swap; }
@font-face { font-family:"Vision"; src:url("../assets/fonts/Vision-BoldItalic.otf") format("opentype"); font-style:italic; font-weight:600 700; font-display:swap; }
:root { --ink:#18212b; --muted:#677484; --line:#e5e9ee; --canvas:#f6f8fa; --surface:#fff; --accent:#2563eb; --accent-soft:#eaf1ff; --danger:#c43d47; --success:#16835b; --radius:10px; --shadow:0 12px 30px rgba(24,33,43,.10); --app-font-family:"Ubuntu",system-ui,sans-serif; --app-font-size:14px; --app-font-weight:400; font-family:var(--app-font-family); color:var(--ink); background:var(--canvas); }
* { box-sizing:border-box; } body { margin:0; min-width:320px; min-height:100vh; font:var(--app-font-weight) var(--app-font-size)/1.45 inherit; } button,input,select,textarea { font:inherit; } button { cursor:pointer; } button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible { outline:3px solid rgba(37,99,235,.35); outline-offset:2px; } a { color:inherit; text-decoration:none; } h1,h2,h3,p { margin:0; } ul { list-style:none; margin:0; padding:0; } .sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.app-startup { position:fixed; z-index:1000; inset:0; display:grid; align-content:center; justify-items:center; gap:8px; padding:24px; background:#111a23; color:#f4f7fa; text-align:center; }
.app-startup-mark { display:block; width:44px; height:44px; border-radius:12px; object-fit:cover; }
.app-startup strong { font-size:20px; line-height:1.1; }
.app-startup [data-app-startup-copy] { min-width:7ch; max-width:320px; color:#aeb8c2; font-size:12px; font-variant-numeric:tabular-nums; }
.brand { display:inline-flex; align-items:center; gap:9px; color:#fff; font-size:18px; font-weight:700; letter-spacing:-.035em; }.brand-mark { display:block; width:28px; height:28px; flex:0 0 28px; overflow:hidden; border-radius:8px; background:center/cover no-repeat url("../assets/branding/myplaces-logo.png"); color:transparent; font-size:0; }.brand-mark img { display:block; width:100%; height:100%; object-fit:cover; }
.login-page { min-height:100vh; display:grid; place-items:center; padding:24px; background:linear-gradient(135deg,#17212c,#243340); }.login-card { width:min(100%,410px); padding:38px; background:#fff; border-radius:16px; box-shadow:0 24px 80px rgba(0,0,0,.24); }.login-card .brand { color:var(--ink); margin-bottom:34px; }.login-card h1 { font-size:28px; letter-spacing:-.045em; line-height:1.1; }.login-card > p { margin-top:10px; color:var(--muted); }.auth-form { display:grid; gap:14px; margin-top:26px; }.auth-form label { display:grid; gap:6px; color:var(--ink); font-size:12px; font-weight:600; }.auth-form input { height:43px; padding:0 12px; border:1px solid var(--line); border-radius:8px; }.divider { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:12px; margin:22px 0; color:var(--muted); font-size:12px; }.divider::before,.divider::after { content:""; height:1px; background:var(--line); }.form-message { min-height:20px; margin-top:14px!important; color:var(--danger)!important; font-size:12px; }.form-message.success { color:var(--success)!important; }
