:root{--sw-blue:#1961AC;--sw-cyan:#00A7E7;--sw-blue-dark:#124A85;--sw-soft:#EAF3FB;--sw-ink:#17324D;--sw-muted:#64798B;--sw-border:#C9DCEB;--shadow:0 14px 40px rgba(25,97,172,.14);font-family:"Gill Sans SemiBold","Gill Sans","Gill Sans MT",Calibri,"Trebuchet MS",Arial,sans-serif;color:var(--sw-ink);background:#F2F7FB}*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#F7FBFE,#EDF5FA);min-height:100vh;color:var(--sw-ink)}a{color:var(--sw-blue);text-decoration:none}a:hover{text-decoration:underline}.site-header{min-height:72px;padding:12px clamp(18px,4vw,54px);display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fff;border-bottom:1px solid var(--sw-border);box-shadow:0 5px 22px rgba(25,97,172,.08)}.site-brand{display:flex;align-items:center;gap:12px;text-decoration:none}.site-brand img{width:170px;height:auto}.site-brand span{background:var(--sw-soft);color:var(--sw-blue);padding:5px 9px;border-radius:999px;font-size:12px}.header-tools{display:flex;align-items:center;gap:14px;font-size:14px}.header-tools form{margin:0}.header-tools button{font:inherit;border:0;background:none;color:var(--sw-blue);cursor:pointer}.language-switch{display:flex;border:1px solid var(--sw-border);border-radius:8px;overflow:hidden}.language-switch button{padding:5px 7px}.page-shell{width:min(1180px,calc(100% - 32px));margin:38px auto 70px}.auth-shell{min-height:calc(100vh - 150px);display:grid;place-items:center;margin-top:26px}.auth-card{width:min(460px,100%);background:#fff;border:1px solid var(--sw-border);border-top:4px solid var(--sw-cyan);border-radius:18px;padding:30px;box-shadow:var(--shadow)}.auth-card-wide{width:min(760px,100%)}.eyebrow{margin:0 0 7px;color:var(--sw-cyan);font-size:11px;font-weight:800;letter-spacing:.13em}.auth-card h1,.page-heading h1{margin:0;color:var(--sw-blue);font-size:30px}.lead{color:var(--sw-muted);line-height:1.55}.stack-form{display:grid;gap:16px;margin-top:23px}.two-column-form{grid-template-columns:1fr 1fr}.full-row{grid-column:1/-1}.stack-form label{display:grid;gap:7px;font-size:13px;font-weight:700;color:#27475F}.stack-form input,.credit-form input,.credit-form select,.search-form input{width:100%;border:1px solid #BCD2E3;border-radius:9px;padding:11px 12px;font:inherit;color:var(--sw-ink);background:#fff}.stack-form input:focus,.credit-form input:focus,.credit-form select:focus,.search-form input:focus{outline:3px solid rgba(0,167,231,.13);border-color:var(--sw-cyan)}.primary-button,.secondary-button,.search-form button{display:inline-flex;align-items:center;justify-content:center;border-radius:9px;padding:10px 15px;font:inherit;font-weight:700;cursor:pointer}.primary-button{border:1px solid var(--sw-blue);background:var(--sw-blue);color:#fff}.primary-button:hover{background:var(--sw-blue-dark);text-decoration:none}.secondary-button{border:1px solid #AFCBDD;background:#fff;color:var(--sw-blue)}.inline-button{margin-top:15px}.auth-links{display:flex;gap:8px;justify-content:center;margin-top:20px;font-size:13px}.field-error,.form-error{color:#B42318;font-size:12px}.form-error{background:#FEF3F2;border:1px solid #FECDCA;padding:10px;border-radius:8px}.messages{margin-bottom:18px}.message{padding:12px 14px;border-radius:9px;background:#EAF7EF;border:1px solid #90CAA2}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:24px}.panel{background:#fff;border:1px solid var(--sw-border);border-radius:15px;padding:22px;box-shadow:0 7px 24px rgba(25,97,172,.07);margin-bottom:20px}.panel h2,.panel h3{color:var(--sw-blue);margin-top:0}.dashboard-grid{display:grid;grid-template-columns:2fr 1fr;gap:20px}.detail-list{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:0}.detail-list div{padding:10px 0;border-bottom:1px solid #E5EEF4}.detail-list dt{font-size:11px;color:var(--sw-muted);text-transform:uppercase;letter-spacing:.05em}.detail-list dd{margin:4px 0 0;font-weight:700}.detail-list.compact{margin-bottom:20px}.credit-panel{background:linear-gradient(140deg,#1961AC,#00A7E7);color:#fff;border:0}.credit-panel .eyebrow,.credit-panel p,.credit-panel small{color:#fff}.credit-number{font-size:58px;line-height:1;font-weight:800}.chip-list{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:6px 10px;background:var(--sw-soft);border:1px solid var(--sw-border);border-radius:999px;color:var(--sw-blue);font-size:12px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:10px 11px;border-bottom:1px solid #E5EEF4;vertical-align:top}th{color:var(--sw-blue);font-size:11px;text-transform:uppercase;letter-spacing:.05em}.positive{color:#18794E;font-weight:800}.negative{color:#B42318;font-weight:800}.status-pill{display:inline-block;padding:4px 7px;border-radius:999px;background:#EEF4F8;font-size:10px;font-weight:800}.status-ready{background:#EAF7EF;color:#18794E}.status-running,.status-pending{background:#FFF7D6;color:#856404}.status-failed,.status-lambda_error{background:#FEF3F2;color:#B42318}.empty-state{color:var(--sw-muted)}.management-layout{display:grid;grid-template-columns:minmax(280px,360px) 1fr;gap:20px;align-items:start}.search-form{display:flex;gap:8px;margin-bottom:15px}.search-form button{border:1px solid var(--sw-blue);background:var(--sw-blue);color:#fff}.user-list{display:grid;gap:7px;max-height:70vh;overflow:auto}.user-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px;border:1px solid #DCE8F0;border-radius:10px;color:var(--sw-ink);background:#FBFDFE}.user-row:hover{text-decoration:none;background:var(--sw-soft)}.user-row.active{border-color:var(--sw-cyan);box-shadow:inset 3px 0 0 var(--sw-cyan)}.user-row div{min-width:0}.user-row strong,.user-row span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-row span{font-size:11px;color:var(--sw-muted);margin-top:3px}.user-row b{color:var(--sw-blue);white-space:nowrap}.detail-heading{display:flex;justify-content:space-between;gap:20px;margin-bottom:16px}.detail-heading h2{margin-bottom:3px}.detail-heading p{margin:0;color:var(--sw-muted)}.credit-badge{font-size:32px;font-weight:800;color:var(--sw-blue);white-space:nowrap}.credit-badge small{font-size:11px}.credit-form{border:1px solid #DCE8F0;background:#F8FBFD;border-radius:12px;padding:16px;margin:20px 0}.credit-form-grid{display:grid;grid-template-columns:130px 130px 1fr auto;gap:9px}.empty-detail{text-align:center;padding:80px 20px}.empty-detail h2{margin-bottom:8px}.empty-detail p{color:var(--sw-muted)}@media(max-width:800px){.dashboard-grid,.management-layout{grid-template-columns:1fr}.two-column-form{grid-template-columns:1fr}.full-row{grid-column:auto}.credit-form-grid{grid-template-columns:1fr 1fr}.site-header{align-items:flex-start}.header-tools{flex-wrap:wrap;justify-content:flex-end}.site-brand img{width:140px}}@media(max-width:520px){.page-shell{width:min(100% - 20px,1180px);margin-top:20px}.site-header{padding:10px 12px}.site-brand span{display:none}.header-tools>a{display:none}.auth-card{padding:22px}.credit-form-grid{grid-template-columns:1fr}.detail-list{grid-template-columns:1fr}}

/* v0.25 - automatic AWS status monitoring */
.operation-history-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px}.operation-history-heading h2{margin-bottom:5px}.operation-history-heading p{margin:0;color:var(--sw-muted);font-size:12px}.auto-check-badge{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;border:1px solid #B9D8E8;background:#F4FBFE;color:var(--sw-blue);border-radius:999px;padding:6px 10px;font-size:10px;font-weight:800}.auto-check-badge>span{width:7px;height:7px;border-radius:50%;background:var(--sw-cyan);box-shadow:0 0 0 4px rgba(0,167,231,.10)}.operation-result{min-width:150px}.operation-download{display:inline-flex;align-items:center;justify-content:center;min-width:138px;border:1px solid var(--sw-blue);background:var(--sw-blue);color:#fff;border-radius:8px;padding:7px 10px;font-size:11px;font-weight:800;text-decoration:none;white-space:nowrap}.operation-download:hover{background:var(--sw-blue-dark);color:#fff;text-decoration:none}.operation-download.expired{border-color:#CAD4DB;background:#EEF2F4;color:#7C8C98;cursor:not-allowed}.sea-spinner{position:relative;display:inline-grid;place-items:center;width:30px;height:30px;border:3px solid #D8EDF7;border-top-color:var(--sw-cyan);border-right-color:var(--sw-blue);border-radius:50%;animation:seewave-spin .9s linear infinite}.result-unavailable{color:var(--sw-muted);font-size:11px}@keyframes seewave-spin{to{transform:rotate(360deg)}}@media(max-width:700px){.operation-history-heading{flex-direction:column}.auto-check-badge{align-self:flex-start}.operation-result{min-width:130px}}

/* Authentication level management - v0.27 */
.auth-level-form{border:1px solid #C9DCEB;background:#F6FAFD;border-radius:12px;padding:16px;margin:20px 0}.auth-level-form h3{margin:0 0 4px;color:var(--sw-blue)}.form-help{margin:0 0 13px;color:var(--sw-muted);font-size:12px}.auth-level-grid{display:grid;grid-template-columns:minmax(190px,1fr) auto;gap:9px;align-items:center}.auth-level-grid select{width:100%;border:1px solid #BCD2E3;border-radius:9px;padding:11px 12px;font:inherit;color:var(--sw-ink);background:#fff}.auth-level-grid select:focus{outline:3px solid rgba(0,167,231,.13);border-color:var(--sw-cyan)}.auth-level-legend{display:grid;gap:5px;margin-top:12px;color:var(--sw-muted);font-size:11px}.auth-level-legend b{color:var(--sw-ink)}@media(max-width:520px){.auth-level-grid{grid-template-columns:1fr}}

/* v0.29 - separate download expiry column */
.operation-expiry{min-width:105px;white-space:nowrap;vertical-align:middle}.operation-countdown{display:inline-block;font-variant-numeric:tabular-nums;font-weight:800;color:var(--sw-blue);letter-spacing:.02em}.operation-countdown.expired{color:#7C8C98}.operation-download.expired{pointer-events:none;user-select:none}

/* v0.30 - expired operation history drawer */
.expired-operations{margin-top:14px;border-top:1px solid #E5EEF4;padding-top:12px}.expired-operations[hidden]{display:none}.expired-operations>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none;border:1px solid #D6E5EF;background:#F7FAFC;color:var(--sw-blue);border-radius:10px;padding:10px 12px;font-size:12px;font-weight:800;user-select:none}.expired-operations>summary::-webkit-details-marker{display:none}.expired-operations>summary::after{content:'▾';font-size:15px;line-height:1;transition:transform .18s ease}.expired-operations[open]>summary::after{transform:rotate(180deg)}.expired-operation-count{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 7px;margin-left:auto;border-radius:999px;background:#E6EEF4;color:#526D81;font-size:10px}.expired-table-wrap{margin-top:10px}.expired-operation-table{background:#FBFCFD}.expired-operation-row{opacity:.78}.expired-operation-row:hover{opacity:1}.active-empty-row td{padding-top:18px;padding-bottom:18px;text-align:center}@media(max-width:700px){.expired-operations>summary{align-items:center}}

/* v0.31 - profile password change */
.profile-panel-actions{display:flex;align-items:center;justify-content:flex-start;padding-top:12px;margin-top:2px}.profile-action-link{display:inline-flex;align-items:center;color:var(--sw-blue);font-size:12px;font-weight:800;text-decoration:none}.profile-action-link:hover{text-decoration:underline}.password-change-card{max-width:520px}.password-help{margin-top:-5px;color:var(--sw-muted);font-size:11px;line-height:1.45}.password-help ul{margin:5px 0 0;padding-left:18px}.password-change-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:6px}.password-change-actions .secondary-button,.password-change-actions .primary-button{min-width:0}@media(max-width:520px){.password-change-actions{align-items:stretch;flex-direction:column-reverse}.password-change-actions .secondary-button,.password-change-actions .primary-button{justify-content:center;width:100%}}
