*{box-sizing:border-box}body{color:#1a1a1a;background:#f7f7f8;margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif}a{color:inherit}::selection{color:#fff;background:#1a1a1a}:focus-visible{outline-offset:2px;outline:2px solid #1a1a1a}.home-page,.not-found-page{max-width:1100px;margin:0 auto;padding:24px 16px 64px}.home-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;display:flex}.logout-button{z-index:60;color:#6b6b6b;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #e5e5e5;border-radius:8px;align-items:center;gap:6px;height:36px;padding:0 12px;font-size:13px;font-weight:600;transition:color .15s,border-color .15s;display:flex;position:fixed;top:16px;right:16px}.logout-button svg{flex-shrink:0}.logout-button:hover:not(:disabled){color:#1a1a1a;border-color:#c7c7c7}.logout-button:disabled{opacity:.6;cursor:default}.add-idea-button{color:#fff;cursor:pointer;background:#1a1a1a;border:none;border-radius:8px;padding:10px 16px;font-size:14px}.idea-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.idea-grid-empty{text-align:center;color:#666;padding:48px 0}.idea-card{color:inherit;opacity:0;background:#fff;border:1px solid #e5e5e5;border-radius:12px;padding:16px;text-decoration:none;animation:.35s forwards card-fade-in;display:block}@keyframes card-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.idea-card-author{color:#666;margin:4px 0 8px;font-size:13px}.idea-card-description{color:#333;font-size:14px}.idea-card-date{color:#999;margin:10px 0 0;font-size:12px}.modal-backdrop{z-index:50;background:#0006;justify-content:center;align-items:center;padding:16px;animation:.2s backdrop-fade-in;display:flex;position:fixed;inset:0}@keyframes backdrop-fade-in{0%{opacity:0}to{opacity:1}}.modal{background:#fff;border-radius:12px;width:100%;max-width:480px;max-height:90vh;padding:24px;animation:.2s modal-pop-in;position:relative;overflow-y:auto}@keyframes modal-pop-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.modal-close{cursor:pointer;background:0 0;border:none;font-size:20px;position:absolute;top:12px;right:12px}.modal form label{margin-top:14px;margin-bottom:4px;font-size:13px;font-weight:600;display:block}.modal form input,.modal form textarea{border:1px solid #ccc;border-radius:6px;width:100%;padding:8px 10px;font-size:14px}.field-error{color:#c0392b;margin:4px 0 0;font-size:12px}.field-warning{color:#b7791f;margin:4px 0 0;font-size:12px}.modal button[type=submit]{color:#fff;cursor:pointer;background:#1a1a1a;border:none;border-radius:8px;width:100%;margin-top:18px;padding:10px;font-size:14px}.modal button[type=submit]:disabled{opacity:.6;cursor:default}.detail-page{grid-template-columns:minmax(100px,280px) 1fr;height:100vh;display:grid}.detail-sidebar{background:#fff;border-right:1px solid #e5e5e5;flex-direction:column;padding:28px 28px 24px;display:flex;overflow-y:auto}.back-link{color:#6b6b6b;align-items:center;gap:6px;margin-bottom:20px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.back-link svg{flex-shrink:0}.back-link:hover{color:#1a1a1a}.detail-title{letter-spacing:-.02em;margin:0;font-size:24px;font-weight:700;line-height:1.25}.detail-byline{color:#6b6b6b;margin:6px 0 0;font-size:13px}.detail-date{color:#999;margin:2px 0 0;font-size:13px}.detail-description{color:#333;margin:18px 0 0;font-size:14px;line-height:1.6}.delete-idea-button{color:#ff4646;cursor:pointer;text-align:left;background:0 0;border:none;border-top:1px solid #ececec;align-self:flex-start;align-items:center;gap:8px;width:100%;margin-top:auto;padding-top:20px;font-size:13px;font-weight:700;display:flex}.delete-idea-button svg{flex-shrink:0}.delete-idea-button:hover{color:#df1717;font-weight:bolder}.delete-confirm-text{color:#555;margin:12px 0 0;font-size:14px;line-height:1.55}.delete-confirm-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.delete-confirm-cancel{color:#1a1a1a;cursor:pointer;background:#fff;border:1px solid #d8d8d8;border-radius:8px;padding:9px 16px;font-size:14px}.delete-confirm-cancel:hover:not(:disabled){background:#f5f5f5}.delete-confirm-submit{color:#fff;cursor:pointer;background:#c0392b;border:none;border-radius:8px;padding:9px 16px;font-size:14px;font-weight:600}.delete-confirm-submit:hover:not(:disabled){background:#a3301f}.delete-confirm-cancel:disabled,.delete-confirm-submit:disabled{opacity:.6;cursor:default}.detail-viewer{flex-direction:column;min-width:0;height:100vh;display:flex}.prototype-tabs{flex-direction:column;flex:1;min-height:0;display:flex}.tab-buttons{flex-shrink:0;padding:16px 20px 0}.tab-buttons button{cursor:pointer;background:#fff;border:1px solid #ccc;padding:8px 14px;font-size:14px}.tab-buttons button:first-child{border-radius:8px 0 0 8px}.tab-buttons button:last-child{border-left:none;border-radius:0 8px 8px 0}.tab-buttons button.active{color:#fff;background:#1a1a1a;border-color:#1a1a1a}.tab-panel{border:1px solid #e5e5e5;border-radius:8px;flex:1;min-height:0;margin:12px 20px 20px;position:relative;overflow:hidden}.tab-panel iframe{border:none;width:100%;height:100%;transition:opacity .2s}.tab-panel iframe.hidden{opacity:0;position:absolute;inset:0}.tab-panel iframe.visible{opacity:1}.skeleton{background:linear-gradient(90deg,#eee 25%,#f5f5f5 50%,#eee 75%) 0 0/200% 100%;animation:1.2s infinite skeleton-shimmer;position:absolute;inset:0}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.login-page{background:radial-gradient(600px 420px at 50% 0,#1a1a1a0a,#0000 70%),#f7f7f8;justify-content:center;align-items:center;min-height:100vh;padding:24px 16px;display:flex}.login-card{opacity:0;background:#fff;border-radius:16px;flex-direction:column;width:100%;max-width:340px;padding:36px 32px 32px;animation:.4s cubic-bezier(.16,1,.3,1) forwards login-card-in;display:flex;box-shadow:0 1px 2px #1414140a,0 16px 40px #14141414}@keyframes login-card-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.login-mark{color:#1a1a1a;margin-bottom:14px}.login-title{letter-spacing:-.02em;margin:0;font-size:22px;font-weight:700;line-height:1.2}.login-subtitle{color:#6b6b6b;margin:6px 0 28px;font-size:14px;line-height:1.5}.login-label{margin-bottom:6px;font-size:13px;font-weight:600}.login-input-row{display:flex;position:relative}.login-input{color:#1a1a1a;background:#fff;border:1px solid #d8d8d8;border-radius:10px;flex:1;width:100%;padding:11px 42px 11px 14px;font-size:15px;transition:border-color .15s,box-shadow .15s}.login-input:hover{border-color:#b8b8b8}.login-input:focus-visible{border-color:#1a1a1a;outline:none;box-shadow:0 0 0 3px #1a1a1a1a}.login-input[aria-invalid=true]{border-color:#c0392b}.login-input[aria-invalid=true]:focus-visible{box-shadow:0 0 0 3px #c0392b1f}.login-visibility-toggle{color:#8a8a8a;cursor:pointer;background:0 0;border:none;border-radius:7px;justify-content:center;align-items:center;width:30px;height:30px;transition:background .15s,color .15s;display:flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.login-visibility-toggle:hover{color:#1a1a1a;background:#f1f1f1}.login-error{color:#c0392b;align-items:center;gap:6px;margin:10px 0 0;font-size:13px;line-height:1.4;display:flex}.login-error svg{flex-shrink:0}.login-submit{color:#fff;cursor:pointer;background:#1a1a1a;border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;width:100%;margin-top:22px;padding:12px;font-size:15px;font-weight:600;transition:background .15s,transform .1s;display:flex}.login-submit:hover:not(:disabled){background:#000}.login-submit:active:not(:disabled){transform:scale(.98)}.login-submit:disabled{opacity:.7;cursor:default}.login-spinner{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.6s linear infinite login-spin}@keyframes login-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.login-card{opacity:1;animation:none}.login-spinner{animation-duration:1.2s}}@media (max-width:480px){.idea-grid{grid-template-columns:1fr}.modal-backdrop{align-items:flex-end;padding:0}.modal{border-radius:16px 16px 0 0;max-width:100%;max-height:85vh}}@media (max-width:860px){.detail-page{grid-template-columns:1fr;height:auto}.detail-sidebar{border-bottom:1px solid #e5e5e5;border-right:none;overflow-y:visible}.detail-viewer{height:75vh}}@media (max-width:480px){.detail-viewer{height:65vh}.tab-buttons button{text-align:center;flex:1}.tab-buttons{display:flex}}
