*,:before,:after{box-sizing:border-box}body{color:#f2f3f5;-webkit-font-smoothing:antialiased;background-color:#1e1f22;margin:0;font-family:gg sans,Noto Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:15px;line-height:1.5}button{cursor:pointer;background:0 0;border:none;font-family:gg sans,Noto Sans,Helvetica Neue,Helvetica,Arial,sans-serif}input,textarea{font-family:gg sans,Noto Sans,Helvetica Neue,Helvetica,Arial,sans-serif}.app{background:#1e1f22;flex-direction:column;min-height:100vh;display:flex}.main{flex:1;width:100%;max-width:960px;margin:0 auto;padding:1.5rem 1rem 2.5rem}.header{z-index:50;background:#2b2d31;border-bottom:1px solid #2e3035;justify-content:space-between;align-items:center;height:48px;padding:0 1.5rem;display:flex;position:sticky;top:0}.header__left{align-items:center;gap:1rem;display:flex}.header__right{align-items:center;gap:.5rem;display:flex}.header__back{color:#b5bac1;border-radius:4px;padding:4px 8px;font-size:.875rem;transition:background .1s,color .1s}.header__back:hover{color:#f2f3f5;background:#313338}.header__brand{align-items:center;gap:6px;display:flex}.header__logo{color:#5865f2;font-size:1.2rem}.header__title{color:#f2f3f5;letter-spacing:-.01em;font-size:1rem;font-weight:700}.btn-primary{color:#fff;background:#5865f2;border-radius:4px;justify-content:center;align-items:center;height:32px;padding:6px 16px;font-size:.875rem;font-weight:500;transition:background .15s,opacity .15s;display:inline-flex}.btn-primary:hover:not(:disabled){background:#4752c4}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-ghost{color:#b5bac1;background:0 0;border:1px solid #3a3c42;border-radius:4px;justify-content:center;align-items:center;height:32px;padding:6px 16px;font-size:.875rem;font-weight:500;transition:background .15s,color .15s;display:inline-flex}.btn-ghost:hover{color:#f2f3f5;background:#313338}.btn-link{color:#5865f2;background:0 0;padding:0;font-size:.82rem;text-decoration:none}.btn-link:hover{color:#8791f6;text-decoration:underline}.page-title{color:#f2f3f5;margin:0;font-size:1.25rem;font-weight:700}.page-subtitle{color:#80848e;margin:2px 0 0;font-size:.85rem}.sheet-list-view__header{justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;display:flex}.list-state{text-align:center;color:#80848e;padding:2.5rem;font-size:.9rem}.list-state--error{color:#ed4245}.list-empty{text-align:center;flex-direction:column;align-items:center;gap:.5rem;padding:3.75rem 0;display:flex}.list-empty__icon{color:#80848e;margin-bottom:.5rem;font-size:3rem;line-height:1}.list-empty__text{color:#b5bac1;margin:0;font-size:1.05rem;font-weight:600}.list-empty__sub{color:#80848e;margin:0 0 1rem;font-size:.875rem}.sheet-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;display:grid}.sheet-card{cursor:pointer;background:#2b2d31;border:1px solid #2e3035;border-radius:12px;flex-direction:column;gap:.5rem;padding:1rem;transition:border-color .1s,background .1s;display:flex}.sheet-card:hover{background:#313338;border-color:#3a3c42}.sheet-card__top{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.sheet-card__name{color:#f2f3f5;white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:600;overflow:hidden}.sheet-card__key-badge{color:#c9cdfb;background:#5865f22e;border:1px solid #5865f24d;border-radius:4px;flex-shrink:0;padding:1px 7px;font-family:Consolas,Andale Mono WT,Andale Mono,Lucida Console,monospace;font-size:.72rem;font-weight:600}.sheet-card__preview{color:#80848e;white-space:nowrap;text-overflow:ellipsis;font-family:Consolas,Andale Mono WT,Andale Mono,Lucida Console,monospace;font-size:.78rem;line-height:1.5;overflow:hidden}.sheet-card__footer{border-top:1px solid #2e3035;justify-content:space-between;align-items:center;margin-top:auto;padding-top:.25rem;display:flex}.sheet-card__date{color:#80848e;font-size:.75rem}.sheet-card__delete{color:#80848e;border-radius:4px;padding:2px 6px;font-size:.75rem;transition:background .1s,color .1s}.sheet-card__delete:hover{color:#ed4245;background:#ed424526}.editor-view{flex-direction:column;gap:1rem;display:flex}.editor-meta{align-items:center;gap:1rem;display:flex}.key-badge{color:#b5bac1;background:#5865f226;border:1px solid #5865f266;border-radius:999px;align-items:center;gap:4px;padding:2px 10px;font-size:.8rem;display:inline-flex}.key-badge strong{color:#c9cdfb;font-family:Consolas,Andale Mono WT,Andale Mono,Lucida Console,monospace}.controls-bar{background:#2b2d31;border:1px solid #2e3035;border-radius:12px;flex-wrap:wrap;align-items:center;gap:1.5rem;padding:10px 1rem;display:flex}.control-group{flex-direction:column;gap:4px;display:flex}.control-label{letter-spacing:.07em;text-transform:uppercase;color:#80848e;font-size:.68rem;font-weight:600}.toggle-group{background:#1e1f22;border:1px solid #3a3c42;border-radius:4px;display:flex;overflow:hidden}.toggle-btn{color:#b5bac1;padding:4px 12px;font-size:.82rem;font-weight:500;transition:background .1s,color .1s}.toggle-btn.active{color:#fff;background:#5865f2}.toggle-btn:hover:not(.active){color:#f2f3f5;background:#313338}.stepper{background:#1e1f22;border:1px solid #3a3c42;border-radius:4px;align-items:stretch;display:flex;overflow:hidden}.step-btn{color:#b5bac1;justify-content:center;align-items:center;width:28px;font-size:1rem;transition:background .1s,color .1s;display:flex}.step-btn:hover{color:#f2f3f5;background:#313338}.step-value{text-align:center;color:#c9cdfb;border-left:1px solid #3a3c42;border-right:1px solid #3a3c42;justify-content:center;align-items:center;min-width:38px;padding:4px .25rem;font-family:Consolas,Andale Mono WT,Andale Mono,Lucida Console,monospace;font-size:.85rem;font-weight:600;line-height:1;display:flex}.control-actions{align-items:center;gap:.5rem;margin-left:auto;display:flex}.sheet-textarea{color:#1e1f22;resize:vertical;white-space:pre;background:#fff;border:1px solid #2e3035;border-radius:12px;width:100%;min-height:500px;padding:1rem 1.5rem;font-family:Consolas,Andale Mono WT,Andale Mono,Lucida Console,monospace;font-size:.875rem;line-height:1.9;transition:border-color .15s;overflow-x:auto}.sheet-textarea::placeholder{color:#80848e;white-space:pre-wrap;font-family:gg sans,Noto Sans,Helvetica Neue,Helvetica,Arial,sans-serif}.sheet-textarea:focus{border-color:#5865f2;outline:none}.modal-backdrop{z-index:200;background:#000000a6;justify-content:center;align-items:center;animation:.15s fade-in;display:flex;position:fixed;inset:0}.modal{background:#2b2d31;border:1px solid #3a3c42;border-radius:12px;width:100%;max-width:420px;padding:1.5rem;animation:.15s slide-up}.modal__title{color:#f2f3f5;margin:0 0 4px;font-size:1.1rem;font-weight:700}.modal__subtitle{color:#80848e;margin:0 0 1rem;font-size:.875rem}.modal__input{color:#f2f3f5;background:#1e1f22;border:1px solid #3a3c42;border-radius:8px;width:100%;margin-bottom:1rem;padding:9px 12px;font-size:.9rem;transition:border-color .15s}.modal__input:focus{border-color:#5865f2;outline:none}.modal__input::placeholder{color:#80848e}.modal__actions{justify-content:flex-end;gap:.5rem;display:flex}.toast-container{z-index:1000;flex-direction:column;gap:.5rem;display:flex;position:fixed;bottom:1.5rem;right:1.5rem}.toast{cursor:pointer;border-radius:8px;max-width:320px;padding:10px 16px;font-size:.875rem;font-weight:500;animation:.2s slide-in;box-shadow:0 4px 12px #0006}.toast--success{color:#57f287;background:#054519;border:1px solid #57f28780}.toast--error{color:#ffb3b3;background:#890d0f;border:1px solid #ed424580}@keyframes slide-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.btn-danger{color:#fff;background:#ed4245;border-radius:4px;justify-content:center;align-items:center;height:32px;padding:6px 16px;font-size:.875rem;font-weight:500;transition:background .15s;display:inline-flex}.btn-danger:hover{background:#e91d20}.control-input,.control-select{color:#f2f3f5;background:#1e1f22;border:1px solid #3a3c42;border-radius:4px;height:30px;padding:0 10px;font-size:.85rem;transition:border-color .15s}.control-input:focus,.control-select:focus{border-color:#5865f2;outline:none}.control-input::placeholder,.control-select::placeholder{color:#80848e}.control-input option,.control-select option{background:#2b2d31}.control-select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2380848e' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;padding-right:28px}.control-group--name .control-input{width:180px}.header__right .btn-link{margin-right:.5rem;font-size:.875rem}.auth-loading{background:#1e1f22;justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-loading__logo{color:#5865f2;font-size:2.5rem;animation:1.4s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.login-page{background:#1e1f22;justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.login-card{text-align:center;background:#2b2d31;border:1px solid #3a3c42;border-radius:12px;flex-direction:column;align-items:center;width:100%;max-width:400px;padding:2.5rem 1.5rem;display:flex}.login-card__brand{align-items:center;gap:8px;margin-bottom:1.5rem;display:flex}.login-card__logo{color:#5865f2;font-size:1.75rem}.login-card__title{color:#f2f3f5;letter-spacing:-.01em;font-size:1.25rem;font-weight:700}.login-card__heading{color:#f2f3f5;margin:0 0 .25rem;font-size:1.5rem;font-weight:700}.login-card__sub{color:#b5bac1;margin:0 0 1.5rem;font-size:.9375rem}.login-card__footer{color:#80848e;margin:1rem 0 0;font-size:.8125rem}.btn-google{color:#3c4043;cursor:pointer;background:#fff;border:1px solid #dadce0;border-radius:4px;justify-content:center;align-items:center;gap:10px;width:100%;padding:10px 20px;font-family:gg sans,Noto Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.9375rem;font-weight:500;transition:background .15s,box-shadow .15s;display:inline-flex}.btn-google:hover:not(:disabled){background:#f8f9fa;box-shadow:0 1px 3px #0003}.btn-google:disabled{opacity:.7;cursor:not-allowed}.header__user{border-left:1px solid #2e3035;align-items:center;gap:.5rem;margin-left:.5rem;padding-left:.5rem;display:flex}.header__avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:26px;height:26px}.header__signout{color:#80848e;padding:4px 8px;font-size:.8125rem}.header__signout:hover{color:#b5bac1;background:#313338;border-radius:4px}
