| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588 |
- :root {
- color-scheme:light dark;
- --canvas:#fff;
- --soft:#f2f2ef;
- --text:#1f1f1d;
- --muted:#656560;
- --line:#ddddda;
- --solid:#20201e;
- --on-solid:#fff;
- --success:#377a54;
- --danger:#b33d33;
- --focus:rgba(31,31,29,.16);
- font:14px/1.5 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
- color:var(--text);
- background:var(--canvas)
- }
- * {
- box-sizing:border-box
- }
- body {
- margin:0
- }
- button,input {
- font:inherit;
- color:inherit
- }
- button {
- cursor:pointer
- }
- button:disabled {
- cursor:default;
- opacity:.52
- }
- input[type=radio],input[type=checkbox] {
- accent-color:var(--solid);
- width:16px;
- height:16px;
- margin:0;
- flex:none
- }
- button:focus-visible,input:focus-visible,summary:focus-visible {
- outline:2px solid var(--solid);
- outline-offset:3px
- }
- [hidden] {
- display:none!important
- }
- .sr-only {
- position:absolute;
- width:1px;
- height:1px;
- overflow:hidden;
- clip-path:inset(50%);
- white-space:nowrap
- }
- svg {
- width:20px;
- height:20px;
- flex:none
- }
- h1,h2,p {
- margin:0
- }
- .page {
- width:min(820px,calc(100% - 80px));
- margin:20px auto 20px
- }
- .brand {
- display:flex;
- align-items:center;
- justify-content:space-between
- }
- .brand>div {
- display:flex;
- align-items:center;
- gap:10px
- }
- .brand img {
- object-fit:contain
- }
- .brand strong {
- font-size:24px;
- font-weight:650
- }
- .brand>span {
- font-size:12px;
- color:var(--muted)
- }
- .intro {
- margin-top:16px
- }
- .intro h1 {
- font-size:26px;
- line-height:1.4;
- letter-spacing:-.035em;
- font-weight:650
- }
- .intro p {
- margin-top:4px;
- color:var(--muted)
- }
- .steps {
- display:flex;
- align-items:center;
- justify-content:center;
- gap:0;
- list-style:none;
- margin:20px 0 18px;
- padding:0;
- font-size:13px
- }
- .steps li {
- display:flex;
- align-items:center;
- gap:10px;
- color:var(--muted)
- }
- .steps li+li:before {
- content:"";
- width:72px;
- height:1px;
- background:var(--line);
- margin:0 20px 0 10px
- }
- .step-dot {
- width:28px;
- height:28px;
- border-radius:50%;
- display:grid;
- place-items:center;
- background:var(--soft);
- color:var(--muted)
- }
- .step-dot b {
- font-weight:500
- }
- .step-dot svg {
- display:none;
- width:18px;
- height:18px
- }
- .steps [aria-current=step] {
- color:var(--text)
- }
- .steps [aria-current=step] .step-dot {
- color:var(--on-solid);
- background:var(--solid)
- }
- .steps .complete .step-dot {
- background:var(--success);
- color:#fff
- }
- .steps .complete b {
- display:none
- }
- .steps .complete svg {
- display:block
- }
- .section {
- padding:14px 0;
- border-top:1px solid var(--line)
- }
- .choice-section {
- border-top:0;
- padding-top:0
- }
- h2 {
- display:flex;
- gap:20px;
- align-items:baseline;
- font-size:17px;
- font-weight:630;
- line-height:1.5
- }
- h2>span:first-child {
- font-variant-numeric:tabular-nums
- }
- .inset {
- margin-left:42px
- }
- .muted {
- color:var(--muted);
- font-size:13px;
- margin-top:4px
- }
- .pending h2 {
- color:var(--muted)
- }
- .mode-options {
- display:grid;
- grid-template-columns:1fr 1fr;
- gap:14px;
- border:0;
- margin:12px 0 0;
- padding:0;
- min-width:0
- }
- .mode-option {
- display:flex;
- align-items:center;
- gap:16px;
- min-height:74px;
- padding:15px 18px;
- border:1px solid var(--line);
- border-radius:10px;
- cursor:pointer
- }
- .mode-option:has(:checked) {
- border-color:var(--solid);
- background:var(--soft);
- box-shadow:inset 0 0 0 .5px var(--solid)
- }
- .mode-option:has(:focus-visible) {
- outline:2px solid var(--solid);
- outline-offset:3px
- }
- .mode-option:has(:disabled) {
- cursor:default
- }
- .mode-option span {
- min-width:0
- }
- .mode-option strong {
- display:block;
- font-size:14px;
- font-weight:600
- }
- .mode-option small {
- display:block;
- color:var(--muted);
- font-size:12px;
- margin-top:4px
- }
- .mode-icon {
- width:27px;
- height:27px
- }
- .installation {
- background:var(--soft);
- border-radius:10px;
- padding:4px 20px;
- margin-top:12px
- }
- .install-steps {
- list-style:none;
- margin:0;
- padding:0
- }
- .install-steps li {
- display:flex;
- align-items:center;
- gap:14px;
- padding:8px 0;
- font-size:14px
- }
- .install-steps li+li {
- border-top:1px solid var(--line)
- }
- .install-steps small {
- margin-left:auto;
- color:var(--muted);
- font-size:12px
- }
- .install-steps svg {
- width:18px;
- height:18px;
- color:var(--muted)
- }
- .install-steps .complete svg,.install-steps .complete small {
- color:var(--success)
- }
- .install-steps .active svg {
- color:var(--text);
- animation:spin 1.2s linear infinite
- }
- .install-steps .active small {
- color:var(--text)
- }
- progress {
- display:block;
- width:100%;
- height:7px;
- margin:10px 0 12px;
- accent-color:var(--solid)
- }
- summary {
- display:flex;
- align-items:center;
- gap:7px;
- list-style:none;
- cursor:pointer;
- color:var(--muted);
- font-size:12px;
- min-height:32px
- }
- summary::-webkit-details-marker {
- display:none
- }
- summary svg {
- width:16px;
- height:16px
- }
- details[open] summary svg {
- transform:rotate(90deg)
- }
- pre {
- font:12px/1.65 ui-monospace,monospace;
- white-space:pre-wrap;
- overflow-wrap:anywhere;
- max-height:130px;
- overflow:auto;
- color:var(--muted);
- margin:2px 0 10px
- }
- label[for] {
- font-size:13px
- }
- .connection-row {
- display:flex;
- gap:10px;
- margin-top:6px
- }
- .connection-row input {
- flex:1;
- min-width:0
- }
- #connection-form {
- margin-top:8px
- }
- input:not([type=checkbox],[type=radio]) {
- width:100%;
- height:44px;
- padding:0 13px;
- border:1px solid var(--line);
- border-radius:9px;
- background:var(--canvas);
- min-width:0
- }
- input::placeholder {
- color:var(--muted);
- opacity:.85
- }
- input:not([type=checkbox],[type=radio]):focus {
- border-color:var(--solid);
- box-shadow:0 0 0 3px var(--focus);
- outline:0
- }
- input[aria-invalid=true] {
- border-color:var(--danger)
- }
- .secondary {
- min-height:44px;
- padding:9px 16px;
- border:1px solid var(--line);
- border-radius:9px;
- background:var(--canvas);
- white-space:nowrap
- }
- .secondary:hover {
- background:var(--soft)
- }
- .primary {
- display:flex;
- align-items:center;
- justify-content:center;
- position:relative;
- width:100%;
- min-height:46px;
- padding:10px 40px;
- background:var(--solid);
- color:var(--on-solid);
- border:1px solid var(--solid);
- border-radius:10px;
- font-weight:550
- }
- .primary svg {
- position:absolute;
- right:18px
- }
- .primary:hover:not(:disabled) {
- opacity:.9
- }
- #prepare-local {
- margin-top:14px
- }
- #login-form {
- margin-top:12px
- }
- #credentials {
- display:grid;
- gap:12px
- }
- .field {
- display:grid;
- grid-template-columns:60px minmax(0,1fr);
- align-items:center;
- gap:12px
- }
- .password-input {
- position:relative
- }
- .password-input input {
- padding-right:48px
- }
- .eye-button {
- position:absolute;
- right:0;
- top:0;
- display:grid;
- place-items:center;
- width:44px;
- height:44px;
- background:transparent;
- border:0;
- color:var(--muted);
- border-radius:9px
- }
- #submit {
- margin-top:14px
- }
- #waiting {
- margin-top:14px;
- background:var(--soft);
- color:var(--muted);
- border-color:var(--soft);
- opacity:1
- }
- .status {
- font-size:13px;
- margin-top:10px;
- overflow-wrap:anywhere
- }
- .status:empty {
- display:none
- }
- .status.success {
- color:var(--success)
- }
- .status[role=alert],.error {
- color:var(--danger)
- }
- .error {
- font-size:13px;
- margin:12px 0;
- overflow-wrap:anywhere
- }
- .actions {
- display:flex;
- gap:10px;
- margin-top:12px;
- flex-wrap:wrap
- }
- footer {
- display:flex;
- align-items:center;
- justify-content:space-between;
- margin-top:0;
- font-size:13px;
- color:var(--muted)
- }
- .remember {
- display:flex;
- align-items:center;
- gap:8px;
- min-height:44px;
- cursor:pointer
- }
- .text-button {
- background:transparent;
- border:0;
- padding:8px 0;
- min-height:44px;
- color:var(--muted);
- text-decoration:underline;
- text-underline-offset:3px;
- font-size:13px
- }
- .help {
- margin-top:8px;
- border-top:1px solid var(--line);
- padding-top:16px;
- color:var(--muted);
- font-size:13px
- }
- .help p+p {
- margin-top:8px
- }
- @keyframes spin {
- to {
- transform:rotate(360deg)
- }
- }
- @media(prefers-reduced-motion:reduce) {
- .install-steps .active svg {
- animation:none
- }
- }
- @media(max-width:760px) {
- .page {
- width:calc(100% - 48px);
- margin-top:20px
- }
- .mode-option {
- gap:10px;
- padding:12px
- }
- .mode-icon {
- width:22px;
- height:22px
- }
- .steps li+li:before {
- width:30px;
- margin:0 10px
- }
- .inset {
- margin-left:0
- }
- .intro {
- margin-top:20px
- }
- }
- @media(max-width:540px) {
- .page {
- width:calc(100% - 36px)
- }
- .mode-options {
- grid-template-columns:1fr
- }
- .steps {
- font-size:12px
- }
- .steps li {
- gap:5px
- }
- .steps li+li:before {
- width:14px;
- margin:0 6px
- }
- .step-dot {
- width:24px;
- height:24px
- }
- .field {
- grid-template-columns:1fr;
- gap:6px
- }
- .connection-row {
- flex-wrap:wrap
- }
- .connection-row input {
- flex-basis:100%
- }
- .intro h1 {
- font-size:24px
- }
- h2 {
- gap:14px
- }
- }
- @media(prefers-color-scheme:dark) {
- :root {
- --canvas:#181817;
- --soft:#282827;
- --text:#efefec;
- --muted:#b2b2ad;
- --line:#41413e;
- --solid:#efefec;
- --on-solid:#151514;
- --success:#77b88e;
- --danger:#ed786f;
- --focus:rgba(255,255,255,.12)
- }
- .brand img {
- filter:invert(1)
- }
- .steps .complete .step-dot {
- color:#151514
- }
- }
- .field label {
- white-space:nowrap
- }
- .local-ready #local-panel>.muted {
- display:none
- }
- .local-ready .installation {
- margin-top:6px
- }
|