:root{color-scheme:light;--ink:#17231d;--muted:#68756e;--paper:#f4f1e9;--card:#fffdf8;--green:#1f5b42;--green2:#174633;--line:#d8ddd7;--danger:#a63e35;--shadow:0 18px 50px rgba(24,48,35,.12);font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 10% 0,#dbe5da 0,transparent 35%),var(--paper);color:var(--ink);min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.muted{color:var(--muted);line-height:1.65}.hint{font-size:.82rem;color:var(--muted);line-height:1.5}.eyebrow{font-size:.7rem;letter-spacing:.16em;font-weight:800;color:var(--green);margin:0 0 6px}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:min(100%,440px);background:rgba(255,253,248,.92);border:1px solid rgba(255,255,255,.8);padding:36px;border-radius:28px;box-shadow:var(--shadow);backdrop-filter:blur(12px)}.brand-mark{width:58px;height:58px;border-radius:18px;background:var(--green);color:white;display:grid;place-items:center;font-size:1.6rem;margin-bottom:24px}.auth-card h1,.topbar h1{font-family:Georgia,"Noto Serif SC",serif;margin:0;font-size:2rem}.stack{display:grid;gap:16px}.auth-actions{text-align:center;margin-top:20px}.text-button{border:0;background:none;color:var(--green);padding:8px}.app{width:min(100%,1000px);margin:auto;padding:24px 24px 70px}.topbar{display:flex;justify-content:space-between;align-items:center;padding:12px 0 20px}.icon-button{border:1px solid var(--line);background:var(--card);border-radius:12px;min-width:44px;height:44px;padding:0 12px;color:var(--ink)}.tabs{display:flex;gap:4px;background:#e5e7e1;border-radius:14px;padding:4px;margin-bottom:22px}.tab{flex:1;border:0;border-radius:11px;padding:12px;background:transparent;color:var(--muted);font-weight:700}.tab.active{background:var(--card);color:var(--ink);box-shadow:0 3px 12px rgba(31,47,39,.08)}.panel{display:none}.panel.active{display:block}.toolbar{display:flex;gap:12px;margin-bottom:18px}.search{display:flex;align-items:center;gap:8px;flex:1;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:0 14px}.search input{width:100%;border:0;background:transparent;outline:0;padding:13px 0}button.primary,button.secondary,button.danger{border-radius:12px;padding:12px 17px;font-weight:750;border:1px solid transparent}.primary{background:var(--green);color:white}.primary:hover{background:var(--green2)}.secondary{background:var(--card);border-color:var(--line)!important;color:var(--ink)}.danger{background:#fff5f3;color:var(--danger);border-color:#ecc8c4!important}.compact{white-space:nowrap}.record-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.record{border:1px solid var(--line);background:var(--card);border-radius:18px;padding:18px;text-align:left;display:grid;gap:11px;box-shadow:0 5px 18px rgba(37,55,45,.04)}.record:hover{border-color:#96ae9f;transform:translateY(-1px)}.record-top{display:flex;justify-content:space-between;gap:10px}.record h3{margin:0;font-size:1rem}.badge{font-size:.7rem;color:var(--green);background:#e8f0e9;border-radius:99px;padding:4px 8px;white-space:nowrap}.record-meta{font-size:.84rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.record-time{font-size:.72rem;color:#8a938e}.empty{text-align:center;padding:60px 20px;color:var(--muted)}.empty-icon{font-size:3rem}.empty h2{color:var(--ink)}.card{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:24px;box-shadow:0 8px 30px rgba(37,55,45,.05)}.generator-card{max-width:650px;margin:auto}.generated-row{display:flex;align-items:center;gap:10px;margin:16px 0 22px}.generated-password{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:1.25rem;word-break:break-all;flex:1;background:#eef1eb;padding:16px;border-radius:14px;min-height:56px}.range-label{display:grid;grid-template-columns:1fr auto;gap:8px}.range-label input{grid-column:1/-1;width:100%;accent-color:var(--green)}.option-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0}.option-grid label{background:#f5f5ef;padding:12px;border-radius:12px}.option-grid input{accent-color:var(--green)}.button-row{display:flex;gap:10px}.button-row>*{flex:1}.divider{height:1px;background:var(--line);margin:5px 0}label{display:grid;gap:7px;font-size:.86rem;font-weight:700}input,select,textarea{width:100%;border:1px solid var(--line);background:white;border-radius:11px;padding:12px;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(31,91,66,.1)}dialog{border:0;padding:0;border-radius:24px;width:min(94vw,610px);background:var(--card);box-shadow:0 24px 90px rgba(0,0,0,.25)}dialog::backdrop{background:rgba(12,24,18,.55);backdrop-filter:blur(3px)}.dialog-card{padding:24px;display:grid;gap:15px}.dialog-head{display:flex;justify-content:space-between}.dialog-head h2{margin:0}.input-action{display:flex}.input-action input{border-radius:11px 0 0 11px}.input-action button{border:1px solid var(--line);border-left:0;background:#f0f2ed;padding:0 11px}.input-action button:last-child{border-radius:0 11px 11px 0}.dialog-actions{display:grid;grid-template-columns:auto 1fr auto auto;gap:8px;margin-top:5px}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);background:#17231d;color:white;padding:11px 17px;border-radius:99px;opacity:0;pointer-events:none;transition:.2s;z-index:20;box-shadow:var(--shadow)}.toast.show{opacity:1;transform:translate(-50%,0)}
.sync-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.sync-head h2{margin:0}.status-pill{font-size:.72rem;font-weight:800;border-radius:99px;padding:6px 10px;background:#eceee9;color:var(--muted);white-space:nowrap}.status-pill.online{background:#e4f1e7;color:var(--green)}.status-pill.error{background:#fff0ed;color:var(--danger)}
@media(max-width:650px){.app{padding:18px 14px 90px}.auth-card{padding:28px 22px}.record-list{grid-template-columns:1fr}.toolbar{align-items:stretch}.compact{padding:10px 12px}.topbar{padding-top:max(8px,env(safe-area-inset-top))}.dialog-card{padding:20px 16px}.dialog-actions{grid-template-columns:1fr 1fr}.dialog-actions span{display:none}.dialog-actions .danger{grid-column:1/-1;grid-row:2}.option-grid{grid-template-columns:1fr}.generated-password{font-size:1rem}.button-row{flex-direction:column}.sync-head{align-items:center}}
