:root{--cloud-ink:#203f58;--cloud-text:#273c4e;--cloud-muted:#6c7c89;--cloud-line:#dce4e9;--cloud-bg:#f4f7f9;--cloud-blue:#316681;--cloud-wash:#eaf1f5;--cloud-green:#427462;--cloud-error:#8b3d38;--cloud-white:#fff}
*{box-sizing:border-box}.login-page{margin:0;min-height:100vh;background:var(--cloud-bg);color:var(--cloud-text);font-family:'Avenir Next',Avenir,'Segoe UI',sans-serif}.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(360px,1.05fr) minmax(400px,.95fr)}.login-place{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:54px clamp(34px,6vw,86px);background:var(--cloud-ink);color:white}.login-brand{display:flex;align-items:center;gap:13px;font-size:22px;font-weight:650;letter-spacing:-.6px}.login-brand svg{width:31px;height:31px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.place-drawing{position:absolute;inset:17% -5% auto 18%;opacity:.14}.place-drawing svg{width:100%;fill:none;stroke:#fff;stroke-width:2}.login-place h1{max-width:620px;margin:0;font-size:clamp(34px,4.6vw,68px);line-height:1.04;letter-spacing:-2.6px;font-weight:520}.login-place p{max-width:560px;margin:24px 0 0;color:#cfdae1;font-size:17px;line-height:1.7}.login-card{align-self:center;width:min(460px,calc(100% - 56px));margin:auto;padding:46px 48px;background:white;border:1px solid var(--cloud-line);border-radius:12px;box-shadow:0 18px 55px #203f5814}.login-location{margin:0 0 24px;color:var(--cloud-blue);font-size:var(--font-caption, 12px);font-weight:650}.login-card h2{margin:0;font-size:30px;line-height:1.2;letter-spacing:-.7px;color:var(--cloud-ink);font-weight:600}.login-help{margin:12px 0 30px;color:var(--cloud-muted);line-height:1.6}.login-card form label{display:block;margin:20px 0 0;font-size:13px;font-weight:600}.login-card input{display:block;width:100%;margin-top:8px;padding:13px 14px;border:1px solid #c9d5dc;border-radius:7px;background:#fff;color:var(--cloud-text);font:inherit}.login-card input:focus{outline:3px solid #9bbdce;outline-offset:2px;border-color:var(--cloud-blue)}.login-card form button{width:100%;margin-top:26px;padding:14px;border:0;border-radius:7px;background:var(--cloud-ink);color:#fff;font:600 14px inherit;cursor:pointer}.login-card form button:hover{background:#2b536f}.login-card form button:disabled{opacity:.55;cursor:wait}.login-error{min-height:20px;margin:15px 0 -8px;color:var(--cloud-error);font-size:13px;line-height:1.5}.password-note,.login-support{color:var(--cloud-muted);font-size:var(--font-caption, 12px);line-height:1.6}.password-note{margin:9px 0 0}.login-support{margin:34px 0 0;padding-top:24px;border-top:1px solid var(--cloud-line)}
.cloud-dot{display:inline-block;width:8px;height:8px;margin-right:7px;border-radius:50%;background:#4d846f;box-shadow:0 0 0 3px #e0eee8}.cloud-identity{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:var(--font-caption, 12px)}.cloud-logout{font-size:var(--font-caption, 12px);white-space:nowrap}.cloud-notice{position:fixed;z-index:1000;right:24px;bottom:24px;display:flex;align-items:center;gap:16px;max-width:560px;padding:15px 17px;border:1px solid #c8d5dd;border-left:4px solid var(--cloud-blue);border-radius:8px;background:#fff;box-shadow:0 10px 36px #203f5825;font-size:13px;line-height:1.5}.cloud-notice.error{border-left-color:var(--cloud-error)}.cloud-notice.ready{border-left-color:var(--cloud-green)}.cloud-notice .btn{flex:none}.cloud-access>.panelhead{align-items:flex-start}.cloud-invite{display:grid;grid-template-columns:1fr 1.25fr .8fr auto;gap:14px;align-items:end;margin-top:22px;padding:20px;background:var(--wash)}.cloud-invite .field{margin:0}.cloud-invite .btn{margin-bottom:1px;white-space:nowrap}.cloud-invite .form-error{grid-column:1/-1;margin:0}.cloud-link{margin:18px 0;padding:18px;border-left:3px solid var(--cloud-green);background:#f0f7f4}.cloud-link input{width:min(100%,620px);margin:6px 10px 0 0;padding:10px;border:1px solid var(--line);border-radius:5px}.cloud-users{border-top:1px solid var(--line)}.cloud-users>div{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 0;border-bottom:1px solid var(--line)}.cloud-users strong,.cloud-users small{display:block}.cloud-users small{margin-top:4px;color:var(--muted);font-size:11px}
@media(max-width:850px){.login-shell{grid-template-columns:1fr}.login-place{min-height:300px;padding:34px}.place-drawing{inset:5% -20% auto 42%}.login-place h1{max-width:620px;font-size:40px;letter-spacing:-1.5px}.login-place p{font-size:15px}.login-card{margin:34px auto}.cloud-invite{grid-template-columns:1fr 1fr}.cloud-invite .btn{width:max-content}}@media(max-width:600px){.login-place{min-height:260px}.login-place h1{font-size:32px}.login-place p{margin-top:14px}.login-card{width:calc(100% - 28px);padding:32px 24px}.cloud-notice{left:12px;right:12px;bottom:12px;align-items:flex-start;flex-direction:column}.cloud-invite{grid-template-columns:1fr;padding:16px}.cloud-identity{display:none}.tools{gap:8px!important}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.api-usage .panelhead{gap:20px;flex-wrap:wrap}.usage-controls{display:flex;align-items:end;gap:12px}.usage-controls label{display:grid;gap:5px;font-size:var(--font-caption, 12px)}.usage-controls select{padding:9px;border:1px solid var(--line);border-radius:5px;background:white;color:inherit}.usage-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:2px solid var(--cloud-ink);border-bottom:1px solid var(--line);margin-bottom:18px}.usage-summary>div{padding:20px 14px;border-right:1px solid var(--line)}.usage-summary span{display:block;color:var(--muted);font-size:var(--font-caption, 12px)}.usage-summary strong{display:block;font-size:24px;font-weight:600;margin-top:8px;font-variant-numeric:tabular-nums}.usage-table{overflow-x:auto;margin-bottom:28px}.usage-table table{width:100%;font-size:var(--font-caption, 12px);border-collapse:collapse}.usage-table th,.usage-table td{padding:11px 9px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.usage-table th:first-child{text-align:left;white-space:normal;min-width:160px}.usage-table small{display:block;font-weight:400;color:var(--muted);margin-top:4px}.usage-warning{padding:12px 16px;background:#fff6e5;border-left:3px solid #ad751d;line-height:1.6}.usage-categories{margin-bottom:26px}.usage-categories>div{display:grid;grid-template-columns:1fr auto auto;gap:20px;padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.api-usage h3{margin-top:26px}@media(max-width:850px){.usage-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.usage-summary strong{font-size:20px}.usage-categories>div{grid-template-columns:1fr auto}.usage-categories>div>span:last-child{grid-column:1/-1}.usage-controls{flex-wrap:wrap}}

/* Analytics shares Rheinsteig's Avenir typography and blue/green work-area palette. */
.analytics-panel .panelhead{align-items:flex-start;gap:20px;flex-wrap:wrap}
.analytics-panel .panelhead h2{margin-bottom:6px}
.analytics-panel .panelhead p{margin:0}
.analytics-panel .usage-controls{display:flex;gap:12px;align-items:end;flex-wrap:wrap}
.analytics-panel label{display:grid;gap:6px;font-size:var(--font-caption, 12px);color:var(--muted)}
.analytics-panel select{min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--text);max-width:100%}
.analytics-panel .usage-summary{margin:0 0 20px}
.analytics-timeline,.analytics-activity{margin-top:32px;padding-top:28px;border-top:1px solid var(--line)}
.analytics-section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.analytics-section-head h2,.analytics-activity h2{margin:0 0 6px;font-size:20px;color:var(--ink)}
.analytics-section-head p{margin:0}
.analytics-chart{margin:24px 0 12px;padding:20px 24px 14px;border:1px solid #e7edf1;border-radius:14px;background:linear-gradient(180deg,#fbfcfd 0%,#fff 65%)}
.analytics-chart figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:8px 24px;flex-wrap:wrap;font-size:13px;margin-bottom:8px}
.analytics-chart figcaption strong{font-weight:500;color:#344f62}
.analytics-chart figcaption span{font-size:var(--font-caption, 12px);font-weight:400;color:#617582;line-height:1.6}
.analytics-chart-scroll{overflow-x:auto;padding-top:4px}
/* Charts must not inherit the outline intended for navigation icons. */
.analytics-chart svg{display:block;width:100%;max-width:1100px;min-width:560px;height:auto;margin:0 auto;stroke:none;stroke-width:0;fill:none}
.analytics-chart text{fill:#617582;stroke:none;font-size:10px;font-weight:400;font-family:inherit;font-variant-numeric:tabular-nums;letter-spacing:.1px}
.analytics-grid{stroke:#e6edf1;stroke-width:1;vector-effect:non-scaling-stroke;stroke-dasharray:3 5}
.analytics-bar{fill:#6694af;stroke:none;transition:fill .15s ease}.analytics-bar.activity-bar{fill:#70a598}
.analytics-bar:hover{fill:#386b8a}.analytics-bar.activity-bar:hover{fill:#42796b}
.analytics-chart>p.subtle{font-size:var(--font-caption, 12px);line-height:1.6;color:#617582;margin:8px 0 0}
.analytics-details{border-top:1px solid var(--line);margin-top:18px;padding:14px 0}
.analytics-details summary{cursor:pointer;min-height:32px;font-weight:600;color:var(--ink)}
.analytics-details summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.analytics-historical{margin:20px 0;padding:16px 20px;background:var(--wash);border-left:3px solid var(--blue)}
.analytics-historical p{margin:8px 0 0;font-size:13px}
.analytics-areas{display:grid;gap:16px;margin:20px 0}
.analytics-areas>div{display:grid;grid-template-columns:150px 1fr 48px;align-items:center;gap:16px;font-size:13px}
.analytics-areas strong{text-align:right;font-variant-numeric:tabular-nums}
.analytics-areas meter{width:100%;height:8px;accent-color:#70a598}
.analytics-empty{padding:26px 20px;background:var(--wash);color:var(--muted);border-radius:8px}
.analytics-panel .usage-table{max-width:100%;overflow:auto}
.analytics-panel .usage-table table{width:100%}
.analytics-panel .usage-table td{font-variant-numeric:tabular-nums;white-space:nowrap}
@media(max-width:650px){.analytics-panel .panelbody{padding:18px}.analytics-panel .usage-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.analytics-panel .usage-summary strong{font-size:20px;overflow-wrap:anywhere}.analytics-areas>div{grid-template-columns:110px 1fr 35px;gap:8px}.analytics-panel .usage-controls{width:100%}.analytics-panel .panelhead{padding:18px}.analytics-chart figcaption{display:grid}}
.analytics-areas meter::-webkit-meter-bar{background:var(--wash);border:0;border-radius:4px}
.analytics-areas meter::-webkit-meter-optimum-value{background:#70a598;border-radius:4px}
.analytics-areas meter::-moz-meter-bar{background:#70a598;border-radius:4px}
.analytics-panel .usage-table tbody th{font-weight:400;font-variant-numeric:tabular-nums}
@media(max-width:650px){.analytics-chart{padding:16px 12px 12px;border-radius:10px}.analytics-chart figcaption{gap:4px}}
.analytics-mobile-hint{display:none}
@media(max-width:760px){.workspace-shell .sidebar .nav:has([data-page="analytics"]){grid-template-columns:repeat(6,minmax(0,1fr))}.analytics-mobile-hint{display:block}}

/* Notices occupy layout space instead of covering actions. */
.cloud-notice{position:relative;inset:auto;z-index:auto;max-width:none;margin:0 0 16px;flex-wrap:wrap;box-shadow:none}.cloud-notice>span{flex:1;min-width:180px}.cloud-invite h3,.cloud-invite>.subtle{grid-column:1/-1}.cloud-users>div{flex-wrap:wrap}.cloud-users>div>span{flex:1;min-width:200px}
:root { --cloud-muted: #596b78; }
.login-support,.password-note { font-size:var(--font-small, 14px); }
